upgrading.xml revision 5f5d1b4cc970b7f06ff8ef6526128e9a27303d88
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse<?xml-stylesheet type="text/xsl" href="/style/manual.en.xsl"?>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse<!-- $LastChangedRevision$ -->
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse Copyright 2002-2004 The Apache Software Foundation
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse Licensed under the Apache License, Version 2.0 (the "License");
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse you may not use this file except in compliance with the License.
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse You may obtain a copy of the License at
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse Unless required by applicable law or agreed to in writing, software
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse distributed under the License is distributed on an "AS IS" BASIS,
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse See the License for the specific language governing permissions and
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse limitations under the License.
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse <p>In order to assist folks upgrading, we maintain a document
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse describing information critical to existing Apache users. These
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse are intended to be brief notes, and you should be able to find
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse more information in either the <a
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse href="new_features_2_0.html">New Features</a> document, or in
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse<seealso><a href="new_features_2_0.html">Overview of new features in
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse href="install.html">configuring the build processes</a>.
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse Using this system is similar to, but not the same as, using
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse the APACI system in Apache 1.3.</li>
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse <li>In addition to the usual selection of modules which you
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse can choose to compile, Apache 2.0 has moved the main part of
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse request processing into <a href="mpm.html">Multi-Processing
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse </section>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <li>Many directives that were in the core server in Apache
6ace32dacb8313226eb9019275d0e4fa45a15148rse 1.3 are now in the MPMs. If you wish the behavior of the
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse server to be as similar as possible to the behavior of Apache
a943533fd4d91d114af622731a405407990c4fb1rse 1.3, you should select the <module>prefork</module> MPM. Other MPMs
a943533fd4d91d114af622731a405407990c4fb1rse will have different directives to control process creation and request
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse processing.</li>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <li>The <a href="mod/mod_proxy.html">proxy module</a> has been
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse revamped to bring it up to HTTP/1.1. Among the important changes,
7933d4a963def02417113b6798d87a36395053b0rse proxy access control is now placed inside a <directive type="section"
7933d4a963def02417113b6798d87a36395053b0rse module="mod_proxy">Proxy</directive> block rather than a
71c00f988beb28388702e14cb7fe06f08bd792bbdougm <li>The handling of <code>PATH_INFO</code> (trailing path information
7933d4a963def02417113b6798d87a36395053b0rse after the true filename) has changed for some modules. Modules
71c00f988beb28388702e14cb7fe06f08bd792bbdougm that were previously implemented as a handler but are now
71c00f988beb28388702e14cb7fe06f08bd792bbdougm implemented as a filter may no longer accept requests with
71c00f988beb28388702e14cb7fe06f08bd792bbdougm href="http://www.php.net/">PHP</a> are implemented on top
71c00f988beb28388702e14cb7fe06f08bd792bbdougm of the core handler, and therefore reject requests with
7933d4a963def02417113b6798d87a36395053b0rse force the core handler to accept requests with <code>PATH_INFO</code>
0c44ed1cffad38b900b39e8c65996b9b9cff061djim and thereby restore the ability to use <code>PATH_INFO</code> in
0c44ed1cffad38b900b39e8c65996b9b9cff061djim server-side includes.</li>
0c44ed1cffad38b900b39e8c65996b9b9cff061djim module="mod_negotiation">CacheNegotiatedDocs</directive>
0c44ed1cffad38b900b39e8c65996b9b9cff061djim >CacheNegotiatedDocs</directive> should be
0c44ed1cffad38b900b39e8c65996b9b9cff061djim directive no longer uses a quote at the beginning of the
0c44ed1cffad38b900b39e8c65996b9b9cff061djim argument to indicate a text message. Instead, you should
0c44ed1cffad38b900b39e8c65996b9b9cff061djim enclose the message in double quotes. For example, existing
0c44ed1cffad38b900b39e8c65996b9b9cff061djim instances of
0c44ed1cffad38b900b39e8c65996b9b9cff061djim ErrorDocument 403 "Some Message
0c44ed1cffad38b900b39e8c65996b9b9cff061djim </example>
0c44ed1cffad38b900b39e8c65996b9b9cff061djim should be replaced with
0c44ed1cffad38b900b39e8c65996b9b9cff061djim ErrorDocument 403 "Some Message"
0c44ed1cffad38b900b39e8c65996b9b9cff061djim </example>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse As long as the second argument is not a valid URL or
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse pathname, it will be treated as a text message.
71c00f988beb28388702e14cb7fe06f08bd792bbdougm Existing instances of these directives can be replaced with
7933d4a963def02417113b6798d87a36395053b0rse directive which has equivalent functionality. If you were
7933d4a963def02417113b6798d87a36395053b0rse making use of the default values of these directives without
7933d4a963def02417113b6798d87a36395053b0rse including them in the configuration files, you may need to
6b973f74bcd9dc4888b408e65e355228bbf20364wrowe add <code>Include conf/access.conf</code> and <code>Include
7933d4a963def02417113b6798d87a36395053b0rse conf/srm.conf</code> to your <code>httpd.conf</code>. In order to
7933d4a963def02417113b6798d87a36395053b0rse assure that Apache reads the configuration files in the same order
7933d4a963def02417113b6798d87a36395053b0rse as was implied by the older directives, the <directive
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse module="core">Include</directive> directives should be placed at the end
7933d4a963def02417113b6798d87a36395053b0rse of <code>httpd.conf</code>, with the one for <code>srm.conf</code>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse directives no longer exist. Equivalent functionality is
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse provided with the more flexible
e726f34f8da08c01ee8bc90904b26196b69c8587wrowe directive.</li>
7933d4a963def02417113b6798d87a36395053b0rse directive in Apache-1.3 was setting the port number to be used
7933d4a963def02417113b6798d87a36395053b0rse in self-referential URL's. The Apache-2.0 equivalent is
7933d4a963def02417113b6798d87a36395053b0rse syntax: it has been changed to allow specifying both the
7933d4a963def02417113b6798d87a36395053b0rse hostname <em>and</em> the port number for self-referential URL's
7933d4a963def02417113b6798d87a36395053b0rse in one directive.</li>
7933d4a963def02417113b6798d87a36395053b0rse <li>The <code>ServerType</code> directive no longer exists.
7933d4a963def02417113b6798d87a36395053b0rse The method used to serve requests is now determined by the
7933d4a963def02417113b6798d87a36395053b0rse selection of MPM. There is currently no MPM designed to be
7933d4a963def02417113b6798d87a36395053b0rse launched by inetd.</li>
7933d4a963def02417113b6798d87a36395053b0rse <li>The <code>mod_log_agent</code> and <code>mod_log_referer</code>
7933d4a963def02417113b6798d87a36395053b0rse <code>RefererLog</code> and <code>RefererIgnore</code> directives have
7933d4a963def02417113b6798d87a36395053b0rse been removed. Agent and referer logs are still available using the
7933d4a963def02417113b6798d87a36395053b0rse <directive module="mod_log_config">CustomLog</directive>
7933d4a963def02417113b6798d87a36395053b0rse <code>ClearModuleList</code> directives no longer exist.
7933d4a963def02417113b6798d87a36395053b0rse These directives were used to ensure that modules could be
7933d4a963def02417113b6798d87a36395053b0rse enabled in the correct order. The new Apache 2.0 API allows
7933d4a963def02417113b6798d87a36395053b0rse modules to explicitly specify their ordering, eliminating the
7933d4a963def02417113b6798d87a36395053b0rse need for these directives.</li>
7933d4a963def02417113b6798d87a36395053b0rse <li>The <code>FancyIndexing</code> directive has been removed.
7933d4a963def02417113b6798d87a36395053b0rse The same functionality is available through the
7933d4a963def02417113b6798d87a36395053b0rse directive.</li>
7933d4a963def02417113b6798d87a36395053b0rse <li>The MultiViews content-negotiation technique provided by
7933d4a963def02417113b6798d87a36395053b0rse <module>mod_negotiation</module> has become more strict in its
7933d4a963def02417113b6798d87a36395053b0rse default file matching. It will select only from <em>negotiable</em>
7933d4a963def02417113b6798d87a36395053b0rse files. The old behavior can be restored using the <directive
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse module="mod_mime">MultiviewsMatch</directive> directive.</li>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <p>The functionality of the <code>ErrorHeader</code> directive was
cde1010d880fb6230f80c9d697842ea0b1cb79c7dougm put together with the <directive module="mod_headers">Header</directive>
cde1010d880fb6230f80c9d697842ea0b1cb79c7dougm directive, since it was a misnomer. Use</p>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse Header always set foo bar
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse </example>
7933d4a963def02417113b6798d87a36395053b0rse <li>The module <module>mod_auth_digest</module>, which was
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse experimental in Apache 1.3, is now a standard module.</li>
7933d4a963def02417113b6798d87a36395053b0rse <li>The <code>mod_mmap_static</code> module, which was experimental in
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse Apache 1.3, has been replaced with <module>mod_file_cache</module>.</li>
a72de14bfdbf0be9d935be9bdc2df631ca5e032bdougm <li>The distribution has been completely reorganized so that
a72de14bfdbf0be9d935be9bdc2df631ca5e032bdougm directory. Instead, the sources are logically organized under
a72de14bfdbf0be9d935be9bdc2df631ca5e032bdougm the main distribution directory, and installations of the
a72de14bfdbf0be9d935be9bdc2df631ca5e032bdougm compiled server should be directed to a separate
a72de14bfdbf0be9d935be9bdc2df631ca5e032bdougm directory.</li>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse </section>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <p>Extensive changes were made to the server API in Apache 2.0.
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse Existing modules designed for the Apache 1.3 API will
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <strong>not</strong> work in Apache 2.0 without modification.
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse Details are provided in the <a href="developer/">developer
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse</manualpage>