The mod_falcon module for Apache2 web server allows to serve falcon scripts with WOPI directly through a first-class, complete and solid web server.
The integration is similar to what is achieved through famous Apache-PHP module, providing a virtual machine which is directly controlled by the web server process.
To activate the mod_falcon module, it is necessary to store it along with the other Apache modules hosted on the target system and provide the following configuration slices in the Apache configuration system at global level:
LoadModule falcon_module /usr/lib/apache2/modules/mod_falcon.so
At global or virtual server level, the following mime type handlers should be added as well:
AddType application/x-falcon-module .fam AddType application/x-falcon-source .fal AddType application/x-falcon-ftd .ftd
The falcon module needs an initialization file which contains some vital configuration options. Some of them can be overridden also from the apache configuration system. Overridable options can be specified on a per-location or per-directory basis.
The default location for the configuration file is "/etc/falcon.ini", but it can be changed at the virtual server level through the following directive:
FalconConfig "/etc/falcon.ini"
Overridable options are:
- FalconLoadPath: Load path for the scripts starting from this virtual server, location or directory.
The options are set in the falcon.ini file through pairs of "Key = value" entries, with "#" marking comments.
- LogErrors: Type of error logging. It can be set to:
The mod_falcon Apache2 module supports virtual paths, that is, handling specific URIs through a common script. This can be achieved globally using the FalconHandler key in the Falcon module configuration scripts, or the Apache system can be used to activate this support for certain locations or directories.
The Apache2 configuration directive SetHandler can be used to pass location requests to a falcon-program or falcon-ftd, specified in the same section through a FalconHandler directive.
The falcon-program handler forces the engine to load the handler as a falcon script, while the falcon-ftd loads it a Falcon template document source. This is relevant if the script file extension is not a registered one (fal, fam or ftd), so that it is possible for the parse to perform the correct transformations.
The following example sends all the requests for the Managed directory to the managed-handler.fal script:
#example of a managed location <Location "/managed"> SetHandler falcon-program # or use # SetHandler falcon-ftd FalconHandler managed-handler.fal FalconLoadPath /somelocation/managed </Location>