Required additional libraries and files
ModSecurity requires the following additional components before you can compile it:
apxs
libxml2
mod_unique_id
apxs
is the APache eXtenSion tool and is used to compile extension modules for Apache. Since ModSecurity is an Apache module this tool is required to be able to compile ModSecurity. You can see if you have apxs
installed on your system by running the following:
$ whereis -b apxs
If apxs
is available the above command will return its location, like so:
$ whereis -b apxs apxs: /usr/sbin/apxs
If you don't have apxs
installed then it is available as part of a package called httpd-devel
(or apache2-dev
on Debian, Ubuntu, and related distributions). Use your favorite package manager to install this and you should then have apxs
available on your system.
libxml2
is an XML parsing library. If you don't have this installed then you can get it by installing the package libxml2-devel
(or libxml2-dev
if you're using a Debian-based distribution).
Finally, mod_unique_id
is an Apache module that generates a unique identifier for each HTTP request. (See http://httpd.apache.org/docs/2.0/mod/mod_unique_id.html if you are interested in the technical details on how this works.) Apache usually comes with this module pre-compiled, but you'll need to insert the following line in the module list of httpd.conf
(you can find this list by looking for a bunch of lines all starting with the LoadModule
directive) and restart the server for the module to be activated:
LoadModule unique_id_module modules/mod_unique_id.so
Note that this procedure for enabling the module is for Red Hat/Fedora-based distributions. On Debian/Ubuntu, for example, you would use the command a2enmod unique_id
to enable the module.
To verify that mod_unique_id
is indeed loaded into Apache you can run the following command and check for the presence of the line unique_id_module (shared)
in the output listing:
$ httpd -t -D DUMP_MODULES … unique_id_module (shared)
Tip
On Debian-based distributions, use apache2 -t -D DUMP_MODULES
instead of the above.