My personal preference is to install all of Apache in one location
(/usr/local/apache, to be specific) and then just make symlinks
from other locations. For example, system log files are located in
/var/log, so it might make sense to have the Apache log files
there also. However, instead of using a
--logfiledir=/var/log/httpd configuration option, I simply create
a symbolic link from /var/log/httpd to
/usr/local/apache/logs:
cd /var/log
ln -s /usr/local/apache/logs httpd
This is also handy for your log rotate scripts, which expect log files to
be in /var/log and subdirectories thereof.
Module Configuration
You can tell Apache what modules to build and activate with configuration
options. In a default configuration, some modules are enabled, and others are
not. To change this default configuration, you can use the
--enable-module and --disable-module directives.
The default configuration is as follows:
[access=yes actions=yes alias=yes ]
[asis=yes auth=yes auth_anon=no ]
[auth_db=no auth_dbm=no auth_digest=no ]
[autoindex=yes cern_meta=no cgi=yes ]
[digest=no dir=yes env=yes ]
[example=no expires=no headers=no ]
[imap=yes include=yes info=no ]
[log_agent=no log_config=yes log_referer=no ]
[mime=yes mime_magic=no mmap_static=no ]
[negotiation=yes proxy=no rewrite=no ]
[setenvif=yes so=no speling=no ]
[status=yes unique_id=no userdir=yes ]
[usertrack=no vhost_alias=no ]
For example:
./configure --prefix=/home/httpd --enable-module=speling --disable-module=userdir
If you wish to build a particular module as a shared object you can use the
--enable-shared option. For example:
./configure --prefix=/usr/local/apache --enable-module=rewrite --enable-shared=rewrite
To compile and enable a module that is not part of the standard Apache
distribution, you can use the --add-module and
--activate-module options. For example:
./configure --prefix=/usr/local/apache --add-module=/home/rbowen/mods/mod_mine.c
Manually Tweaking Your
Configuration
As I mentioned in my last column, there are two ways to configure your
Apache build. There's the method describe above, and then there's the
"old-fashioned" manual process. In the src/ subdirectory
is a script called Configure (big C), which uses a file called
Configuration to configure your build. A sample
Configuration file, called Configuation.tmpl, comes
with Apache. And when you run configure (small c), a configuration
file called Configuration.apaci is generated, and is then used by
Configure (big C) to configure the build.