]> granicus.if.org Git - apache/blob - docs/manual/upgrading.xml
fix name of The Apache Software Foundation
[apache] / docs / manual / upgrading.xml
1 <?xml version='1.0' encoding='UTF-8' ?>
2 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
3 <?xml-stylesheet type="text/xsl" href="./style/manual.en.xsl"?>
4
5 <!--
6  Copyright 2002-2004 The Apache Software Foundation
7
8  Licensed under the Apache License, Version 2.0 (the "License");
9  you may not use this file except in compliance with the License.
10  You may obtain a copy of the License at
11
12      http://www.apache.org/licenses/LICENSE-2.0
13
14  Unless required by applicable law or agreed to in writing, software
15  distributed under the License is distributed on an "AS IS" BASIS,
16  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  See the License for the specific language governing permissions and
18  limitations under the License.
19 -->
20
21 <manualpage metafile="upgrading.xml.meta">
22
23 <title>Upgrading to 2.0 from 1.3</title>
24
25 <summary>
26   <p>In order to assist folks upgrading, we maintain a document
27   describing information critical to existing Apache users. These
28   are intended to be brief notes, and you should be able to find
29   more information in either the <a
30   href="new_features_2_0.html">New Features</a> document, or in
31   the <code>src/CHANGES</code> file.</p>
32 </summary>
33 <seealso><a href="new_features_2_0.html">Overview of new features in
34   Apache 2.0</a></seealso>
35
36   <section id="compile-time">
37     <title>Compile-Time Configuration Changes</title>
38
39     <ul>
40       <li>Apache now uses an <code>autoconf</code> and
41       <code>libtool</code> system for <a
42       href="install.html">configuring the build processes</a>.
43       Using this system is similar to, but not the same as, using
44       the APACI system in Apache 1.3.</li>
45
46       <li>In addition to the usual selection of modules which you
47       can choose to compile, Apache 2.0 has moved the main part of
48       request processing into <a href="mpm.html">Multi-Processing
49       Modules</a> (MPMs).</li>
50     </ul>
51   </section>
52
53   <section id="run-time">
54     <title>Run-Time Configuration Changes</title>
55
56     <ul>
57       <li>Many directives that were in the core server in Apache
58       1.3 are now in the MPMs. If you wish the behavior of the
59       server to be as similar as possible to the behavior of Apache
60       1.3, you should select the <module>prefork</module> MPM. Other MPMs
61       will have different directives to control process creation and request
62       processing.</li>
63
64       <li>The <a href="mod/mod_proxy.html">proxy module</a> has been
65       revamped to bring it up to HTTP/1.1.  Among the important changes,
66       proxy access control is now placed inside a <directive type="section"
67       module="mod_proxy">Proxy</directive> block rather than a
68       <code>&lt;Directory proxy:&gt;</code> block.</li>
69
70       <li>The handling of <code>PATH_INFO</code> (trailing path information
71       after the true filename) has changed for some modules.  Modules
72       that were previously implemented as a handler but are now
73       implemented as a filter may no longer accept requests with
74       <code>PATH_INFO</code>.  Filters such as <a
75       href="mod/mod_include.html">INCLUDES</a> or <a
76       href="http://www.php.net/">PHP</a> are implemented on top
77       of the core handler, and therefore reject requests with
78       <code>PATH_INFO</code>.  You can use the <directive
79       module="core">AcceptPathInfo</directive> directive to
80       force the core handler to accept requests with <code>PATH_INFO</code>
81       and thereby restore the ability to use <code>PATH_INFO</code> in
82       server-side includes.</li>
83
84       <li>The <directive
85       module="mod_negotiation">CacheNegotiatedDocs</directive>
86       directive now takes the argument <code>on</code> or
87       <code>off</code>. Existing instances of <directive
88       >CacheNegotiatedDocs</directive> should be
89       replaced with <code>CacheNegotiatedDocs on</code>.</li>
90
91       <li>
92         The <directive module="core">ErrorDocument</directive>
93         directive no longer uses a quote at the beginning of the
94         argument to indicate a text message. Instead, you should
95         enclose the message in double quotes. For example, existing
96         instances of
97
98         <example>
99           ErrorDocument 403 "Some Message
100         </example>
101         should be replaced with
102
103         <example>
104           ErrorDocument 403 "Some Message"
105         </example>
106
107         As long as the second argument is not a valid URL or
108         pathname, it will be treated as a text message.
109       </li>
110
111       <li>The <code>AccessConfig</code> and
112       <code>ResourceConfig</code> directives no longer exist.
113       Existing instances of these directives can be replaced with
114       the <directive module="core">Include</directive>
115       directive which has equivalent functionality. If you were
116       making use of the default values of these directives without
117       including them in the configuration files, you may need to
118       add <code>Include conf/access.conf</code> and <code>Include
119       conf/srm.conf</code> to your <code>httpd.conf</code>. In order to
120       assure that Apache reads the configuration files in the same order
121       as was implied by the older directives, the <directive
122       module="core">Include</directive> directives should be placed at the end
123       of <code>httpd.conf</code>, with the one for <code>srm.conf</code>
124       preceding the one for <code>access.conf</code>.</li>
125
126       <li>The <code>BindAddress</code> and <code>Port</code>
127       directives no longer exist.  Equivalent functionality is
128       provided with the more flexible
129       <directive module="mpm_common">Listen</directive>
130       directive.</li>
131
132       <li>Another use of the <code>Port</code>
133       directive in Apache-1.3 was setting the port number to be used
134       in self-referential URL's. The Apache-2.0 equivalent is
135       the new <directive module="core">ServerName</directive>
136       syntax: it has been changed to allow specifying both the
137       hostname <em>and</em> the port number for self-referential URL's
138       in one directive.</li>
139
140       <li>The <code>ServerType</code> directive no longer exists.
141       The method used to serve requests is now determined by the
142       selection of MPM. There is currently no MPM designed to be
143       launched by inetd.</li>
144
145       <li>The <code>mod_log_agent</code> and <code>mod_log_referer</code>
146       modules which provided the <code>AgentLog</code>,
147       <code>RefererLog</code> and <code>RefererIgnore</code> directives have
148       been removed. Agent and referer logs are still available using the
149       <directive module="mod_log_config">CustomLog</directive>
150       directive of <module>mod_log_config</module>.</li>
151
152       <li>The <code>AddModule</code> and
153       <code>ClearModuleList</code> directives no longer exist.
154       These directives were used to ensure that modules could be
155       enabled in the correct order. The new Apache 2.0 API allows
156       modules to explicitly specify their ordering, eliminating the
157       need for these directives.</li>
158
159       <li>The <code>FancyIndexing</code> directive has been removed.
160       The same functionality is available through the
161       <code>FancyIndexing</code> option to the <directive
162       module="mod_autoindex">IndexOptions</directive>
163       directive.</li>
164
165       <li>The MultiViews content-negotiation technique provided by
166       <module>mod_negotiation</module> has become more strict in its
167       default file matching.  It will select only from <em>negotiable</em>
168       files.  The old behavior can be restored using the <directive
169       module="mod_mime">MultiviewsMatch</directive> directive.</li>
170
171     </ul>
172   </section>
173
174   <section id="misc">
175     <title>Misc Changes</title>
176
177     <ul>
178       <li>The module <module>mod_auth_digest</module>, which was
179       experimental in Apache 1.3, is now a standard module.</li>
180
181       <li>The <code>mod_mmap_static</code> module, which was experimental in
182       Apache 1.3, has been replaced with <module>mod_file_cache</module>.</li>
183
184       <li>The distribution has been completely reorganized so that
185       it no longer contains an independent <code>src</code>
186       directory. Instead, the sources are logically organized under
187       the main distribution directory, and installations of the
188       compiled server should be directed to a separate
189       directory.</li>
190     </ul>
191   </section>
192
193   <section id="third-party">
194     <title>Third Party Modules</title>
195
196     <p>Extensive changes were made to the server API in Apache 2.0.
197     Existing modules designed for the Apache 1.3 API will
198     <strong>not</strong> work in Apache 2.0 without modification.
199     Details are provided in the <a href="developer/">developer
200     documentation</a>.</p>
201   </section>
202 </manualpage>