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