Apache Guide: Configuring Your Apache Server Installation Page 2

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.

This article was originally published on Jul 10, 2000
Page 2 of 3

Thanks for your registration, follow us on our social networks to keep up-to-date