upgrading.xml revision 5f5d1b4cc970b7f06ff8ef6526128e9a27303d88
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse<?xml version='1.0' encoding='UTF-8' ?>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse<!DOCTYPE manualpage SYSTEM "/style/manualpage.dtd">
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse<?xml-stylesheet type="text/xsl" href="/style/manual.en.xsl"?>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse<!-- $LastChangedRevision$ -->
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse<!--
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse Copyright 2002-2004 The Apache Software Foundation
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
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
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse http://www.apache.org/licenses/LICENSE-2.0
33bdcae1f7a1a65e351dda2a766a0cf28b1e695dnd
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.
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse-->
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse<manualpage metafile="upgrading.xml.meta">
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse<title>Upgrading to 2.0 from 1.3</title>
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse<summary>
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 the <code>src/CHANGES</code> file.</p>
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse</summary>
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse<seealso><a href="new_features_2_0.html">Overview of new features in
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse Apache 2.0</a></seealso>
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse <section id="compile-time">
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse <title>Compile-Time Configuration Changes</title>
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <ul>
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse <li>Apache now uses an <code>autoconf</code> and
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse <code>libtool</code> system for <a
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
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 Modules</a> (MPMs).</li>
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse </ul>
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse </section>
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse <section id="run-time">
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse <title>Run-Time Configuration Changes</title>
d86ef5503dcbc38e87c0e03cd3e1f16458cb6323rse
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <ul>
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
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 <code>&lt;Directory proxy:&gt;</code> block.</li>
71c00f988beb28388702e14cb7fe06f08bd792bbdougm
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 <code>PATH_INFO</code>. Filters such as <a
7933d4a963def02417113b6798d87a36395053b0rse href="mod/mod_include.html">INCLUDES</a> or <a
71c00f988beb28388702e14cb7fe06f08bd792bbdougm href="http://www.php.net/">PHP</a> are implemented on top
71c00f988beb28388702e14cb7fe06f08bd792bbdougm of the core handler, and therefore reject requests with
71c00f988beb28388702e14cb7fe06f08bd792bbdougm <code>PATH_INFO</code>. You can use the <directive
7933d4a963def02417113b6798d87a36395053b0rse module="core">AcceptPathInfo</directive> directive to
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
0c44ed1cffad38b900b39e8c65996b9b9cff061djim <li>The <directive
0c44ed1cffad38b900b39e8c65996b9b9cff061djim module="mod_negotiation">CacheNegotiatedDocs</directive>
0c44ed1cffad38b900b39e8c65996b9b9cff061djim directive now takes the argument <code>on</code> or
0c44ed1cffad38b900b39e8c65996b9b9cff061djim <code>off</code>. Existing instances of <directive
0c44ed1cffad38b900b39e8c65996b9b9cff061djim >CacheNegotiatedDocs</directive> should be
0c44ed1cffad38b900b39e8c65996b9b9cff061djim replaced with <code>CacheNegotiatedDocs on</code>.</li>
0c44ed1cffad38b900b39e8c65996b9b9cff061djim
0c44ed1cffad38b900b39e8c65996b9b9cff061djim <li>
0c44ed1cffad38b900b39e8c65996b9b9cff061djim The <directive module="core">ErrorDocument</directive>
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
0c44ed1cffad38b900b39e8c65996b9b9cff061djim <example>
0c44ed1cffad38b900b39e8c65996b9b9cff061djim ErrorDocument 403 "Some Message
0c44ed1cffad38b900b39e8c65996b9b9cff061djim </example>
0c44ed1cffad38b900b39e8c65996b9b9cff061djim should be replaced with
0c44ed1cffad38b900b39e8c65996b9b9cff061djim
0c44ed1cffad38b900b39e8c65996b9b9cff061djim <example>
0c44ed1cffad38b900b39e8c65996b9b9cff061djim ErrorDocument 403 "Some Message"
0c44ed1cffad38b900b39e8c65996b9b9cff061djim </example>
d1bb6e2664788e0437acc18e877562c9a796d7cerse
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse As long as the second argument is not a valid URL or
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse pathname, it will be treated as a text message.
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse </li>
0c44ed1cffad38b900b39e8c65996b9b9cff061djim
7933d4a963def02417113b6798d87a36395053b0rse <li>The <code>AccessConfig</code> and
7933d4a963def02417113b6798d87a36395053b0rse <code>ResourceConfig</code> directives no longer exist.
71c00f988beb28388702e14cb7fe06f08bd792bbdougm Existing instances of these directives can be replaced with
71c00f988beb28388702e14cb7fe06f08bd792bbdougm the <directive module="core">Include</directive>
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>
7933d4a963def02417113b6798d87a36395053b0rse preceding the one for <code>access.conf</code>.</li>
7933d4a963def02417113b6798d87a36395053b0rse
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <li>The <code>BindAddress</code> and <code>Port</code>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse directives no longer exist. Equivalent functionality is
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse provided with the more flexible
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <directive module="mpm_common">Listen</directive>
e726f34f8da08c01ee8bc90904b26196b69c8587wrowe directive.</li>
7933d4a963def02417113b6798d87a36395053b0rse
7933d4a963def02417113b6798d87a36395053b0rse <li>Another use of the <code>Port</code>
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 the new <directive module="core">ServerName</directive>
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
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
7933d4a963def02417113b6798d87a36395053b0rse <li>The <code>mod_log_agent</code> and <code>mod_log_referer</code>
7933d4a963def02417113b6798d87a36395053b0rse modules which provided the <code>AgentLog</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 directive of <module>mod_log_config</module>.</li>
7933d4a963def02417113b6798d87a36395053b0rse
7933d4a963def02417113b6798d87a36395053b0rse <li>The <code>AddModule</code> and
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
7933d4a963def02417113b6798d87a36395053b0rse <li>The <code>FancyIndexing</code> directive has been removed.
7933d4a963def02417113b6798d87a36395053b0rse The same functionality is available through the
7933d4a963def02417113b6798d87a36395053b0rse <code>FancyIndexing</code> option to the <directive
7933d4a963def02417113b6798d87a36395053b0rse module="mod_autoindex">IndexOptions</directive>
7933d4a963def02417113b6798d87a36395053b0rse directive.</li>
7933d4a963def02417113b6798d87a36395053b0rse
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
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <li>(<em>since version 2.0.51</em>)
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>
cde1010d880fb6230f80c9d697842ea0b1cb79c7dougm
7933d4a963def02417113b6798d87a36395053b0rse <example>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse Header always set foo bar
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse </example>
7933d4a963def02417113b6798d87a36395053b0rse
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <p>instead to get the desired behaviour.</p></li>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse </ul>
8fdc55d1624c714391fe1f93ebafe98ace427f4adougm </section>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <section id="misc">
7933d4a963def02417113b6798d87a36395053b0rse <title>Misc Changes</title>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <ul>
7933d4a963def02417113b6798d87a36395053b0rse <li>The module <module>mod_auth_digest</module>, which was
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse experimental in Apache 1.3, is now a standard module.</li>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
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>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
a72de14bfdbf0be9d935be9bdc2df631ca5e032bdougm <li>The distribution has been completely reorganized so that
a72de14bfdbf0be9d935be9bdc2df631ca5e032bdougm it no longer contains an independent <code>src</code>
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>
7933d4a963def02417113b6798d87a36395053b0rse </ul>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse </section>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
7933d4a963def02417113b6798d87a36395053b0rse <section id="third-party">
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <title>Third Party Modules</title>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
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
7933d4a963def02417113b6798d87a36395053b0rse documentation</a>.</p>
0839d91ee551a0e19ea9577bb00976b97308dfddmartin </section>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse</manualpage>
7933d4a963def02417113b6798d87a36395053b0rse