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"?>
5 <relativepath href="."/>
7 <title>Upgrading to 2.0 from 1.3</title>
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>
17 <seealso><a href="new_features_2_0.html">New Features in 2.0</a></seealso>
19 <section id="compile-time">
20 <title>Compile-Time Configuration Changes</title>
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>
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>
36 <section id="run-time">
37 <title>Run-Time Configuration Changes</title>
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
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><Directory proxy:></code> block.</li>
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>
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>
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
81 ErrorDocument 403 "Some Message
83 should be replaced with
86 ErrorDocument 403 "Some Message"
89 As long as the second argument is not a valid URL or
90 pathname, it will be treated as a text message.
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>
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>
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>
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>
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>
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>
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>
150 <title>Misc Changes</title>
153 <li>The <code>httpd</code> command line option
154 <code>-S</code> which was used for printing the virtual host
155 configuration has been replaced by <code>-t -D
156 DUMP_VHOSTS</code>.</li>
158 <li>The module <module>mod_auth_digest</module>, which was
159 experimental in Apache 1.3, is now a standard module.</li>
161 <li>The <code>mod_mmap_static</code> module, which was experimental in
162 Apache 1.3, has been replaced with <module>mod_file_cache</module>.</li>
164 <li>The distribution has been completely reorganized so that
165 it no longer contains an independent <code>src</code>
166 directory. Instead, the sources are logically organized under
167 the main distribution directory, and installations of the
168 compiled server should be directed to a separate
173 <section id="third-party">
174 <title>Third Party Modules</title>
176 <p>Extensive changes were made to the server API in Apache 2.0.
177 Existing modules designed for the Apache 1.3 API will
178 <strong>not</strong> work in Apache 2.0 without modification.
179 Details are provided in the <a href="developer/">developer
180 documentation</a>.</p>