]> granicus.if.org Git - apache/blob - docs/manual/upgrading.html.en
Update XForms.
[apache] / docs / manual / upgrading.html.en
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
4 <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
5 <!--
6         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7               This file is generated from xml source: DO NOT EDIT
8         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
9       -->
10 <title>Upgrading to 2.4 from 2.2 - Apache HTTP Server Version 2.5</title>
11 <link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
12 <link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
13 <link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="./style/css/prettify.css" />
14 <script src="./style/scripts/prettify.min.js" type="text/javascript">
15 </script>
16
17 <link href="./images/favicon.ico" rel="shortcut icon" /></head>
18 <body id="manual-page"><div id="page-header">
19 <p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossary</a> | <a href="./sitemap.html">Sitemap</a></p>
20 <p class="apache">Apache HTTP Server Version 2.5</p>
21 <img alt="" src="./images/feather.gif" /></div>
22 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
23 <div id="path">
24 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="./">Version 2.5</a></div><div id="page-content"><div id="preamble"><h1>Upgrading to 2.4 from 2.2</h1>
25 <div class="toplang">
26 <p><span>Available Languages: </span><a href="./en/upgrading.html" title="English">&nbsp;en&nbsp;</a> |
27 <a href="./fr/upgrading.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a></p>
28 </div>
29
30   <p>In order to assist folks upgrading, we maintain a document
31   describing information critical to existing Apache HTTP Server users. These
32   are intended to be brief notes, and you should be able to find
33   more information in either the <a href="new_features_2_4.html">New Features</a> document, or in
34   the <code>src/CHANGES</code> file.  Application and module developers
35   can find a summary of API changes in the <a href="developer/new_api_2_4.html">API updates</a> overview.</p>
36
37   <p>This document describes changes in server behavior that might
38   require you to change your configuration or how you use the server
39   in order to continue using 2.4 as you are currently using 2.2.
40   To take advantage of new features in 2.4, see the New Features
41   document.</p>
42
43   <p>This document describes only the changes from 2.2 to 2.4.  If you
44   are upgrading from version 2.0, you should also consult the <a href="http://httpd.apache.org/docs/2.2/upgrading.html">2.0 to 2.2
45   upgrading document.</a></p>
46
47 </div>
48 <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#compile-time">Compile-Time Configuration Changes</a></li>
49 <li><img alt="" src="./images/down.gif" /> <a href="#run-time">Run-Time Configuration Changes</a></li>
50 <li><img alt="" src="./images/down.gif" /> <a href="#misc">Misc Changes</a></li>
51 <li><img alt="" src="./images/down.gif" /> <a href="#third-party">Third Party Modules</a></li>
52 <li><img alt="" src="./images/down.gif" /> <a href="#commonproblems">Common problems when upgrading</a></li>
53 </ul><h3>See also</h3><ul class="seealso"><li><a href="new_features_2_4.html">Overview of new features in
54   Apache HTTP Server 2.4</a></li></ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
55 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
56 <div class="section">
57 <h2><a name="compile-time" id="compile-time">Compile-Time Configuration Changes</a></h2>
58     
59
60     <p>The compilation process is very similar to the one used in
61     version 2.2.  Your old <code>configure</code> command line (as
62     found in <code>build/config.nice</code> in the installed server
63     directory) can be used in most cases.  There are some changes in
64     the default settings.  Some details of changes:</p>
65
66     <ul>
67       <li>These modules have been removed: mod_authn_default,
68       mod_authz_default, mod_mem_cache.  If you were using
69       mod_mem_cache in 2.2, look at <code class="module"><a href="./mod/mod_cache_disk.html">mod_cache_disk</a></code> in
70       2.4.</li>
71
72       <li>All load balancing implementations have been moved to
73       individual, self-contained mod_proxy submodules, e.g.
74       <code class="module"><a href="./mod/mod_lbmethod_bybusyness.html">mod_lbmethod_bybusyness</a></code>.  You might need
75       to build and load any of these that your configuration
76       uses.</li>
77
78       <li>Platform support has been removed for BeOS, TPF, and
79       even older platforms such as A/UX, Next, and Tandem.  These were
80       believed to be broken anyway.</li>
81
82       <li>configure: dynamic modules (DSO) are built by default</li>
83
84       <li>configure: By default, only a basic set of modules is loaded. The
85       other <code class="directive">LoadModule</code> directives are commented
86       out in the configuration file.</li>
87
88       <li>configure: the "most" module set gets built by default</li>
89
90       <li>configure: the "reallyall" module set adds developer modules
91       to the "all" set</li>
92     </ul>
93
94   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
95 <div class="section">
96 <h2><a name="run-time" id="run-time">Run-Time Configuration Changes</a></h2>
97     
98     <p>There have been significant changes in authorization configuration,
99     and other minor configuration changes, that could require changes to your 2.2
100     configuration files before using them for 2.4.</p>
101
102     <h3><a name="authz" id="authz">Authorization</a></h3>
103       
104
105       <p>Any configuration file that uses authorization will likely
106       need changes.</p>
107
108     <p>You should review the <a href="howto/auth.html">Authentication,
109     Authorization and Access Control Howto</a>, especially the section
110     <a href="howto/auth.html#beyond">Beyond just authorization</a>
111     which explains the new mechanisms for controlling the order in
112     which the authorization directives are applied.</p>
113
114     <p>Directives that control how authorization modules respond when they don't match
115     the authenticated user have been removed: This includes
116     AuthzLDAPAuthoritative, AuthzDBDAuthoritative, AuthzDBMAuthoritative,
117     AuthzGroupFileAuthoritative, AuthzUserAuthoritative,
118     and AuthzOwnerAuthoritative.   These directives have been replaced by the
119     more expressive <code class="directive"><a href="./mod/mod_authz_core.html#requireany">RequireAny</a></code>,
120     <code class="directive"><a href="./mod/mod_authz_core.html#requirenone">RequireNone</a></code>, and
121     <code class="directive"><a href="./mod/mod_authz_core.html#requireall">RequireAll</a></code>.</p>
122
123     <p>If you use <code class="module"><a href="./mod/mod_authz_dbm.html">mod_authz_dbm</a></code>, you must port your
124     configuration to use <code>Require dbm-group ...</code> in place
125     of <code>Require group ...</code>.</p>
126
127     <h4><a name="access" id="access">Access control</a></h4>
128       
129
130       <p>In 2.2, access control based on client hostname, IP address,
131       and other characteristics of client requests was done using the
132       directives <code class="directive"><a href="./mod/mod_access_compat.html#order">Order</a></code>, <code class="directive"><a href="./mod/mod_access_compat.html#allow">Allow</a></code>, <code class="directive"><a href="./mod/mod_access_compat.html#deny">Deny</a></code>, and <code class="directive"><a href="./mod/mod_access_compat.html#satisfy">Satisfy</a></code>.</p>
133
134       <p>In 2.4, such access control is done in the same way as other
135       authorization checks, using the new module
136       <code class="module"><a href="./mod/mod_authz_host.html">mod_authz_host</a></code>.  The old access control idioms
137       should be replaced by the new authentication mechanisms,
138       although for compatibility with old configurations, the new
139       module <code class="module"><a href="./mod/mod_access_compat.html">mod_access_compat</a></code> is provided.</p>
140
141       <p>Here are some examples of old and new ways to do the same
142       access control.</p>
143
144       <p>In this example, all requests are denied.</p>
145       <div class="example"><h3>2.2 configuration:</h3><pre class="prettyprint lang-config">Order deny,allow
146 Deny from all</pre>
147 </div>
148       <div class="example"><h3>2.4 configuration:</h3><pre class="prettyprint lang-config">Require all denied</pre>
149 </div>
150
151       <p>In this example, all requests are allowed.</p>
152       <div class="example"><h3>2.2 configuration:</h3><pre class="prettyprint lang-config">Order allow,deny
153 Allow from all</pre>
154 </div>
155       <div class="example"><h3>2.4 configuration:</h3><pre class="prettyprint lang-config">Require all granted</pre>
156 </div>
157
158       <p>In the following example, all hosts in the example.org domain
159       are allowed access; all other hosts are denied access.</p>
160
161       <div class="example"><h3>2.2 configuration:</h3><pre class="prettyprint lang-config">Order Deny,Allow
162 Deny from all
163 Allow from example.org</pre>
164 </div>
165       <div class="example"><h3>2.4 configuration:</h3><pre class="prettyprint lang-config">Require host example.org</pre>
166 </div>
167     
168
169     
170
171     <h3><a name="config" id="config">Other configuration changes</a></h3>
172       
173
174       <p>Some other small adjustments may be necessary for particular
175       configurations as discussed below.</p>
176
177       <ul>
178         <li><code class="directive">MaxRequestsPerChild</code> has been renamed to
179         <code class="directive"><a href="./mod/mpm_common.html#maxconnectionsperchild">MaxConnectionsPerChild</a></code>,
180         describes more accurately what it does. The old name is still
181         supported.</li>
182
183         <li><code class="directive">MaxClients</code> has been renamed to
184         <code class="directive"><a href="./mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code>,
185         which describes more accurately what it does. For async MPMs, like
186         <code class="module"><a href="./mod/event.html">event</a></code>, the maximum number of clients is not
187         equivalent than the number of worker threads. The old name is still
188         supported.</li>
189
190         <li>The <code class="directive"><a href="./mod/core.html#defaulttype">DefaultType</a></code>
191         directive no longer has any effect, other than to emit a
192         warning if it's used with any value other than
193         <code>none</code>.  You need to use other configuration
194         settings to replace it in 2.4.
195         </li>
196
197         <li><code class="directive"><a href="./mod/core.html#allowoverride">AllowOverride</a></code> now
198         defaults to <code>None</code>.</li>
199
200         <li><code class="directive"><a href="./mod/core.html#enablesendfile">EnableSendfile</a></code> now
201         defaults to Off.</li>
202
203         <li><code class="directive"><a href="./mod/core.html#fileetag">FileETag</a></code> now
204         defaults to "MTime Size" (without INode).</li>
205
206         <li><code class="module"><a href="./mod/mod_dav_fs.html">mod_dav_fs</a></code>: The format of the <code class="directive"><a href="./mod/mod_dav_fs.html#davlockdb">DavLockDB</a></code> file has changed for
207         systems with inodes.  The old <code class="directive"><a href="./mod/mod_dav_fs.html#davlockdb">DavLockDB</a></code> file must be deleted on
208         upgrade.
209         </li>
210
211         <li><code class="directive"><a href="./mod/core.html#keepalive">KeepAlive</a></code> only
212         accepts values of <code>On</code> or <code>Off</code>.
213         Previously, any value other than "Off" or "0" was treated as
214         "On".</li>
215
216         <li>Directives AcceptMutex, LockFile, RewriteLock, SSLMutex,
217         SSLStaplingMutex, and WatchdogMutexPath have been replaced
218         with a single <code class="directive"><a href="./mod/core.html#mutex">Mutex</a></code>
219         directive.  You will need to evaluate any use of these removed
220         directives in your 2.2 configuration to determine if they can
221         just be deleted or will need to be replaced using <code class="directive"><a href="./mod/core.html#mutex">Mutex</a></code>.</li>
222
223         <li><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>: <code class="directive"><a href="./mod/mod_cache.html#cacheignoreurlsessionidentifiers">CacheIgnoreURLSessionIdentifiers</a></code>
224         now does an exact match against the query string instead of a
225         partial match.  If your configuration was using partial
226         strings, e.g. using <code>sessionid</code> to match
227         <code>/someapplication/image.gif;jsessionid=123456789</code>,
228         then you will need to change to the full string
229         <code>jsessionid</code>.
230         </li>
231
232         <li><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>: The second parameter to
233         <code class="directive"><a href="./mod/mod_cache.html#cacheenable">CacheEnable</a></code> only
234         matches forward proxy content if it begins with the correct
235         protocol. In 2.2 and earlier, a parameter of '/' matched all
236         content.</li>
237
238         <li><code class="module"><a href="./mod/mod_ldap.html">mod_ldap</a></code>: <code class="directive"><a href="./mod/mod_ldap.html#ldaptrustedclientcert">LDAPTrustedClientCert</a></code> is now
239         consistently a per-directory setting only.  If you use this
240         directive, review your configuration to make sure it is
241         present in all the necessary directory contexts.</li>
242
243         <li><code class="module"><a href="./mod/mod_filter.html">mod_filter</a></code>: <code class="directive"><a href="./mod/mod_filter.html#filterprovider">FilterProvider</a></code> syntax has changed and
244         now uses a boolean expression to determine if a filter is applied.
245         </li>
246
247         <li><code class="module"><a href="./mod/mod_include.html">mod_include</a></code>:
248             <ul>
249             <li>The <code>#if expr</code> element now uses the new <a href="expr.html">expression parser</a>. The old syntax can be
250             restored with the new directive <code class="directive"><a href="./mod/mod_include.html#ssilegacyexprparser">SSILegacyExprParser</a></code>.
251             </li>
252             <li>An SSI* config directive in directory scope no longer causes
253             all other per-directory SSI* directives to be reset to their
254             default values.</li>
255             </ul>
256         </li>
257
258         <li><code class="module"><a href="./mod/mod_charset_lite.html">mod_charset_lite</a></code>: The <code>DebugLevel</code>
259         option has been removed in favour of per-module <code class="directive"><a href="./mod/core.html#loglevel">LogLevel</a></code> configuration.
260         </li>
261
262         <li><code class="module"><a href="./mod/mod_ext_filter.html">mod_ext_filter</a></code>: The <code>DebugLevel</code>
263         option has been removed in favour of per-module <code class="directive"><a href="./mod/core.html#loglevel">LogLevel</a></code> configuration.
264         </li>
265
266         <li><code class="module"><a href="./mod/mod_proxy_scgi.html">mod_proxy_scgi</a></code>: The default setting for
267         <code>PATH_INFO</code> has changed from httpd 2.2, and
268         some web applications will no longer operate properly with
269         the new <code>PATH_INFO</code> setting.  The previous setting
270         can be restored by configuring the <code>proxy-scgi-pathinfo</code>
271         variable.</li>
272
273         <li><code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code>: CRL based revocation checking
274         now needs to be explicitly configured through <code class="directive"><a href="./mod/mod_ssl.html#sslcarevocationcheck">SSLCARevocationCheck</a></code>.
275         </li>
276
277         <li><code class="module"><a href="./mod/mod_substitute.html">mod_substitute</a></code>: The maximum line length is now
278         limited to 1MB.
279         </li>
280
281         <li><code class="module"><a href="./mod/mod_reqtimeout.html">mod_reqtimeout</a></code>: If the module is loaded, it
282         will now set some default timeouts.</li>
283
284         <li><code class="module"><a href="./mod/mod_dumpio.html">mod_dumpio</a></code>: <code class="directive">DumpIOLogLevel</code>
285         is no longer supported.  Data is always logged at <code class="directive"><a href="./mod/core.html#loglevel">LogLevel</a></code> <code>trace7</code>.</li>
286
287         <li>On Unix platforms, piped logging commands configured using
288         either <code class="directive"><a href="./mod/core.html#errorlog">ErrorLog</a></code> or
289         <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> were invoked using
290         <code>/bin/sh -c</code> in 2.2 and earlier.  In 2.4 and later,
291         piped logging commands are executed directly.  To restore the
292         old behaviour, see the <a href="logs.html#piped">piped logging
293         documentation</a>.</li>
294
295       </ul>
296     
297   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
298 <div class="section">
299 <h2><a name="misc" id="misc">Misc Changes</a></h2>
300     
301
302     <ul>
303       <li><code class="module"><a href="./mod/mod_autoindex.html">mod_autoindex</a></code>: will now extract titles and
304       display descriptions for .xhtml files, which were previously
305       ignored.</li>
306
307       <li><code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code>: The default format of the <code>*_DN</code>
308       variables has changed. The old format can still be used with the new
309       <code>LegacyDNStringFormat</code> argument to <code class="directive"><a href="./mod/mod_ssl.html#ssloptions">SSLOptions</a></code>. The SSLv2 protocol is
310       no longer supported. <code class="directive"><a href="./mod/mod_ssl.html#sslproxycheckpeercn">SSLProxyCheckPeerCN
311           </a></code> and <code class="directive"><a href="./mod/mod_ssl.html#sslproxycheckpeerexpire">SSLProxyCheckPeerExpire
312           </a></code> now default to On, causing proxy requests to HTTPS hosts
313           with bad or outdated certificates to fail with a 502 status code (Bad
314           gateway)</li>
315
316       <li><code class="program"><a href="./programs/htpasswd.html">htpasswd</a></code> now uses MD5 hash by default on
317       all platforms.</li>
318
319       <li>The <code class="directive"><a href="./mod/core.html#namevirtualhost">NameVirtualHost</a></code>
320       directive no longer has any effect, other than to emit a
321       warning.  Any address/port combination appearing in multiple
322       virtual hosts is implicitly treated as a name-based virtual host.
323       </li>
324
325       <li><code class="module"><a href="./mod/mod_deflate.html">mod_deflate</a></code> will now skip compression if it knows
326       that the size overhead added by the compression is larger than the data
327       to be compressed.
328       </li>
329
330       <li>Multi-language error documents from 2.2.x may not work unless
331       they are adjusted to the new syntax of <code class="module"><a href="./mod/mod_include.html">mod_include</a></code>'s
332       <code>#if expr=</code> element or the directive
333       <code class="directive"><a href="./mod/mod_include.html#ssilegacyexprparser">SSILegacyExprParser</a></code> is
334       enabled for the directory containing the error documents.
335       </li>
336
337       <li>The functionality provided by <code>mod_authn_alias</code>
338       in previous versions (i.e., the <code class="directive"><a href="./mod/mod_authn_core.html#authnprovideralias">AuthnProviderAlias</a></code> directive)
339       has been moved into <code class="module"><a href="./mod/mod_authn_core.html">mod_authn_core</a></code>.
340       </li>
341
342       <li><code class="module"><a href="./mod/mod_cgid.html">mod_cgid</a></code> uses the servers <code class="directive"><a href="./mod/core.html#timeout">Timeout</a></code> to limit the length of time to wait for CGI output.
343       This timeout can be overridden with <code class="directive"><a href="./mod/mod_cgid.html#cgidscripttimeout">
344       CGIDScriptTImeout</a></code>.
345       </li>
346
347     </ul>
348
349   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
350 <div class="section">
351 <h2><a name="third-party" id="third-party">Third Party Modules</a></h2>
352     
353     <p>All modules must be recompiled for 2.4 before being loaded.</p>
354
355     <p>Many third-party modules designed for version 2.2 will
356     otherwise work unchanged with the Apache HTTP Server version 2.4.
357     Some will require changes; see the <a href="developer/new_api_2_4.html">API
358     update</a> overview.</p>
359   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
360 <div class="section">
361 <h2><a name="commonproblems" id="commonproblems">Common problems when upgrading</a></h2>
362     
363     <ul><li>Startup errors:
364     <ul>
365       <li><code>Invalid command 'User', perhaps misspelled or defined by a module not included in the server configuration</code> - load module <code class="module"><a href="./mod/mod_unixd.html">mod_unixd</a></code></li>
366       <li><code>Invalid command 'Require', perhaps misspelled or defined by a module not included in the server configuration</code>, or
367 <code>Invalid command 'Order', perhaps misspelled or defined by a module not included in the server configuration</code>
368  - load module <code class="module"><a href="./mod/mod_access_compat.html">mod_access_compat</a></code>, or update configuration to 2.4 authorization directives.</li>
369       <li><code>Ignoring deprecated use of DefaultType in line NN of /path/to/httpd.conf</code> - remove <code class="directive"><a href="./mod/core.html#defaulttype">DefaultType</a></code>
370       and replace with other configuration settings.</li>
371       <li><code>Invalid command 'AddOutputFilterByType', perhaps misspelled
372       or defined by a module not included in the server configuration
373       </code> - <code class="directive"><a href="./mod/mod_filter.html#addoutputfilterbytype">AddOutputFilterByType</a></code>
374       has moved from the core to mod_filter, which must be loaded.</li>
375     </ul></li>
376     <li>Errors serving requests:
377     <ul>
378       <li><code>configuration error:  couldn't check user: /path</code> -
379       load module <code class="module"><a href="./mod/mod_authn_core.html">mod_authn_core</a></code>.</li>
380       <li><code>.htaccess</code> files aren't being processed - Check for an
381       appropriate <code class="directive"><a href="./mod/core.html#allowoverride">AllowOverride</a></code> directive;
382       the default changed to <code>None</code> in 2.4.</li>
383     </ul>
384     </li>
385 </ul>
386   </div></div>
387 <div class="bottomlang">
388 <p><span>Available Languages: </span><a href="./en/upgrading.html" title="English">&nbsp;en&nbsp;</a> |
389 <a href="./fr/upgrading.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a></p>
390 </div><div class="top"><a href="#page-header"><img src="./images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
391 <script type="text/javascript"><!--//--><![CDATA[//><!--
392 var comments_shortname = 'httpd';
393 var comments_identifier = 'http://httpd.apache.org/docs/trunk/upgrading.html';
394 (function(w, d) {
395     if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
396         d.write('<div id="comments_thread"><\/div>');
397         var s = d.createElement('script');
398         s.type = 'text/javascript';
399         s.async = true;
400         s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
401         (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
402     }
403     else {
404         d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
405     }
406 })(window, document);
407 //--><!]]></script></div><div id="footer">
408 <p class="apache">Copyright 2016 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
409 <p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossary</a> | <a href="./sitemap.html">Sitemap</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
410 if (typeof(prettyPrint) !== 'undefined') {
411     prettyPrint();
412 }
413 //--><!]]></script>
414 </body></html>