Action
Description |
Specify the CGI program to run to handle the
document |
Synopsis
|
Action mimeType programPath |
Context |
Default server, Virtual host |
Example
|
Action application/x-appweb-python
/usr/bin/python
|
The Action directive associates the specified program
path with a document mime type. The Action directive may be
used to ensure a specific program is used to run CGI
scripts.
The CGI handler may match URLs by extension or by prefix path,
depending on how the appweb configuration file setup. When a
match by extension occurs, the cgiHandler will first see if an
Action directive has been specified for the corresponding mime
type for the URLs extension. If one is defined, the specified
program is run with the CGI script passed as the first argument.
If no action directive is found, the script is examined to see if
it contains a "#!/programPath" in the first line of the script.
If it does, the specified program is run with the CGI script
passed as the first argument. If the script is a binary
executable or if the first line does not contain such a
programPath, the CGI script will be directly executed.
The default extensions in the appweb configuration file
are: cgi, cgi-nph, bat, cmd, pl, py, and php. For Linux, the
default settings also include an Action directive for the php
extension. The other default extensions do not have Action
directives.
The mime type may be added via the AddType directive or you may
edit the mime.types file to add the mime type. Mime type entries
associate a mime type with a given URL extension. For example,
the following mime entry specifies that any URL with a ".php"
extension should will have the
application/x-appweb-php mime type:
application/x-appweb-php php
AddHandler
Description |
Add the specified handler for processing for
given file extensions |
Synopsis
|
AddHandler handlerName extension [extension]
... |
Context |
Default server, Virtual host, Location |
Example
|
AddHandler espHandler .esp .asp |
The AddHandler directive ensures that the AppWeb handler
specified by
handlerName, will be run
whenever a document with the given
extension is requested. Multiple extensions may be
specified and multiple AddHandler directives may exist for any
handler.
If the AddHandler directive is specified within a VirtualHost or
Location block, it is only valid
within that context. VirtualHosts and Location blocks inherit the
handler settings defined by outer blocks. I.e. a VirtualHost will
inherit all the handlers of the default server. If you wish to
remove a handler mapping, use ResetHandlers and then re-add the
required handlers.
NOTE: Unlike Apache, the extensions are case sensitive on systems
that have case sensitive file systems and the dot must be part of
the extension.
AddType
Description |
Add a MIME type specifiction |
Synopsis
|
AddType mimeType extension
|
Context |
Default server, Virtual host |
Example
|
application/x-appweb-perl pl
|
The AddType directive will associate the specified MIME
type with the nominated extension. MIME types are used by AppWeb
when processing CGI scripts. When processing client requests,
AppWeb will map a URLs extension to a mime type. If an Action
directive has been specified for this mime type, the associate
program will be run using the CGI protocol to process the
URL.
ResetHandlers
Description |
Reset the list of defined handlers. |
Synopsis
|
ResetHandlers |
Context |
Virtual host, Location |
Example
|
ResetHandlers |
The ResetHandlers directive cancels all previously
defined handlers for the specified context. ResetHandlers is most
often used inside VirtualHost blocks when you want to limit the
handlers to a small set for that Virtual Host.
NOTE: ResetHandlers is a proprietary AppWeb directive and is not
supported by Apache.
LoadModule
Description |
Load the static or dynamic AppWeb
module |
Synopsis |
LoadModule moduleName modulePath |
Context |
Default server
|
Example
|
LoadModule openSsl
/etc/appweb/modules/libopenSsl.so |
The LoadModule directive causes the specified module to
be loaded and its functionality made available to the default
server and all virtual hosts. AppWeb supports both static and
dynamically loaded modules. Some essentail modules will be
statically linked into AppWeb. Modules that may or may not be
required by particular users will be supplied as dynamically
loadable modules. By supporting dynamic loadable modules, the
memory footprint of AppWeb is minimized yet AppWeb can be
extended to meet almost any need.
Modules may be dynamically loaded shared objects (DLLs) or they
may be statically linked objects. If a module is statically
linked into AppWeb, the LoadModule directive will start the
module and activate it for processing. If a module is not
statically linked into AppWeb and it has been made into a
dynamically loadable module, then the LoadModule directive will
locate and dynamically load the shared object or DLL, link it
into AppWeb and then activate it for processing.
The
moduleName is encoded in the module
itself and must be the name specified by the module provider. The
modulePath is the filename for the module
without the extension. AppWeb omits the
extension so that configuration files will be more
cross-platform. The
modulePath may be an
absolute path or it may be relative to the Server Root. If the
modulePath if a pure filename without any directory portion, the
directory paths specified by the LoadModulePath are used to
search for the module.
The order of modules in the configuration file is important. If
module "A" uses the services of module "B", then module "B" must
be loaded prior to loading module "A".
Handlers and Modules
There are
two kinds of loadable modules:
Handlers are modules that respond to HTTP requests and serve
the response content themselves. Pure modules are units of
functionality that augment AppWeb without directly handling HTTP
responses themselves.
AppWeb supplied modules
Authorization Module
|
auth
|
libauthModule |
Common Gateway Interface
Handler |
cgi
|
libcgiHandler |
C API
Module
|
capi
|
libcapiModule
|
Debug
Handler
|
debug
|
libdebugHandler
|
Embedded Gateway Interface Handler |
egi
|
libegiHandler |
Embedded Server Pages
Handler |
esp
|
libespHandler |
GoAhead WebServer API
Compatibility Module
|
compat
|
libcompatModule
|
Matrix SSL
Module
|
matrixSsl
|
libmatrixSslModule
|
Open SSL
Module
|
openSsl
|
libopenSslModule
|
Secure Sockets Layer
Module
|
ssl
|
libsslModule
|
Static Page Handler
|
static
|
libcopyHandler
|
NOTE: AppWeb modules are not binary or source compatible with
Apache modules.
LoadModulePath
Description |
Specify a list of directory paths to search
when loading Modules |
Synopsis |
LoadModule path ... |
Context |
Default server
|
Example
|
LoadModulePath ../bin /home/josh/test "/My Modules" |
The LoadModulePath directive causes subsequent LoadModule
directives to search for their modules in the paths nominate by
the LoadModulePath directive, if those paths are do not contain
directory paths. Each path may be enclosed by quotes if the path contains spaces.