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