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