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