Introduction to Apache

The Apache package contains an open-source HTTP server. It is useful for creating local intranet web sites or running huge web serving operations.

Package Information

Additional Downloads

Apache Dependencies


OpenSSL-0.9.8g, OpenLDAP-2.3.39, PCRE-7.6, APR, APR-util, and distcache

Optional (Only if Using the Bundled APR-util)

pkg-config-0.22, expat-2.0.1, GDBM-1.8.3, PostgreSQL-8.2.4, and SQLite

Though you can install APR and APR-util as separate components, it is recommended to use the bundled versions that come with the Apache HTTPD tarball.

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/apache

Installation of Apache

For security reasons, running the server as an unprivileged user and group is strongly encouraged. Create the following group and user using the following commands (as root):

groupadd -g 25 apache &&
useradd -c "Apache Server" -d /dev/null -g apache \
        -s /bin/false -u 25 apache


The above command directs the Apache user's home directory to /dev/null. This may not work for some add-ons such as ViewVC, a browser interface for CVS and Subversion version control repositories. See the User Notes for details for specific applications.

The following patch modifies the layout of destination directories and among them, the build directory at /usr/lib/apache/build. This will allow the modules added to Apache to be configured without errors. Apply the patch:

patch -Np1 -i ../httpd-2.2.8-config-1.patch


You may wish to review the output from ./configure --help and include whatever parameters are necessary to the configure command below to build the modules required for your installation. There are as many as 62 additional parameters you can add to the configure command to build additional modules. Some of the extra parameters which aren't described or mentioned in the --help information are listed in the “Command Explanations” section below.

If you are using the bundled version of APR-util and you are going to install Subversion with Berkeley DB back-end support, ensure you use the parameters shown in the “Command Explanations” section below.

Build and install Apache by running the following commands:

./configure --enable-layout=FHS --enable-mods-shared=all &&

This package does not come with a test suite.

Now, as the root user:

make install &&
chown -v root:root /usr/lib/apache/httpd.exp \
    /usr/sbin/{apxs,apachectl,dbmmanage,envvars{,-std}} \
    /usr/share/man/man1/{dbmmanage,ht{dbm,digest,passwd}}.1 \
    /usr/share/man/man8/{ab,apachectl,apxs,htcacheclean,httpd}.8 \
    /usr/share/man/man8/{logresolve,rotatelogs,suexec}.8 &&
chown -v -R apache:apache /srv/www

Command Explanations

--enable-mods-shared=all: The modules should be compiled and used as Dynamic Shared Objects (DSOs) so they can be included and excluded from the server using the run-time configuration directives.

--enable-ssl: Use this parameter to create the mod_ssl module and enable SSL support. This parameter is mentioned as one of many parameters which can be passed to the configure command to create additional DSO modules.

--with-pcre: Add this parameter to use the system installed version of the PCRE library.

--with-z: Add this parameter to use the system installed version of the Zlib library.

--with-ldap: This parameter is required if you passed the --enable-authnz-ldap or --enable-ldap options to configure and enabled the OpenLDAP modules.

--with-dbm=db45 --with-berkeley-db: Use these parameters if you require Berkeley DB support in the bundled version of APR-util (required for Berkeley DB back-end support in Subversion).

chown root:root ...: This command changes the ownership of some installed files, the result of building the package as a user other than root.

chown -R apache:apache /srv/www: By default, the installation process installs files (documentation, error messages, default icons, etc.) with the ownership of the user that extracted the files from the tar file. If you want to change the ownership to another user, you should do so at this point. The only requirement is that the document directories need to be accessible by the httpd process with (r-x) permissions and files need to be readable (r--) by the apache user.

Configuring Apache

Config Files


Configuration Information

The main configuration file is named /etc/apache/httpd.conf. Modify it so that the HTTP server runs as the dedicated user and group:

sed -i -e "s/User daemon/User apache/" \
       -e "s/Group daemon/Group apache/" \

See http://httpd.apache.org/docs-2.2/configuring.html for detailed instructions on customizing your Apache HTTP server configuration file.

There's a problem with the ISAPI DSO module caused from compiling with GCC-4.1.2. If you included the parameter to build the module, comment out the module's load command in the configuration file with the following command:

sed -i "s/^LoadModule isapi_module/# &/" \

Boot Script

If you want the Apache server to start automatically when the system is booted, install the /etc/rc.d/init.d/apache init script included in the blfs-bootscripts-20080816 package.

make install-apache


Installed Programs: ab, apachectl, apr-config, apu-config, apxs, checkgid, dbmmanage, htdbm, htdigest, htpasswd, httpd, instdso.sh, logresolve, and rotatelogs
Installed Libraries: libapr-1.{so,a}, libaprutil-1.{so,a}, and /usr/lib/apache/*.so
Installed Directories: /etc/apache, /srv/www, /usr/include/apache, /usr/lib/apache, and /var/log/apache

Short Descriptions


is a tool for benchmarking your Apache HTTP server.


is a front end to the Apache HTTP server which is designed to help the administrator control the functioning of the Apache httpd daemon.


is a tool for building and installing extension modules for the Apache HTTP server.


is used to create and update the DBM format files used to store usernames and passwords for basic authentication of HTTP users.


is used to create and update the flat-files used to store usernames, realms and passwords for digest authentication of HTTP users.


is used to create and update the flat-files used to store usernames and passwords for basic authentication of HTTP users.


is the Apache HTTP server program.


is a script which installs Apache DSO modules.


is a post-processing program to resolve IP-addresses in Apache's access log files.


is a simple program for use in conjunction with Apache's piped log file feature.

Last updated on 2008-03-22 21:40:43 -0500