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