10.7. Adding Modules

The Apache HTTP Server supports Dynamically Shared Objects (DSOs), or modules, which can easily be loaded at runtime as necessary.

The Apache Project provides complete DSO documentation online at http://httpd.apache.org/docs-2.0/dso.html. Or, if the http-manual package is installed, documentation about DSOs can be found online at http://localhost/manual/mod/.

For the Apache HTTP Server to use a DSO, it must be specified in a LoadModule directive within /etc/httpd/conf/httpd.conf. If the module is provided by a separate package, the line must appear within the modules configuration file in the /etc/httpd/conf.d/ directory. Refer to Section 10.5.12 LoadModule for more information.

If adding or deleting modules from http.conf, Apache HTTP Server must be reloaded or restarted, as referred to in Section 10.4 Starting and Stopping httpd.

If creating a new module, first install the httpd-devel package which contains the include files, the header files, as well as the APache eXtenSion (/usr/sbin/apxs) application, which uses the include files and the header files to compile DSOs.

After writing a module, use /usr/sbin/apxs to compile the module sources outside the Apache source tree. For more information about using the /usr/sbin/apxs command, refer to the the Apache documentation online at http://httpd.apache.org/docs-2.0/dso.html as well as the apxs man page.

Once compiled, put the module in the /usr/lib/httpd/modules/ directory. Then add a LoadModule line to the httpd.conf, using the following structure:

LoadModule <module-name> <path/to/module.so>

Where <module-name> is the name of the module and <path/to/module.so> is the path to the DSO.