Chapter 10. Apache HTTP Server
The Apache HTTP Server is a robust, commercial-grade open source Web server developed by the Apache Software Foundation (http://www.apache.org/). Red Hat Enterprise Linux includes the Apache HTTP Server 2.0 as well as a number of server modules designed to enhance its functionality.
The default configuration file installed with the Apache HTTP Server works without alteration for most situations. This chapter outlines many of the directives found within its configuration file (
/etc/httpd/conf/httpd.conf
) to aid those who require a custom configuration or need to convert a configuration file from the older Apache HTTP Server 1.3 format.
Warning
If using the graphical HTTP Configuration Tool (
system-config-httpd
), do not hand edit the Apache HTTP Server's configuration file as the HTTP Configuration Tool regenerates this file whenever it is used.
For more information about the HTTP Configuration Tool, please refer to the chapter titled Apache HTTP Server Configuration in the System Administrators Guide.
10.1. Apache HTTP Server 2.0
There are important differences between the Apache HTTP Server 2.0 and version 1.3 (version 1.3 shipped with Red Hat Enterprise Linux 2.1 and earlier). This section reviews some of the features of Apache HTTP Server 2.0 and outlines important changes. For instructions on migrating a version 1.3 configuration file to the 2.0 format, refer to Section 10.2, “Migrating Apache HTTP Server 1.3 Configuration Files”.
10.1.1. Features of Apache HTTP Server 2.0
Apache HTTP Server 2.0 includes the following features:
- Apache API — Modules utilize a more powerful set of Application Programming Interfaces (APIs).
Important
Modules built for Apache HTTP Server 1.3 do not work without being ported to the new API. If unsure whether or not a particular module has been ported, consult the developer before upgrading. - Filtering — Modules can act as content filters. Refer to Section 10.2.4, “Modules and Apache HTTP Server 2.0” for more on how filtering works.
- IPv6 Support — The next generation IP addressing format is supported.
- Simplified Directives — A number of confusing directives have been removed while others have been simplified. Refer to Section 10.5, “Configuration Directives in
httpd.conf
” for more information about specific directives. - Multilingual Error Responses — When using Server Side Include (SSI) documents, customizable error response pages can be delivered in multiple languages.
A more complete list of changes can be found online at http://httpd.apache.org/docs-2.0/.
10.1.2. Packaging Changes in Apache HTTP Server 2.0
Starting with Red Hat Enterprise Linux 3, the Apache HTTP Server packages were renamed. Also, some related packages were renamed, deprecated, or incorporated into other packages.
Below is a list of packaging changes:
- The
apache
,apache-devel
andapache-manual
packages were renamed tohttpd
,httpd-devel
andhttpd-manual
respectively. - The
mod_dav
package was incorporated into thehttpd
package. - The
mod_put
andmod_roaming
packages were removed, since their functionality is a subset of that provided bymod_dav
(which is now incorporated into thehttpd
package). - The
mod_auth_any
andmod_bandwidth
packages were removed. - The version number for the
mod_ssl
package is now synchronized with thehttpd
package. This means that themod_ssl
package for Apache HTTP Server 2.0 has a lower version number thanmod_ssl
package for Apache HTTP Server 1.3.
10.1.3. File System Changes in Apache HTTP Server 2.0
The following changes to the file system layout occur when upgrading to Apache HTTP Server 2.0:
- The configuration directory,
/etc/httpd/conf.d/
, has been added. — This directory is used to store configuration files for individually packaged modules, such asmod_ssl
,mod_perl
, andphp
. The server is instructed to load configuration files from this location by the directiveInclude conf.d/*.conf
within the Apache HTTP Server configuration file,/etc/httpd/conf/httpd.conf
.Important
It is vital that the line specifying the new configuration directory be inserted when migrating an existing configuration. - The
ab
andlogresolve
programs have been moved. — These utility programs have been moved from the/usr/sbin/
directory and into the/usr/bin/
directory. This causes scripts with absolute paths for these binaries to fail. - The
dbmmanage
command has been replaced. — Thedbmmanage
command has been replaced byhtdbm
. Refer to Section 10.2.4.5, “Themod_auth_dbm
andmod_auth_db
Modules” for more information. - The
logrotate
configuration file has been renamed. — Thelogrotate
configuration file has been renamed from/etc/logrotate.d/apache
to/etc/logrotate.d/httpd
.
The next section outlines how to migrate an Apache HTTP Server 1.3 configuration to the 2.0 format.