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>
18 <section id="compile-time">
19 <title>Compile-Time Configuration Changes</title>
22 <li>Apache now uses an <code>autoconf</code> and
23 <code>libtool</code> system for <a
24 href="install.html">configuring the build processes</a>.
25 Using this system is similar to, but not the same as, using
26 the APACI system in Apache 1.3.</li>
28 <li>In addition to the usual selection of modules which you
29 can choose to compile, Apache 2.0 has moved the main part of
30 request processing into <a href="mpm.html">Multi-Processing
31 Modules</a> (MPMs).</li>
35 <section id="run-time">
36 <title>Run-Time Configuration Changes</title>
39 <li>Many directives that were in the core server in Apache
40 1.3 are now in the MPMs. If you wish the behavior of the
41 server to be as similar as possible to the behavior of Apache
42 1.3, you should select the <a
43 href="mod/prefork.html">prefork</a> MPM. Other MPMs will have
44 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 <Proxy> block
50 rather than a <Directory proxy:> block.</li>
52 <li>The handling of PATH_INFO (trailing path information after
53 the true filename) has changed for some modules. Modules
54 that were previously implemented as a handler but are now
55 implemented as a filter may no longer accept requests with
56 PATH_INFO. Filters such as <a
57 href="mod/mod_include.html">INCLUDES</a> are implemented on top
58 of the core handler, and therefore reject requests with
59 PATH_INFO. You can use the <directive
60 module="core">AcceptPathInfo</directive> directive to
61 force the core handler to accept requests with PATH_INFO and
62 thereby restore the ability to use PATH_INFO in server-side
66 module="mod_negotiation">CacheNegotiatedDocs</directive>
67 directive now takes the argument <code>on</code> or
68 <code>off</code>. Existing instances of
69 <code>CacheNegotiatedDocs</code> should be replaced with
70 <code>CacheNegotiatedDocs on</code>.</li>
73 The <directive module="core">ErrorDocument</directive>
74 directive no longer uses a quote at the beginning of the
75 argument to indicate a text message. Instead, you should
76 enclose the message in double quotes. For example, existing
80 <code>ErrorDocument 403 "Some Message</code>
82 should be replaced with
85 <code>ErrorDocument 403 "Some Message"</code>
87 As long as the second argument is not a valid URL or
88 pathname, it will be treated as a text message.
91 <li>The <code>AccessConfig</code> and
92 <code>ResourceConfig</code> directives no longer exist.
93 Existing instances of these directives can be replaced with
94 the <directive module="core">Include</directive>
95 directive which has equivalent functionality. If you were
96 making use of the default values of these directives without
97 including them in the configuration files, you may need to
98 add <code>Include conf/access.conf</code> and <code>Include
99 conf/srm.conf</code> to your httpd.conf. In order to assure
100 that Apache reads the configuration files in the same order
101 as was implied by the older directives, the
102 <code>Include</code> directives should be placed at the end
103 of httpd.conf, with the one for <code>srm.conf</code>
104 preceding the one for <code>access.conf</code>.</li>
106 <li>The <code>BindAddress</code> and <code>Port</code>
107 directives no longer exist. Equivalent functionality is
108 provided with the more flexible
109 <directive module="mpm_common">Listen</directive>
112 <li>Another use of the <code>Port</code>
113 directive in Apache-1.3 was setting the port number to be used
114 in self-referential URL's. The Apache-2.0 equivalent is
115 the new <directive module="core">ServerName</directive>
116 syntax: it has been changed to allow specifying both the
117 hostname <em>and</em> the port number for self-referential URL's
118 in one directive.</li>
120 <li>The <code>ServerType</code> directive no longer exists.
121 The method used to serve requests is now determined by the
122 selection of MPM. There is currently no MPM designed to be
123 launched by inetd.</li>
125 <li>The mod_log_agent and mod_log_referer modules which
126 provided the <code>AgentLog</code>, <code>RefererLog</code>
127 and <code>RefererIgnore</code> directives have been removed.
128 Agent and referer logs are still available using the
129 <directive module="mod_log_config">CustomLog</directive>
130 directive of mod_log_config.</li>
132 <li>The <code>AddModule</code> and
133 <code>ClearModuleList</code> directives no longer exist.
134 These directives where used to ensure that modules could be
135 enabled in the correct order. The new Apache 2.0 API allows
136 modules to explicitly specify their ordering, eliminating the
137 need for these directives.</li>
139 <li>The <code>FancyIndexing</code> directive has been removed.
140 The same functionality is available through the
141 <code>FancyIndexing</code> option to the <directive
142 module="mod_autoindex">IndexOptions</directive>
148 <title>Misc Changes</title>
151 <li>The <code>httpd</code> command line option
152 <code>-S</code> which was used for printing the virtual host
153 configuration has been replaced by <code>-t -D
154 DUMP_VHOSTS</code>.</li>
156 <li>The module mod_auth_digest, which was experimental in
157 Apache 1.3, is now a standard module.</li>
159 <li>The mod_mmap_static module, which was experimental in
160 Apache 1.3, has been replaced with mod_file_cache.</li>
162 <li>The distribution has been completely reorganized so that
163 it no longer contains an independent <code>src</code>
164 directory. Instead, the sources are logically organized under
165 the main distribution directory, and installations of the
166 compiled server should be directed to a separate
171 <section id="third-party">
172 <title>Third Party Modules</title>
174 <p>Extensive changes were made to the server API in Apache 2.0.
175 Existing modules designed for the Apache 1.3 API will
176 <strong>not</strong> work in Apache 2.0 without modification.
177 Details are provided in the <a href="developer/">developer
178 documentation</a>.</p>