Upgrading to 2.0 from 1.3
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.
- Apache now uses an
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.
- In addition to the usual selection of modules which you
can choose to compile, Apache 2.0 has moved the main part of
request processing into Multi-Processing
Modules (MPMs).
- Many directives that were in the core server in Apache
1.3 are now in the MPMs. If you wish the behavior of the
server to be as similar as possible to the behavior of Apache
1.3, you should select the
prefork
MPM. Other MPMs
will have different directives to control process creation and request
processing.
- The proxy module has been
revamped to bring it up to HTTP/1.1. Among the important changes,
proxy access control is now placed inside a
<Proxy>
block rather than a
<Directory proxy:>
block.
- The handling of
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.
- The
CacheNegotiatedDocs
directive now takes the argument on
or
off
. Existing instances of CacheNegotiatedDocs
should be
replaced with CacheNegotiatedDocs on
.
-
The
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
should be replaced with
ErrorDocument 403 "Some Message"
As long as the second argument is not a valid URL or
pathname, it will be treated as a text message.
- The
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
.
- The
BindAddress
and Port
directives no longer exist. Equivalent functionality is
provided with the more flexible
Listen
directive.
- Another use of the
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.
- The
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.
- The
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
.
- The
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.
- The
FancyIndexing
directive has been removed.
The same functionality is available through the
FancyIndexing
option to the IndexOptions
directive.
- The MultiViews content-negotiation technique provided by
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 module
mod_auth_digest
, which was
experimental in Apache 1.3, is now a standard module.
- The
mod_mmap_static
module, which was experimental in
Apache 1.3, has been replaced with mod_file_cache
.
- The distribution has been completely reorganized so that
it no longer contains an independent
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.