APACHE CONFIGURATION Apache 1.3 Autoconf-style Interface (APACI) =========================================== APACI is an Autoconf-style interface for the Unix side of the Apache 1.3 HTTP server source distribution. It is actually not GNU Autoconf-based, i.e. the GNU Autoconf package itself is not used. Instead APACI just provides a similar batch configuration interface and a corresponding out-of-the-box build and installation procedure. The basic goal is to provide the following commonly known and expected procedure for out-of-the-box building and installing a package like Apache: $ gunzip plus corresponding Makefile. and then performs the complete build process inside this shadow tree. Dynamic Shared Object (DSO) support ----------------------------------- Apache 1.3 supports building modules as shared objects on all major Unix platforms (see section "Supported Platforms" in document htdocs/manual/dso.html for details). APACI has a nice way of enabling the building of DSO-based modules and automatically installing them: $ ./configure --prefix=/path/to/apache \ --enable-module=rewrite \ --enable-shared=rewrite $ make $ make install This builds and installs Apache with the default configuration except that it adds the mod_rewrite module and automatically builds and installs it as a DSO, so it is optionally available for loading under runtime. To make your life even more easy APACI additionally inserts a corresponding `LoadModule' line into the httpd.conf file in the installation phase. APACI also supports a variant of the --enable-shared option: $ ./configure --prefix=/path/to/apache \ --enable-shared=max $ make $ make install This enables shared object building for the maximum of modules, i.e. all enabled modules (--enable-module or the default set) except for mod_so itself (the bootstrapping module for DSO support). So, to build a full-powered Apache with maximum flexibility by building and installing most of the modules, you can use: $ ./configure --prefix=/path/to/apache \ --enable-module=most \ --enable-shared=max $ make $ make install This first enables most of the modules (all modules except some problematic ones like mod_auth_db which needs third party libraries not available on every platform or mod_log_agent and mod_log_referer which are deprecated) and then enables DSO support for all of them. This way you get all these modules installed and you then can decide under runtime (via the `LoadModule') directives which ones are actually used. This is especially useful for vendor package maintainers to provide a flexible Apache package. On-the-fly added additional/private module ------------------------------------------ For Apache there are a lot of modules flying around on the net which solve particular problems. For a good reference see the Apache Module Registory at http://modules.apache.org/ and the Apache Group's contribution directory at http://www.apache.org/dist/contrib/modules/. These modules usually come in a file named mod_foo.c. APACI supports adding these sources on-the-fly to the build process: $ ./configure --prefix=/path/to/apache \ --add-module=/path/to/mod_foo.c $ make $ make install This automatically copies mod_foo.c to src/modules/extra/, activates it in the configuration and builds Apache with it. A very useful way is to combine this with the DSO support: $ ./configure --prefix=/path/to/apache \ --add-module=/path/to/mod_foo.c \ --enable-shared=foo $ make $ make install This builds and installs Apache with the default set of modules, but additionally builds mod_foo as a DSO and adds a `LoadModule' line to the httpd.conf file to activate it for loading under runtime. Apache and mod_perl ------------------- The Apache/Perl integration project (http://perl.apache.org/) from Doug MacEachern is a very powerful approach to integrate a Perl 5 interpreter into the Apache HTTP server both for running Perl programs and for programming Apache modules in Perl. The distribution mod_perl-1.XX.tar.gz can be found on http://perl.apache.org/src/. Here is how you can build and install Apache with mod_perl: $ gunzip