Apache HTTP Server Version 2.0
In order to assist folks upgrading, we maintain a document describing information critical to existing Apache users. These are intended to be brief notes, and you should be able to find more information in either the New Features document, or in the src/CHANGES
file.
autoconf
and libtool
system for configuring the build processes. Using this system is similar to, but not the same as, using the APACI system in Apache 1.3.prefork
MPM. Other MPMs will have different directives to control process creation and request processing.<Proxy>
block rather than a <Directory proxy:>
block.PATH_INFO
(trailing path information after the true filename) has changed for some modules. Modules that were previously implemented as a handler but are now implemented as a filter may no longer accept requests with PATH_INFO
. Filters such as INCLUDES or PHP are implemented on top of the core handler, and therefore reject requests with PATH_INFO
. You can use the AcceptPathInfo
directive to force the core handler to accept requests with PATH_INFO
and thereby restore the ability to use PATH_INFO
in server-side includes.CacheNegotiatedDocs
directive now takes the argument on
or off
. Existing instances of CacheNegotiatedDocs
should be replaced with CacheNegotiatedDocs on
.ErrorDocument
directive no longer uses a quote at the beginning of the argument to indicate a text message. Instead, you should enclose the message in double quotes. For example, existing instances of
ErrorDocument 403 "Some Message
ErrorDocument 403 "Some Message"
AccessConfig
and ResourceConfig
directives no longer exist. Existing instances of these directives can be replaced with the Include
directive which has equivalent functionality. If you were making use of the default values of these directives without including them in the configuration files, you may need to add Include conf/access.conf
and Include conf/srm.conf
to your httpd.conf
. In order to assure that Apache reads the configuration files in the same order as was implied by the older directives, the Include
directives should be placed at the end of httpd.conf
, with the one for srm.conf
preceding the one for access.conf
.BindAddress
and Port
directives no longer exist. Equivalent functionality is provided with the more flexible Listen
directive.Port
directive in Apache-1.3 was setting the port number to be used in self-referential URL's. The Apache-2.0 equivalent is the new ServerName
syntax: it has been changed to allow specifying both the hostname and the port number for self-referential URL's in one directive.ServerType
directive no longer exists. The method used to serve requests is now determined by the selection of MPM. There is currently no MPM designed to be launched by inetd.mod_log_agent
and mod_log_referer
modules which provided the AgentLog
, RefererLog
and RefererIgnore
directives have been removed. Agent and referer logs are still available using the CustomLog
directive of mod_log_config
.AddModule
and ClearModuleList
directives no longer exist. These directives were used to ensure that modules could be enabled in the correct order. The new Apache 2.0 API allows modules to explicitly specify their ordering, eliminating the need for these directives.FancyIndexing
directive has been removed. The same functionality is available through the FancyIndexing
option to the IndexOptions
directive.mod_negotiation
has become more strict in its default file matching. It will select only from negotiable files. The old behavior can be restored using the MultiviewsMatch
directive.The functionality of the ErrorHeader
directive was put together with the Header
directive, since it was a misnomer. Use
Header always set foo bar
instead to get the desired behaviour.
mod_auth_digest
, which was experimental in Apache 1.3, is now a standard module.mod_mmap_static
module, which was experimental in Apache 1.3, has been replaced with mod_file_cache
.src
directory. Instead, the sources are logically organized under the main distribution directory, and installations of the compiled server should be directed to a separate directory.Extensive changes were made to the server API in Apache 2.0. Existing modules designed for the Apache 1.3 API will not work in Apache 2.0 without modification. Details are provided in the developer documentation.