marc 97/04/30 22:27:20
Modified: htdocs index.html htdocs/manual bind.html cgi_path.html content-negotiation.html dns-caveats.html env.html host.html install.html install_1_1.html man-template.html process-model.html suexec.html vhosts-in-depth.html virtual-host.html htdocs/manual/misc API.html client_block_api.html compat_notes.html fin_wait_2.html index.html known_bugs.html perf-dec.html perf.html vif-info.html htdocs/manual/mod core.html mod_access.html mod_auth.html mod_auth_db.html mod_auth_dbm.html mod_auth_msql.html mod_browser.html mod_cern_meta.html mod_cgi.html mod_cookies.html mod_digest.html mod_dld.html mod_env.html mod_example.html mod_expires.html mod_headers.html mod_imap.html mod_include.html mod_log_agent.html mod_log_common.html mod_log_config.html mod_log_referer.html mod_mime.html mod_negotiation.html mod_proxy.html mod_rewrite.html mod_userdir.html mod_usertrack.html Log: Big spelling and HTML cleanup of docs. Thanks go to weblint and ispell and their authors. Revision Changes Path 1.5 +1 -1 apache/htdocs/index.html Index: index.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/index.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C3 -r1.4 -r1.5 *** index.html 1996/12/02 16:59:44 1.4 --- index.html 1997/05/01 05:26:31 1.5 *************** *** 18,23 **** server. Thanks for using Apache! <P> ! <img src="apache_pb.gif"> </BODY></HTML> --- 18,23 ---- server. Thanks for using Apache! <P> ! <img src="apache_pb.gif" alt=""> </BODY></HTML> 1.6 +1 -2 apache/htdocs/manual/bind.html Index: bind.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/bind.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C3 -r1.5 -r1.6 *** bind.html 1997/03/20 23:30:44 1.5 --- bind.html 1997/05/01 05:26:32 1.6 *************** *** 75,81 **** main server what addresses and ports to listen to. If no <VirtualHost> directives are used, the server will behave the same for all accepted requests. However, <VirtualHost> can be ! used to specify a different behavour for one or more of the addresses and ports. To implement a VirtualHost, the server must first be told to listen to the address and port to be used. Then a <VirtualHost> section should be created for a specified address --- 75,81 ---- main server what addresses and ports to listen to. If no <VirtualHost> directives are used, the server will behave the same for all accepted requests. However, <VirtualHost> can be ! used to specify a different behavior for one or more of the addresses and ports. To implement a VirtualHost, the server must first be told to listen to the address and port to be used. Then a <VirtualHost> section should be created for a specified address *************** *** 93,99 **** <a href="dns-caveats.html">DNS Issues</a> and <a href="mod/core.html#virtualhost"><VirtualHost> section</a>. - </ul> <!--#include virtual="footer.html" --> </BODY> --- 93,98 ---- 1.2 +6 -6 apache/htdocs/manual/cgi_path.html Index: cgi_path.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/cgi_path.html,v retrieving revision 1.1 retrieving revision 1.2 diff -C3 -r1.1 -r1.2 *** cgi_path.html 1996/12/20 05:42:13 1.1 --- cgi_path.html 1997/05/01 05:26:33 1.2 *************** *** 11,17 **** <p>As implemented in Apache 1.1.1 and earlier versions, the method Apache used to create PATH_INFO in the CGI environment was ! counterintiutive, and could result in crashes in certain cases. In Apache 1.2 and beyond, this behavior has changed. Although this results in some compatibility problems with certain legacy CGI applications, the Apache 1.2 behavior is still compatible with the --- 11,17 ---- <p>As implemented in Apache 1.1.1 and earlier versions, the method Apache used to create PATH_INFO in the CGI environment was ! counterintuitive, and could result in crashes in certain cases. In Apache 1.2 and beyond, this behavior has changed. Although this results in some compatibility problems with certain legacy CGI applications, the Apache 1.2 behavior is still compatible with the *************** *** 45,54 **** example, PATH_INFO would be set to "<code>/script</code>", and SCRIPT_NAME to "<code>/cgi-ralph</code>". This makes sense and results in no server behavior problems. It also permits the script to be ! gauranteed that "<code>http://$SERVER_NAME:$SERVER_PORT$SCRIPT_NAME$PATH_INFO</code>" ! will always be an accessable URL that points to the current script, ! something which was not neccessarily true with previous versions of Apache. <p>However, the "<code>/ralph</code>" --- 45,54 ---- example, PATH_INFO would be set to "<code>/script</code>", and SCRIPT_NAME to "<code>/cgi-ralph</code>". This makes sense and results in no server behavior problems. It also permits the script to be ! guaranteed that "<code>http://$SERVER_NAME:$SERVER_PORT$SCRIPT_NAME$PATH_INFO</code>" ! will always be an accessible URL that points to the current script, ! something which was not necessarily true with previous versions of Apache. <p>However, the "<code>/ralph</code>" *************** *** 60,66 **** <h2><a name="compat">Compatibility with Previous Servers</a></h2> ! <p>It may be neccessary for a script that was designed for earlier versions of Apache or other servers to need the information that the old PATH_INFO variable provided. For this purpose, Apache 1.2 (1.2b3 and later) sets an additional variable, FILEPATH_INFO. This --- 60,66 ---- <h2><a name="compat">Compatibility with Previous Servers</a></h2> ! <p>It may be necessary for a script that was designed for earlier versions of Apache or other servers to need the information that the old PATH_INFO variable provided. For this purpose, Apache 1.2 (1.2b3 and later) sets an additional variable, FILEPATH_INFO. This *************** *** 68,74 **** with Apache 1.1.1.</p> <p>A script that wishes to work with both Apache 1.2 and earlier ! versions can simply test for the existance of FILEPATH_INFO, and use it if available. Otherwise, it can use PATH_INFO. For example, in Perl, one might use: <pre> --- 68,74 ---- with Apache 1.1.1.</p> <p>A script that wishes to work with both Apache 1.2 and earlier ! versions can simply test for the existence of FILEPATH_INFO, and use it if available. Otherwise, it can use PATH_INFO. For example, in Perl, one might use: <pre> 1.8 +10 -10 apache/htdocs/manual/content-negotiation.html Index: content-negotiation.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/content-negotiation.html,v retrieving revision 1.7 retrieving revision 1.8 diff -C3 -r1.7 -r1.8 *** content-negotiation.html 1997/01/28 20:05:29 1.7 --- content-negotiation.html 1997/05/01 05:26:33 1.8 *************** *** 46,52 **** As an example of a more complex request, this browser has been configured to accept French and English, but prefer French, and to accept various media types, preferring HTML over plain text or other ! text types, and prefering GIF or jpeg over other media types, but also allowing any other media type as a last resort: <pre> --- 46,52 ---- As an example of a more complex request, this browser has been configured to accept French and English, but prefer French, and to accept various media types, preferring HTML over plain text or other ! text types, and preferring GIF or JPEG over other media types, but also allowing any other media type as a last resort: <pre> *************** *** 154,160 **** <code>image/gif</code>, <code>text/plain</code>, or <code>text/html; level=3</code>. <dt> <code>Content-language:</code> ! <dd> The languages of the variant, specified as an internet standard language code (e.g., <code>en</code> for English, <code>kr</code> for Korean, etc.). <dt> <code>Content-encoding:</code> --- 154,160 ---- <code>image/gif</code>, <code>text/plain</code>, or <code>text/html; level=3</code>. <dt> <code>Content-language:</code> ! <dd> The languages of the variant, specified as an Internet standard language code (e.g., <code>en</code> for English, <code>kr</code> for Korean, etc.). <dt> <code>Content-encoding:</code> *************** *** 223,237 **** applies a algorithm to decide on the 'best' variant to return, if any. To do this it calculates a quality value for each variant in each of the dimensions of variance. It is not necessary to know any of the ! details of how negotaion actually takes place in order to use Apache's ! content negotation features. However the rest of this document explains in detail the algorithm used for those interested. <p> In some circumstances, Apache can 'fiddle' the quality factor of a ! particular dimension to achive a better result. The ways Apache can fiddle quality factors is explained in more detail below. ! <h3>Dimensions of Negotation</h3> <table> <tr><th>Dimension --- 223,237 ---- applies a algorithm to decide on the 'best' variant to return, if any. To do this it calculates a quality value for each variant in each of the dimensions of variance. It is not necessary to know any of the ! details of how negotiation actually takes place in order to use Apache's ! content negotiation features. However the rest of this document explains in detail the algorithm used for those interested. <p> In some circumstances, Apache can 'fiddle' the quality factor of a ! particular dimension to achieve a better result. The ways Apache can fiddle quality factors is explained in more detail below. ! <h3>Dimensions of Negotiation</h3> <table> <tr><th>Dimension *************** *** 241,247 **** can have an associated quality factor. Variant description can also have a quality factor. <tr><td>Language ! <td>Browser indicates preferneces on Accept-Language: header. Each item can have a quality factor. Variants can be associated with none, one or more languages. --- 241,247 ---- can have an associated quality factor. Variant description can also have a quality factor. <tr><td>Language ! <td>Browser indicates preferences on Accept-Language: header. Each item can have a quality factor. Variants can be associated with none, one or more languages. *************** *** 306,312 **** <li>The algorithm has now selected one 'best' variant, so return it as the response. The HTTP response header Vary is set to indicate the ! dimensions of negotation (browsers and caches can use this information when caching the resource). End. <li>To get here means no variant was selected (because non are acceptable --- 306,312 ---- <li>The algorithm has now selected one 'best' variant, so return it as the response. The HTTP response header Vary is set to indicate the ! dimensions of negotiation (browsers and caches can use this information when caching the resource). End. <li>To get here means no variant was selected (because non are acceptable *************** *** 364,370 **** If the Accept: header contains <i>no</i> q factors at all, Apache sets the q value of "*/*", if present, to 0.01 to emulate the desired ! behaviour. It also sets the q value of wildcards of the format "type/*" to 0.02 (so these are preferred over matches against "*/*". If any media type on the Accept: header contains a q factor, these special values are <i>not</i> applied, so requests from browsers --- 364,370 ---- If the Accept: header contains <i>no</i> q factors at all, Apache sets the q value of "*/*", if present, to 0.01 to emulate the desired ! behavior. It also sets the q value of wildcards of the format "type/*" to 0.02 (so these are preferred over matches against "*/*". If any media type on the Accept: header contains a q factor, these special values are <i>not</i> applied, so requests from browsers *************** *** 405,411 **** hits could return the wrong response. To prevent this, Apache normally marks all responses that are returned after content negotiation as non-cacheable by HTTP/1.0 clients. Apache also supports the HTTP/1.1 ! protocol features to allow cacheing of negotiated responses. <P> For requests which come from a HTTP/1.0 compliant client (either a browser or a cache), the directive <tt>CacheNegotiatedDocs</tt> can be --- 405,411 ---- hits could return the wrong response. To prevent this, Apache normally marks all responses that are returned after content negotiation as non-cacheable by HTTP/1.0 clients. Apache also supports the HTTP/1.1 ! protocol features to allow caching of negotiated responses. <P> For requests which come from a HTTP/1.0 compliant client (either a browser or a cache), the directive <tt>CacheNegotiatedDocs</tt> can be 1.2 +10 -10 apache/htdocs/manual/dns-caveats.html Index: dns-caveats.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/dns-caveats.html,v retrieving revision 1.1 retrieving revision 1.2 diff -C3 -r1.1 -r1.2 *** dns-caveats.html 1997/03/20 23:31:44 1.1 --- dns-caveats.html 1997/05/01 05:26:33 1.2 *************** *** 27,34 **** <p>In order for Apache to function properly it absolutely needs to have two pieces of information about each virtual host: the <a href="mod/core.html#servername"><code>ServerName</code></a> ! and at least one ip address that the server ! responds to. This example does not include the ip address, so Apache must use DNS to find the address of <code>www.abc.dom</code>. If for some reason DNS is not available at the time your server is parsing its config file, then this virtual host <b>will not be configured</b>. It --- 27,34 ---- <p>In order for Apache to function properly it absolutely needs to have two pieces of information about each virtual host: the <a href="mod/core.html#servername"><code>ServerName</code></a> ! and at least one IP address that the server ! responds to. This example does not include the IP address, so Apache must use DNS to find the address of <code>www.abc.dom</code>. If for some reason DNS is not available at the time your server is parsing its config file, then this virtual host <b>will not be configured</b>. It *************** *** 49,55 **** for this virtualhost. If that reverse lookup fails then it will partially disable the virtualhost (prior to Apache version 1.2 the server would not even boot). If the virtual host is name-based then it will effectively ! be totally disabled, but if it is ip-based then it will mostly work. However if Apache should ever have to generate a full URL for the server which includes the server name then it will fail to generate a valid URL. --- 49,55 ---- for this virtualhost. If that reverse lookup fails then it will partially disable the virtualhost (prior to Apache version 1.2 the server would not even boot). If the virtual host is name-based then it will effectively ! be totally disabled, but if it is IP-based then it will mostly work. However if Apache should ever have to generate a full URL for the server which includes the server name then it will fail to generate a valid URL. *************** *** 136,153 **** <h3>The _default_ Address</h3> <p>Any address that happens to go to your webserver which doesn't match ! the ip address of any of the webservers will be served from the "main" or "default" server configurations. The "main" server configuration consists of all those definitions appearing outside of any VirtualHost section. You may want instead to define a <code><VirtualHost _default></code> which returns 403 or 404 for all hits. ! <a name="tips"><h3>Tips to Avoid these problems</h3></a> <ul> ! <li> use ip addresses in <code><VirtualHost></code> ! <li> use ip addresses in <code>Listen</code> ! <li> use ip addresses in <code>BindAddress</code> <li> ensure all virtual hosts have an explicit <code>ServerName</code> <li> create a <code><VirtualHost _default_></code> server that has no pages to serve --- 136,153 ---- <h3>The _default_ Address</h3> <p>Any address that happens to go to your webserver which doesn't match ! the IP address of any of the webservers will be served from the "main" or "default" server configurations. The "main" server configuration consists of all those definitions appearing outside of any VirtualHost section. You may want instead to define a <code><VirtualHost _default></code> which returns 403 or 404 for all hits. ! <h3><a name="tips">Tips to Avoid these problems</a></h3> <ul> ! <li> use IP addresses in <code><VirtualHost></code> ! <li> use IP addresses in <code>Listen</code> ! <li> use IP addresses in <code>BindAddress</code> <li> ensure all virtual hosts have an explicit <code>ServerName</code> <li> create a <code><VirtualHost _default_></code> server that has no pages to serve *************** *** 158,164 **** <p>The situation regarding DNS is highly undesirable. For Apache 1.2 we've attempted to make the server at least continue booting in the event of failed DNS, but it might not be the best we ! can do. In any event requiring the use of explicit ip addresses in configuration files is highly undesirable in today's Internet where <a href="http://www.ietf.org/html.charters/pier-charter.html">renumbering </a> is a necessity. --- 158,164 ---- <p>The situation regarding DNS is highly undesirable. For Apache 1.2 we've attempted to make the server at least continue booting in the event of failed DNS, but it might not be the best we ! can do. In any event requiring the use of explicit IP addresses in configuration files is highly undesirable in today's Internet where <a href="http://www.ietf.org/html.charters/pier-charter.html">renumbering </a> is a necessity. *************** *** 179,185 **** <p>As HTTP/1.1 is deployed and browsers and proxies start issuing the <code>Host</code> header it will become possible to avoid the use of ! ip-based virtual hosts entirely. In this event a webserver has no requirement to do DNS lookups during configuration. But as of March 1997 these features have not been deployed widely enough to be put into use on critical webservers. --- 179,185 ---- <p>As HTTP/1.1 is deployed and browsers and proxies start issuing the <code>Host</code> header it will become possible to avoid the use of ! IP-based virtual hosts entirely. In this event a webserver has no requirement to do DNS lookups during configuration. But as of March 1997 these features have not been deployed widely enough to be put into use on critical webservers. 1.2 +10 -6 apache/htdocs/manual/env.html Index: env.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/env.html,v retrieving revision 1.1 retrieving revision 1.2 diff -C3 -r1.1 -r1.2 *** env.html 1997/02/22 17:22:32 1.1 --- env.html 1997/05/01 05:26:34 1.2 *************** *** 7,19 **** <BODY> <!--#include virtual="header.html" --> <h1>Special Purpose Environment Variables</h1> ! <P>Interoperability problems have led to the introduction of mechanisms to modify ! the way Apache behaves when talking to particular clients. To make these ! mechanisms as flexible as possible, they are invoked by defining environment ! variables, typically with <A HREF=mod/mod_browser.html#browsermatch>BrowserMatch</A>, though <A HREF=mod/mod_env.html#setenv>SetEnv</A> and ! <A HREF=mod/mod_env.html#passenv>PassEnv</A> could also be used, for example.</P> <H2>nokeepalive</H2> ! This disables <A HREF=mod/core.html#keepalive>KeepAlive</A> when set. Because of problems with Netscape 2.x and KeepAlive, we recommend the following directive be used: <BLOCKQUOTE><CODE> --- 7,23 ---- <BODY> <!--#include virtual="header.html" --> <h1>Special Purpose Environment Variables</h1> ! <P>Interoperability problems have led to the introduction of ! mechanisms to modify the way Apache behaves when talking to particular ! clients. To make these mechanisms as flexible as possible, they ! are invoked by defining environment variables, typically with ! <A HREF="mod/mod_browser.html#browsermatch">BrowserMatch</A>, though ! <A HREF="mod/mod_env.html#setenv">SetEnv</A> and ! <A HREF="mod/mod_env.html#passenv">PassEnv</A> could also be used, for ! example.</P> ! <H2>nokeepalive</H2> ! This disables <A HREF="mod/core.html#keepalive">KeepAlive</A> when set. Because of problems with Netscape 2.x and KeepAlive, we recommend the following directive be used: <BLOCKQUOTE><CODE> 1.7 +1 -1 apache/htdocs/manual/host.html Index: host.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/host.html,v retrieving revision 1.6 retrieving revision 1.7 diff -C3 -r1.6 -r1.7 *** host.html 1997/03/23 00:04:20 1.6 --- host.html 1997/05/01 05:26:34 1.7 *************** *** 26,32 **** to determine the hostname it is being addressed as, Apache's virtual host support has required a separate IP address for each server. Documentation on using this approach (which still works very ! well) is available <a href="virtual-host.html">here</a>. <p>While the approach described above works, with the available IP address space growing smaller, and the number of domains increasing, --- 26,32 ---- to determine the hostname it is being addressed as, Apache's virtual host support has required a separate IP address for each server. Documentation on using this approach (which still works very ! well) <a href="virtual-host.html">is available</a>. <p>While the approach described above works, with the available IP address space growing smaller, and the number of domains increasing, 1.7 +2 -2 apache/htdocs/manual/install.html Index: install.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/install.html,v retrieving revision 1.6 retrieving revision 1.7 diff -C3 -r1.6 -r1.7 *** install.html 1997/04/12 21:49:30 1.6 --- install.html 1997/05/01 05:26:34 1.7 *************** *** 9,15 **** <H1>Compiling and Installing Apache 1.2</H1> ! If you wish to download and install an earlier version of Apache please read <A HREF="install_1_1.html">Compiling and Installing Apache 1.1</A>.</P> UnixWare users will want to consult <A HREF="unixware.html">build notes</A> --- 9,15 ---- <H1>Compiling and Installing Apache 1.2</H1> ! <P>If you wish to download and install an earlier version of Apache please read <A HREF="install_1_1.html">Compiling and Installing Apache 1.1</A>.</P> UnixWare users will want to consult <A HREF="unixware.html">build notes</A> *************** *** 162,168 **** If all goes well this will return to the command prompt almost immediately. This indicates that the server is now up and running. If ! anything goes wrong during the initiallisation of the server you will see an error message on the screen. If the server started ok, you can now use your browser to --- 162,168 ---- If all goes well this will return to the command prompt almost immediately. This indicates that the server is now up and running. If ! anything goes wrong during the initialization of the server you will see an error message on the screen. If the server started ok, you can now use your browser to 1.4 +1 -1 apache/htdocs/manual/install_1_1.html Index: install_1_1.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/install_1_1.html,v retrieving revision 1.3 retrieving revision 1.4 diff -C3 -r1.3 -r1.4 *** install_1_1.html 1997/04/12 21:49:30 1.3 --- install_1_1.html 1997/05/01 05:26:35 1.4 *************** *** 8,14 **** <!--#include virtual="header.html" --> <h1>Compiling and Installing Apache</h1> <h2>Downloading Apache</h2> ! Information on the latest version of Apache can be found on the Apache web server at http://www.apache.org/. This will list the current release, any more recent beta-test release, together with details of mirror web and anonymous ftp sites.</p> --- 8,14 ---- <!--#include virtual="header.html" --> <h1>Compiling and Installing Apache</h1> <h2>Downloading Apache</h2> ! <p>Information on the latest version of Apache can be found on the Apache web server at http://www.apache.org/. This will list the current release, any more recent beta-test release, together with details of mirror web and anonymous ftp sites.</p> 1.4 +1 -1 apache/htdocs/manual/man-template.html Index: man-template.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/man-template.html,v retrieving revision 1.3 retrieving revision 1.4 diff -C3 -r1.3 -r1.4 *** man-template.html 1996/12/02 18:13:42 1.3 --- man-template.html 1997/05/01 05:26:35 1.4 *************** *** 33,39 **** <hr> ! <A name="adirective"><h2>ADirective</h2></A> <strong>Syntax:</strong> ADirective <em>some args</em><br> <strong>Default:</strong> <code>ADirective default value</code><br> <strong>Context:</strong> context-list<br> --- 33,39 ---- <hr> ! <h2><A name="adirective">ADirective</A></h2> <strong>Syntax:</strong> ADirective <em>some args</em><br> <strong>Default:</strong> <code>ADirective default value</code><br> <strong>Context:</strong> context-list<br> 1.6 +12 -4 apache/htdocs/manual/process-model.html Index: process-model.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/process-model.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C3 -r1.5 -r1.6 *** process-model.html 1996/12/02 18:13:44 1.5 --- process-model.html 1997/05/01 05:26:35 1.6 *************** *** 32,43 **** <PRE> MinSpareServers 5 MaxSpareServers 10 ! StartServers 10 </PRE> ! There is a compile-time limit of 150 absolute maximum number of ! simultaneous children that will be allowed, which can be overruled by ! "MaxClients", though we don't recommend changing that number unless <OL> <LI>You know you have the server resources to handle more --- 32,51 ---- <PRE> MinSpareServers 5 MaxSpareServers 10 ! StartServers 5 </PRE> ! There is an absolute maximum number of simultaneous children defined ! by a compile-time limit which defaults to 256 and a "MaxClients" ! directive which specifies the number of simultaneous children that ! will be allowed. MaxClients can be adjusted up to the compile-time ! limit (HARD_SERVER_LIMIT, defined in httpd.h). If you need more ! than 256 simultaneous children, you need to modify both HARD_SERVER_LIMIT ! and MaxClients.<P> ! ! In versions before 1.2, HARD_SERVER_LIMIT defaulted to 150.<P> ! ! We do not recommend changing either of these values unless: <OL> <LI>You know you have the server resources to handle more 1.7 +2 -5 apache/htdocs/manual/suexec.html Index: suexec.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/suexec.html,v retrieving revision 1.6 retrieving revision 1.7 diff -C3 -r1.6 -r1.7 *** suexec.html 1996/12/27 22:15:46 1.6 --- suexec.html 1997/05/01 05:26:35 1.7 *************** *** 24,30 **** the intent that it will only be installed by users determined to use it and is not part of the normal install/compile process.<p> - <ul> <h3>Configuring the suEXEC wrapper</h3> From the top-level of the Apache source tree, type: <b><code>cd support [ENTER]</code></b><p> Edit the <code>suexec.h</code> file and change the following macros to match your --- 24,29 ---- *************** *** 93,104 **** <b><code>chmod 4711 /usr/local/etc/httpd/sbin/suexec [ENTER]</code></b><p> <i>Change the path to the suEXEC wrapper to match your system installation.</i> - </ul> <hr> ! <a name="model"></a> ! <h3>Security Model of suEXEC</h3> The <b>suEXEC</b> wrapper supplied with Apache performs the following security checks before it will execute any program passed to it for execution. <ol> --- 92,101 ---- <b><code>chmod 4711 /usr/local/etc/httpd/sbin/suexec [ENTER]</code></b><p> <i>Change the path to the suEXEC wrapper to match your system installation.</i> <hr> ! <h3><a name="model">Security Model of suEXEC</a></h3> The <b>suEXEC</b> wrapper supplied with Apache performs the following security checks before it will execute any program passed to it for execution. <ol> *************** *** 113,119 **** <li>The command being executed <b>cannot be a <em>setuid</em> or <em>setgid</em> program</b>. <li>The target UID and GID <b>must be a valid user and group on this system</b>. <li>The target UID and GID to execute as, <b>must match the UID and GID of the directory</b>. ! <li>The target execution UID and GID <b>must not be the privledged ID 0</b>. </ol> If any of these issues are too restrictive, or do not seem restrictive enough, you are welcome to install your own version of the wrapper. We've given you the rope, now go --- 110,116 ---- <li>The command being executed <b>cannot be a <em>setuid</em> or <em>setgid</em> program</b>. <li>The target UID and GID <b>must be a valid user and group on this system</b>. <li>The target UID and GID to execute as, <b>must match the UID and GID of the directory</b>. ! <li>The target execution UID and GID <b>must not be the privileged ID 0</b>. </ol> If any of these issues are too restrictive, or do not seem restrictive enough, you are welcome to install your own version of the wrapper. We've given you the rope, now go 1.6 +13 -17 apache/htdocs/manual/vhosts-in-depth.html Index: vhosts-in-depth.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/vhosts-in-depth.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C3 -r1.5 -r1.6 *** vhosts-in-depth.html 1997/04/28 20:11:25 1.5 --- vhosts-in-depth.html 1997/05/01 05:26:36 1.6 *************** *** 146,152 **** Essentially, the main_server is treated as "defaults" or a "base" on which to build each vhost. But the positioning of these main_server ! definitions in the config file is largely irrelevent -- the entire config of the main_server has been parsed when this final merging occurs. So even if a main_server definition appears after a vhost definition it might affect the vhost definition. --- 146,152 ---- Essentially, the main_server is treated as "defaults" or a "base" on which to build each vhost. But the positioning of these main_server ! definitions in the config file is largely irrelevant -- the entire config of the main_server has been parsed when this final merging occurs. So even if a main_server definition appears after a vhost definition it might affect the vhost definition. *************** *** 187,195 **** is an IP-based vhost, the IP address matches and the port matches (taking into account wildcards). ! <p> If no vhosts are matched then the last occurance, if it appears, of a <SAMP>_default_</SAMP> address (which if you recall the ordering of the ! server list mentioned above means that this would be the first occurance of <SAMP>_default_</SAMP> in the config file) is matched. <p> In any event, if nothing above has matched, then the main_server is --- 187,195 ---- is an IP-based vhost, the IP address matches and the port matches (taking into account wildcards). ! <p> If no vhosts are matched then the last occurrence, if it appears, of a <SAMP>_default_</SAMP> address (which if you recall the ordering of the ! server list mentioned above means that this would be the first occurrence of <SAMP>_default_</SAMP> in the config file) is matched. <p> In any event, if nothing above has matched, then the main_server is *************** *** 264,271 **** <li>It is difficult to define an IP-based vhost for the machine's "main IP address". You essentially have to create a bogus <code>ServerName</code> for the main_server that does not match the ! machine's ips. ! </p> <li>During the scans in both <code>check_hostalias</code> and <code>check_serverpath</code> no check is made that the vhost being --- 264,270 ---- <li>It is difficult to define an IP-based vhost for the machine's "main IP address". You essentially have to create a bogus <code>ServerName</code> for the main_server that does not match the ! machine's IPs. <li>During the scans in both <code>check_hostalias</code> and <code>check_serverpath</code> no check is made that the vhost being *************** *** 292,300 **** <p>If you do have a <SAMP>_default_</SAMP> vhost, then you cannot place named-based vhosts after it in the config. This is because on any ! connection to the main server ips the connection vhost will always be ! the <SAMP>_default_</SAMP> vhost since none of the name-based are considered ! during <code>find_virtual_server</code>. </p> <li>You should never specify DNS names in <code>VirtualHost</code> --- 291,299 ---- <p>If you do have a <SAMP>_default_</SAMP> vhost, then you cannot place named-based vhosts after it in the config. This is because on any ! connection to the main server IPs the connection vhost will always be ! the <SAMP>_default_</SAMP> vhost since none of the name-based are ! considered during <code>find_virtual_server</code>. </p> <li>You should never specify DNS names in <code>VirtualHost</code> *************** *** 304,325 **** <a href="dns-caveats.html"> There's more information available on this and the next two topics</a>. - </p> <li><code>ServerName</code> should always be set for each vhost. Otherwise A DNS lookup is required for each vhost. - </p> <li>A DNS lookup is always required for the main_server's <code>ServerName</code> (or to generate that if it isn't specified in the config). - </p> <li>If a <code>ServerPath</code> directive exists which is a prefix of another <code>ServerPath</code> directive that appears later in the configuration file, then the former will always be matched and the latter will never be matched. (That is assuming that no ! Host header was available to disambiguate the two.)</p> <li>If a vhost that would otherwise be a name-vhost includes a <code>Port</code> statement that doesn't match the main_server --- 303,321 ---- <a href="dns-caveats.html"> There's more information available on this and the next two topics</a>. <li><code>ServerName</code> should always be set for each vhost. Otherwise A DNS lookup is required for each vhost. <li>A DNS lookup is always required for the main_server's <code>ServerName</code> (or to generate that if it isn't specified in the config). <li>If a <code>ServerPath</code> directive exists which is a prefix of another <code>ServerPath</code> directive that appears later in the configuration file, then the former will always be matched and the latter will never be matched. (That is assuming that no ! Host header was available to disambiguate the two.) <li>If a vhost that would otherwise be a name-vhost includes a <code>Port</code> statement that doesn't match the main_server *************** *** 329,349 **** to the port of the main_server) as the connection vhost. Then <code>check_hostalias</code> will refuse to check any other name-based vhost because of the port mismatch. The result is that the vhost ! will steal all hits going to the main_server address.</p> <li>If two IP-based vhosts have an address in common, the vhost appearing later in the file is always matched. Such a thing might happen ! inadvertantly. If the config has name-based vhosts and for some reason the main_server <code>ServerName</code> resolves to the wrong address ! then all the name-based vhosts will be parsed as IP-based vhosts. ! Then the last of them will steal all the hits.</p> <li>The last name-based vhost in the config is always matched for any hit which doesn't match one of the other name-based vhosts. </ul> ! <a name="whatworks"><h3>What Works</h3></a> <p>In addition to the tips on the <a href="dns-caveats.html#tips">DNS Issues</a> page, here are some further tips: --- 325,345 ---- to the port of the main_server) as the connection vhost. Then <code>check_hostalias</code> will refuse to check any other name-based vhost because of the port mismatch. The result is that the vhost ! will steal all hits going to the main_server address. <li>If two IP-based vhosts have an address in common, the vhost appearing later in the file is always matched. Such a thing might happen ! inadvertently. If the config has name-based vhosts and for some reason the main_server <code>ServerName</code> resolves to the wrong address ! then all the name-based vhosts will be parsed as ip-based vhosts. ! Then the last of them will steal all the hits.</P> <li>The last name-based vhost in the config is always matched for any hit which doesn't match one of the other name-based vhosts. </ul> ! <h3><a name="whatworks">What Works</a></h3> <p>In addition to the tips on the <a href="dns-caveats.html#tips">DNS Issues</a> page, here are some further tips: 1.10 +2 -1 apache/htdocs/manual/virtual-host.html Index: virtual-host.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/virtual-host.html,v retrieving revision 1.9 retrieving revision 1.10 diff -C3 -r1.9 -r1.10 *** virtual-host.html 1997/01/10 08:23:46 1.9 --- virtual-host.html 1997/05/01 05:26:36 1.10 *************** *** 147,153 **** may be used by a process; the limit is typically 64, and may usually be increased up to a large hard-limit. <p> ! Although Apache attempts to increase imit as required. this may not work if: <ol> <li>Your system does not provide the setrlimit() system call. <li>The setrlimit(RLIMIT_NOFILE) call does not function on your system --- 147,154 ---- may be used by a process; the limit is typically 64, and may usually be increased up to a large hard-limit. <p> ! Although Apache attempts to increase the limit as required, this ! may not work if: <ol> <li>Your system does not provide the setrlimit() system call. <li>The setrlimit(RLIMIT_NOFILE) call does not function on your system 1.6 +1 -1 apache/htdocs/manual/misc/API.html Index: API.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/misc/API.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C3 -r1.5 -r1.6 *** API.html 1997/04/09 14:38:34 1.5 --- API.html 1997/05/01 05:26:42 1.6 *************** *** 120,126 **** Let's begin with handlers. In order to handle the CGI scripts, the module declares a response handler for them. Because of <code>ScriptAlias</code>, it also has handlers for the name ! translation phase (to recognise <code>ScriptAlias</code>ed URIs), the type-checking phase (any <code>ScriptAlias</code>ed request is typed as a CGI script).<p> --- 120,126 ---- Let's begin with handlers. In order to handle the CGI scripts, the module declares a response handler for them. Because of <code>ScriptAlias</code>, it also has handlers for the name ! translation phase (to recognize <code>ScriptAlias</code>ed URIs), the type-checking phase (any <code>ScriptAlias</code>ed request is typed as a CGI script).<p> 1.5 +3 -3 apache/htdocs/manual/misc/client_block_api.html Index: client_block_api.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/misc/client_block_api.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C3 -r1.4 -r1.5 *** client_block_api.html 1997/02/27 02:46:37 1.4 --- client_block_api.html 1997/05/01 05:26:42 1.5 *************** *** 18,24 **** <p>However, HTTP/1.1 requires several things of POST and PUT request handlers that did not fit into this module, and all existing modules have to be rewritten. The API calls for handling this have been ! furthur abstracted, so that future HTTP protocol changes can be accomplished while remaining backwards-compatible.</p> <hr> --- 18,24 ---- <p>However, HTTP/1.1 requires several things of POST and PUT request handlers that did not fit into this module, and all existing modules have to be rewritten. The API calls for handling this have been ! further abstracted, so that future HTTP protocol changes can be accomplished while remaining backwards-compatible.</p> <hr> *************** *** 33,39 **** <ol> <li>Call <code>setup_client_block()</code> near the beginning of the request ! handler. This will set up all the neccessary properties, and will return either OK, or an error code. If the latter, the module should return that error code. The second parameter selects the policy to apply if the request message indicates a --- 33,39 ---- <ol> <li>Call <code>setup_client_block()</code> near the beginning of the request ! handler. This will set up all the necessary properties, and will return either OK, or an error code. If the latter, the module should return that error code. The second parameter selects the policy to apply if the request message indicates a *************** *** 63,69 **** <li>Finally, call <code>get_client_block</code> in a loop. Pass it a buffer and its ! size. It will put data into the buffer (not neccessarily the full buffer, in the case of chunked inputs), and return the length of the input block. When it is done reading, it will return 0 if EOF, or -1 if there was an error. --- 63,69 ---- <li>Finally, call <code>get_client_block</code> in a loop. Pass it a buffer and its ! size. It will put data into the buffer (not necessarily the full buffer, in the case of chunked inputs), and return the length of the input block. When it is done reading, it will return 0 if EOF, or -1 if there was an error. 1.6 +2 -2 apache/htdocs/manual/misc/compat_notes.html Index: compat_notes.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/misc/compat_notes.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C3 -r1.5 -r1.6 *** compat_notes.html 1997/04/15 13:31:10 1.5 --- compat_notes.html 1997/05/01 05:26:42 1.6 *************** *** 55,61 **** versions of NCSA httpd and Apache, you could use a filename relative to the .htaccess file. This could be a major security hole, as it made it trivially easy to make a ".htpass" file in the a ! directory easily accessable by the world. We recommend you store your passwords outside your document tree. <P> --- 55,61 ---- versions of NCSA httpd and Apache, you could use a filename relative to the .htaccess file. This could be a major security hole, as it made it trivially easy to make a ".htpass" file in the a ! directory easily accessible by the world. We recommend you store your passwords outside your document tree. <P> *************** *** 73,79 **** <P> ! <LI><Limit> sillyness - in the old Apache 0.6.5, a directive of <Limit GET> would also restrict POST methods - Apache 0.8.8's new core is correct in not presuming a limit on a GET is the same limit on a POST, so if you are relying on that behavior you need to change your access configurations --- 73,79 ---- <P> ! <LI><Limit> silliness - in the old Apache 0.6.5, a directive of <Limit GET> would also restrict POST methods - Apache 0.8.8's new core is correct in not presuming a limit on a GET is the same limit on a POST, so if you are relying on that behavior you need to change your access configurations 1.5 +3 -3 apache/htdocs/manual/misc/fin_wait_2.html Index: fin_wait_2.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/misc/fin_wait_2.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C3 -r1.4 -r1.5 *** fin_wait_2.html 1997/02/12 05:11:26 1.4 --- fin_wait_2.html 1997/05/01 05:26:43 1.5 *************** *** 11,17 **** <H1>Connections in the FIN_WAIT_2 state and Apache</H1> <OL> ! <H2><LI>What is the FIN_WAIT_2 state?</H2> Starting with the Apache 1.2 betas, people are reporting many more connections in the FIN_WAIT_2 state (as reported by <code>netstat</code>) than they saw using older versions. When the --- 11,17 ---- <H1>Connections in the FIN_WAIT_2 state and Apache</H1> <OL> ! <LI><H2>What is the FIN_WAIT_2 state?</H2> Starting with the Apache 1.2 betas, people are reporting many more connections in the FIN_WAIT_2 state (as reported by <code>netstat</code>) than they saw using older versions. When the *************** *** 34,40 **** the kernel. The connections in FIN_WAIT_2 do not tie up an httpd process.<P> ! <H2><LI>But why does it happen?</H2> There are several reasons for it happening, and not all of them are fully understood by the Apache team yet. What is known follows.<P> --- 34,40 ---- the kernel. The connections in FIN_WAIT_2 do not tie up an httpd process.<P> ! <LI><H2>But why does it happen?</H2> There are several reasons for it happening, and not all of them are fully understood by the Apache team yet. What is known follows.<P> *************** *** 263,269 **** If you have any information to add to this page, please contact me at <A HREF="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</A>.<P> ! <H2><A NAME="appendix"><LI>Appendix</H2> <P> Below is a message from Roy Fielding, one of the authors of HTTP/1.1. --- 263,269 ---- If you have any information to add to this page, please contact me at <A HREF="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</A>.<P> ! <H2><A NAME="appendix"><LI>Appendix</A></H2> <P> Below is a message from Roy Fielding, one of the authors of HTTP/1.1. 1.3 +2 -2 apache/htdocs/manual/misc/index.html Index: index.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/misc/index.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C3 -r1.2 -r1.3 *** index.html 1997/04/23 19:34:28 1.2 --- index.html 1997/05/01 05:26:43 1.3 *************** *** 68,81 **** HREF="perf-bsd44.html" >Performance Notes (BSD 4.4)</A> </DT> ! <DD>Some notes about ways to improve/optimise Apache performance on BSD 4.4 systems </DD> <DT><A HREF="perf-dec.html" >Performance Notes (Digital UNIX)</A> </DT> ! <DD>Extracts of USENET postings describing how to optimise Apache performance on Digital UNIX systems </DD> <DT><A --- 68,81 ---- HREF="perf-bsd44.html" >Performance Notes (BSD 4.4)</A> </DT> ! <DD>Some notes about ways to improve/optimize Apache performance on BSD 4.4 systems </DD> <DT><A HREF="perf-dec.html" >Performance Notes (Digital UNIX)</A> </DT> ! <DD>Extracts of USENET postings describing how to optimize Apache performance on Digital UNIX systems </DD> <DT><A 1.12 +6 -6 apache/htdocs/manual/misc/known_bugs.html Index: known_bugs.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/misc/known_bugs.html,v retrieving revision 1.11 retrieving revision 1.12 diff -C3 -r1.11 -r1.12 *** known_bugs.html 1997/04/24 11:06:18 1.11 --- known_bugs.html 1997/05/01 05:26:43 1.12 *************** *** 21,27 **** <H2>Version 1.2 (all)</H2> <OL> ! <LI>On some architectectures if your configuration uses multiple <a href="../mod/core#listen">Listen</a> directives then it is possible that the server will starve one of the sockets while serving hits on another. The work-around is to add --- 21,27 ---- <H2>Version 1.2 (all)</H2> <OL> ! <LI>On some architectures if your configuration uses multiple <a href="../mod/core#listen">Listen</a> directives then it is possible that the server will starve one of the sockets while serving hits on another. The work-around is to add *************** *** 76,82 **** "1.1.1.1.in-addr.arpa IN PTR 2.2.2." if the user has a config line "allow from 2.2.2" it will allow 1.1.1.1 in (unless -DMAXIMUM_DNS). -- which is bad because it breaks people who understand double reverse ! lookup and are trying to avoid it by using only ip addresses on allow/deny statements. - reported by Dean Gaudet, fixed in 1.2. </OL> --- 76,82 ---- "1.1.1.1.in-addr.arpa IN PTR 2.2.2." if the user has a config line "allow from 2.2.2" it will allow 1.1.1.1 in (unless -DMAXIMUM_DNS). -- which is bad because it breaks people who understand double reverse ! lookup and are trying to avoid it by using only IP addresses on allow/deny statements. - reported by Dean Gaudet, fixed in 1.2. </OL> *************** *** 151,157 **** <H2>Version 0.8.10 (beta)</H2> <OL> ! <LI>Server side includes which include CGI output can have unbareable delays on some platforms. We're looking into a fix. <P> --- 151,157 ---- <H2>Version 0.8.10 (beta)</H2> <OL> ! <LI>Server side includes which include CGI output can have unbearable delays on some platforms. We're looking into a fix. <P> *************** *** 179,185 **** <P> ! <LI>ErrorDocument is a little shakey, <CODE>" Some text %s</CODE> doesn't agree with the documentation. <P> --- 179,185 ---- <P> ! <LI>ErrorDocument is a little shaky, <CODE>" Some text %s</CODE> doesn't agree with the documentation. <P> *************** *** 209,215 **** created in <B>/tmp</B>. We now find this to be a bad idea, and have plans to move it into the <CODE>/logs</CODE> directory along with other files created by Apache. ! <P>If you have any <B>/tmp</B> cleaning scritps (e.g. from crontab), you should have them ignore the scoreboard file, which is named <B>/tmp/htstatus.XXXXXXX</B>. If the scoreboard file is damaged, Apache can become very confused (a SIGHUP repairs the damage). Furthermore, not --- 209,215 ---- created in <B>/tmp</B>. We now find this to be a bad idea, and have plans to move it into the <CODE>/logs</CODE> directory along with other files created by Apache. ! <P>If you have any <B>/tmp</B> cleaning scripts (e.g. from crontab), you should have them ignore the scoreboard file, which is named <B>/tmp/htstatus.XXXXXXX</B>. If the scoreboard file is damaged, Apache can become very confused (a SIGHUP repairs the damage). Furthermore, not *************** *** 251,257 **** <P> ! <LI>ErrorDocument is a little shakey, <CODE>" Some text %s</CODE> doesn't agree with the documentation. <P> --- 251,257 ---- <P> ! <LI>ErrorDocument is a little shaky, <CODE>" Some text %s</CODE> doesn't agree with the documentation. <P> 1.3 +3 -3 apache/htdocs/manual/misc/perf-dec.html Index: perf-dec.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/misc/perf-dec.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C3 -r1.2 -r1.3 *** perf-dec.html 1996/11/21 09:55:50 1.2 --- perf-dec.html 1997/05/01 05:26:44 1.3 *************** *** 1,3 **** --- 1,4 ---- + <HTML> <HEAD> <TITLE>Performance Tuning Tips for Digital Unix</TITLE> </HEAD> *************** *** 12,18 **** <HR> <H2>Update</H2> ! From: Jeffrey Mogul <[EMAIL PROTECTED]><BR> Date: Fri, 28 Jun 96 16:07:56 MDT<BR> <OL> --- 13,19 ---- <HR> <H2>Update</H2> ! From: Jeffrey Mogul <[EMAIL PROTECTED]><BR> Date: Fri, 28 Jun 96 16:07:56 MDT<BR> <OL> *************** *** 32,39 **** won't work on these releases, but such use is not officially supported by Digital. This patch kit will not be needed for V3.2G when it is released. ! </UL> ! <HR> --- 33,39 ---- won't work on these releases, but such use is not officially supported by Digital. This patch kit will not be needed for V3.2G when it is released. ! </OL> <HR> 1.6 +24 -23 apache/htdocs/manual/misc/perf.html Index: perf.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/misc/perf.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C3 -r1.5 -r1.6 *** perf.html 1997/04/14 17:05:22 1.5 --- perf.html 1997/05/01 05:26:44 1.6 *************** *** 28,36 **** <HR> ! <A NAME="AUX"> ! <H3>A/UX (Apple's UNIX)</H3> ! </A> If you are running Apache on A/UX, a page that gives some helpful performance hints (concerning the <I>listen()</I> queue and using --- 28,36 ---- <HR> ! <H3><A NAME="AUX"> ! A/UX (Apple's UNIX) ! </A></H3> If you are running Apache on A/UX, a page that gives some helpful performance hints (concerning the <I>listen()</I> queue and using *************** *** 39,47 **** <P><HR> ! <A NAME="BSD"> ! <H3>BSD-based (BSDI, FreeBSD, etc)</H3> ! </A> <A HREF="perf-bsd44.html#initial">Quick</A> and <A HREF="perf-bsd44.html#detail">detailed</A> --- 39,47 ---- <P><HR> ! <H3><A NAME="BSD"> ! BSD-based (BSDI, FreeBSD, etc) ! </A></H3> <A HREF="perf-bsd44.html#initial">Quick</A> and <A HREF="perf-bsd44.html#detail">detailed</A> *************** *** 49,75 **** <P><HR> ! <A NAME="DEC"> ! <H3>Digital UNIX</H3> ! </A> We have some <A HREF="perf-dec.html">newsgroup postings</A> on how to tune Digital UNIX 3.2 and 4.0. <P><HR> ! <A NAME="HP"> ! <H3>Hewlett-Packard</H3> ! </A> Some documentation on tuning HP machines can be found at <A HREF="http://www.software.hp.com/internet/perf/tuning.html">http://www.software.hp.com/internet/perf/tuning.html</A>. <P><HR> ! <A NAME="Linux"> ! <H3>Linux</H3> ! </A> The most common problem on Linux shows up on heavily-loaded systems where the whole server will appear to freeze for a couple of minutes --- 49,75 ---- <P><HR> ! <H3><A NAME="DEC"> ! Digital UNIX ! </A></H3> We have some <A HREF="perf-dec.html">newsgroup postings</A> on how to tune Digital UNIX 3.2 and 4.0. <P><HR> ! <H3><A NAME="HP"> ! Hewlett-Packard ! </A></H3> Some documentation on tuning HP machines can be found at <A HREF="http://www.software.hp.com/internet/perf/tuning.html">http://www.software.hp.com/internet/perf/tuning.html</A>. <P><HR> ! <H3><A NAME="Linux"> ! Linux ! </A></H3> The most common problem on Linux shows up on heavily-loaded systems where the whole server will appear to freeze for a couple of minutes *************** *** 82,89 **** <P><HR> ! <A NAME="SGI"> ! <H3>SGI</H3> <UL> <LI><A HREF="http://www.sgi.com/Products/WebFORCE/Resources/res_TuningGuide.html"> --- 82,90 ---- <P><HR> ! <H3><A NAME="SGI"> ! SGI ! </A></H3> <UL> <LI><A HREF="http://www.sgi.com/Products/WebFORCE/Resources/res_TuningGuide.html"> *************** *** 93,101 **** <P><HR> ! <A NAME="Solaris"> ! <H3>Solaris 2.4</H3> ! </A> The Solaris 2.4 TCP implementation has a few inherent limitations that only became apparent under heavy loads. This has been fixed to some --- 94,102 ---- <P><HR> ! <H3><A NAME="Solaris"> ! Solaris 2.4 ! </A></H3> The Solaris 2.4 TCP implementation has a few inherent limitations that only became apparent under heavy loads. This has been fixed to some *************** *** 114,122 **** <P><HR> ! <A NAME="SunOS"> ! <H3>SunOS 4.x</H3> ! </A> More information on tuning SOMAXCONN on SunOS can be found at <A HREF="http://www.islandnet.com/~mark/somaxconn.html"> --- 115,123 ---- <P><HR> ! <H3><A NAME="SunOS"> ! SunOS 4.x ! </A></H3> More information on tuning SOMAXCONN on SunOS can be found at <A HREF="http://www.islandnet.com/~mark/somaxconn.html"> 1.5 +2 -2 apache/htdocs/manual/misc/vif-info.html Index: vif-info.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/misc/vif-info.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C3 -r1.4 -r1.5 *** vif-info.html 1997/03/21 04:21:17 1.4 --- vif-info.html 1997/05/01 05:26:45 1.5 *************** *** 65,71 **** with your machine's ethernet address. Now, make sure your default route is to your segment's gateway, ! throught the real interface. FInally, make sure your routers and/or hosts on the same segment as yours know that 198.4.3.2 and 198.5.4.3 are on that cable. --- 65,71 ---- with your machine's ethernet address. Now, make sure your default route is to your segment's gateway, ! through the real interface. Finally, make sure your routers and/or hosts on the same segment as yours know that 198.4.3.2 and 198.5.4.3 are on that cable. *************** *** 125,131 **** Finally, here's the code. It has the tunneling pieces removed (you need more code to use that anyway), and it comes from a Mach 2.6 ! kernel; it should compile on any berkeley-derived unix with minor changes (most likely only in the includes). ---------------------netinet/if_vif.h-------------------------------------- --- 125,131 ---- Finally, here's the code. It has the tunneling pieces removed (you need more code to use that anyway), and it comes from a Mach 2.6 ! kernel; it should compile on any Berkeley-derived unix with minor changes (most likely only in the includes). ---------------------netinet/if_vif.h-------------------------------------- 1.54 +6 -6 apache/htdocs/manual/mod/core.html Index: core.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/core.html,v retrieving revision 1.53 retrieving revision 1.54 diff -C3 -r1.53 -r1.54 *** core.html 1997/04/27 07:52:14 1.53 --- core.html 1997/05/01 05:26:49 1.54 *************** *** 223,229 **** <menu> <li>* <li>An IP address ! <li>A fully-qualified internet domain name </menu> If the value is *, then the server will listen for connections on every IP address, otherwise it will only listen on the IP address --- 223,229 ---- <menu> <li>* <li>An IP address ! <li>A fully-qualified Internet domain name </menu> If the value is *, then the server will listen for connections on every IP address, otherwise it will only listen on the IP address *************** *** 549,555 **** since every request requires one of these lookups to be performed. When firewalls are involved each lookup might possibly fail and add 30 seconds of latency to each hit. So in general this is not very useful on public ! servers accessible from the internet. <p><hr> <A NAME="ifmodule"><H2><IfModule></H2></A> --- 549,555 ---- since every request requires one of these lookups to be performed. When firewalls are involved each lookup might possibly fail and add 30 seconds of latency to each hit. So in general this is not very useful on public ! servers accessible from the Internet. <p><hr> <A NAME="ifmodule"><H2><IfModule></H2></A> *************** *** 748,754 **** allowed per connection when <a href="#keepalive">KeepAlive</a> is on. If it is set to "<code>0</code>", unlimited requests will be allowed. We recommend that this setting be kept to a high value for ! maximum server peformance. <A name="maxrequestsperchild"><h2>MaxRequestsPerChild directive</h2></A> <!--%plaintext <?INDEX {\tt MaxRequestsPerChild} directive> --> --- 748,754 ---- allowed per connection when <a href="#keepalive">KeepAlive</a> is on. If it is set to "<code>0</code>", unlimited requests will be allowed. We recommend that this setting be kept to a high value for ! maximum server performance. <A name="maxrequestsperchild"><h2>MaxRequestsPerChild directive</h2></A> <!--%plaintext <?INDEX {\tt MaxRequestsPerChild} directive> --> *************** *** 924,930 **** for a list of some defined ports; the standard port for the http protocol is 80.<p> ! The Port directive has two behaviours, the first of which is necessary for NCSA backwards compatibility (and which is confusing in the context of Apache).<p> --- 924,930 ---- for a list of some defined ports; the standard port for the http protocol is 80.<p> ! The Port directive has two behaviors, the first of which is necessary for NCSA backwards compatibility (and which is confusing in the context of Apache).<p> *************** *** 1092,1098 **** <A name="satisfy"><h2>Satisfy</h2></A> <!--%plaintext <?INDEX {\tt Satisfy} directive> --> <strong>Syntax:</strong> Satisfy <em>'any' or 'all'</em><br> ! <strong>Default:</strong> Satisy all<br> <strong>Context:</strong> directory, .htaccess<br> <strong>Status:</strong> core<br> <strong>Compatibility:</strong> Satisfy is only available in Apache 1.2 and later<p> --- 1092,1098 ---- <A name="satisfy"><h2>Satisfy</h2></A> <!--%plaintext <?INDEX {\tt Satisfy} directive> --> <strong>Syntax:</strong> Satisfy <em>'any' or 'all'</em><br> ! <strong>Default:</strong> Satisfy all<br> <strong>Context:</strong> directory, .htaccess<br> <strong>Status:</strong> core<br> <strong>Compatibility:</strong> Satisfy is only available in Apache 1.2 and later<p> *************** *** 1388,1394 **** HREF="../misc/vif-info.html">VIF</A> (for SunOS(TM) 4.1.x)).<p> The special name <code>_default_</code> can be specified in which case ! this virtual host will match any ip address that is not explicitly listed in another virtual host. In the absence of any _default_ virtual host the "main" server config, consisting of all those definitions outside any VirtualHost section, is used when no match occurs.<p> --- 1388,1394 ---- HREF="../misc/vif-info.html">VIF</A> (for SunOS(TM) 4.1.x)).<p> The special name <code>_default_</code> can be specified in which case ! this virtual host will match any IP address that is not explicitly listed in another virtual host. In the absence of any _default_ virtual host the "main" server config, consisting of all those definitions outside any VirtualHost section, is used when no match occurs.<p> 1.7 +2 -2 apache/htdocs/manual/mod/mod_access.html Index: mod_access.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_access.html,v retrieving revision 1.6 retrieving revision 1.7 diff -C3 -r1.6 -r1.7 *** mod_access.html 1997/05/01 01:03:30 1.6 --- mod_access.html 1997/05/01 05:26:50 1.7 *************** *** 62,68 **** <strong>Compatibility:</strong> Apache 1.2 and above<p> The allow from env directive controls access to a directory by the ! existance (or non-existance) of an environment variable. Example:<blockquote><pre> BrowserMatch ^KnockKnock/2.0 let_me_in --- 62,68 ---- <strong>Compatibility:</strong> Apache 1.2 and above<p> The allow from env directive controls access to a directory by the ! existence (or non-existence) of an environment variable. Example:<blockquote><pre> BrowserMatch ^KnockKnock/2.0 let_me_in *************** *** 113,119 **** <strong>Compatibility:</strong> Apache 1.2 and above<p> The deny from env directive controls access to a directory by the ! existance (or non-existance) of an environment variable. Example:<blockquote><pre> BrowserMatch ^BadRobot/0.9 go_away --- 113,119 ---- <strong>Compatibility:</strong> Apache 1.2 and above<p> The deny from env directive controls access to a directory by the ! existence (or non-existence) of an environment variable. Example:<blockquote><pre> BrowserMatch ^BadRobot/0.9 go_away 1.7 +3 -3 apache/htdocs/manual/mod/mod_auth.html Index: mod_auth.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_auth.html,v retrieving revision 1.6 retrieving revision 1.7 diff -C3 -r1.6 -r1.7 *** mod_auth.html 1997/02/06 05:28:57 1.6 --- mod_auth.html 1997/05/01 05:26:51 1.7 *************** *** 83,89 **** <strong>Module:</strong> mod_auth<p> Setting the AuthAuthoritative directive explicitly to <b>'off'</b> ! allows for both authentification and authorization to be passed on to lower level modules (as defined in the <code>Configuration</code> and <code>modules.c</code> files) if there is <b>no userID</b> or <b>rule</b> matching the supplied userID. If there is a userID and/or --- 83,89 ---- <strong>Module:</strong> mod_auth<p> Setting the AuthAuthoritative directive explicitly to <b>'off'</b> ! allows for both authentication and authorization to be passed on to lower level modules (as defined in the <code>Configuration</code> and <code>modules.c</code> files) if there is <b>no userID</b> or <b>rule</b> matching the supplied userID. If there is a userID and/or *************** *** 99,105 **** <p> ! A common use for this is in conjection with one of the database modules; such as <a href="mod_auth_db.html"><code>mod_auth_db.c</code></a>, <a href="mod_auth_dbm.html"><code>mod_auth_dbm.c</code></a>, <a --- 99,105 ---- <p> ! A common use for this is in conjunction with one of the database modules; such as <a href="mod_auth_db.html"><code>mod_auth_db.c</code></a>, <a href="mod_auth_dbm.html"><code>mod_auth_dbm.c</code></a>, <a *************** *** 111,117 **** <p> ! <b>Default:</b> By default; control is not passed on; and an unkown userID or rule will result in an Authorization Required reply. Not setting it thus keeps the system secure; and forces an NSCA compliant behaviour. --- 111,117 ---- <p> ! <b>Default:</b> By default; control is not passed on; and an unknown userID or rule will result in an Authorization Required reply. Not setting it thus keeps the system secure; and forces an NSCA compliant behaviour. 1.7 +27 -9 apache/htdocs/manual/mod/mod_auth_db.html Index: mod_auth_db.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_auth_db.html,v retrieving revision 1.6 retrieving revision 1.7 diff -C3 -r1.6 -r1.7 *** mod_auth_db.html 1997/02/06 05:28:57 1.6 --- mod_auth_db.html 1997/05/01 05:26:51 1.7 *************** *** 113,128 **** <strong>Status:</strong> Base<br> <strong>Module:</strong> mod_auth<p> ! Setting the AuthDBAuthoritative directive explicitly to <b>'off'</b> allows for both authentification and authorization to be passed on to lower level modules (as defined in the <code>Configuration</code> and <code>modules.c</code> file if there is <b>no userID</b> or <b>rule</b> matching the supplied userID. If there is a userID and/or rule specified; the usual password and access checks will be applied and a failure will give an Authorization Required reply. <p> ! So if a userID appears in the database of more than one module; or if a valid require directive applies to more than one module; then the first module will verify the credentials; and no access is passed on; regardless of the AuthAuthoritative setting. ! <p> ! A common use for this is in conjection with one of the basic auth modules; such ! as <a href="mod_auth.html"><code>mod_auth.c</code></a>. Whereas this DB module supplies the bulk of the user credential checking; a few (administrator) related accesses fall through to a lower level with a well protected .htpasswd file. ! <p> ! <b>Default:</b> By default; control is not passed on; and an unkown userID or rule will result in an Authorization Required reply. Not setting it thus keeps the system secure; and forces an NSCA compliant behaviour. ! <p> ! Security: Do consider the implications of allowing a user to allow fall-through in his .htaccess file; and verify that this is really what you want; Generally it is easier to just secure a single .htpasswd file, than it is to secure a database which might have more access interfaces. <p> See also <A HREF="core.html#authname">AuthName</A>, --- 113,146 ---- <strong>Status:</strong> Base<br> <strong>Module:</strong> mod_auth<p> ! Setting the AuthDBAuthoritative directive explicitly to <b>'off'</b> ! allows for both authentication and authorization to be passed on ! to lower level modules (as defined in the <code>Configuration</code> ! and <code>modules.c</code> file if there is <b>no userID</b> or ! <b>rule</b> matching the supplied userID. If there is a userID ! and/or rule specified; the usual password and access checks will ! be applied and a failure will give an Authorization Required reply. <p> ! So if a userID appears in the database of more than one module; or ! if a valid require directive applies to more than one module; then ! the first module will verify the credentials; and no access is ! passed on; regardless of the AuthAuthoritative setting. <p> ! ! A common use for this is in conjunction with one of the basic auth ! modules; such as <a href="mod_auth.html"><code>mod_auth.c</code></a>. ! Whereas this DB module supplies the bulk of the user credential ! checking; a few (administrator) related accesses fall through to ! a lower level with a well protected .htpasswd file. <p> ! ! <b>Default:</b> By default; control is not passed on; and an unknown ! userID or rule will result in an Authorization Required reply. Not ! setting it thus keeps the system secure; and forces an NSCA compliant ! behaviour. <p> ! Security: Do consider the implications of allowing a user to allow ! fall-through in his .htaccess file; and verify that this is really ! what you want; Generally it is easier to just secure a single ! .htpasswd file, than it is to secure a database which might have ! more access interfaces. <p> See also <A HREF="core.html#authname">AuthName</A>, 1.8 +28 -9 apache/htdocs/manual/mod/mod_auth_dbm.html Index: mod_auth_dbm.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_auth_dbm.html,v retrieving revision 1.7 retrieving revision 1.8 diff -C3 -r1.7 -r1.8 *** mod_auth_dbm.html 1997/02/06 05:28:58 1.7 --- mod_auth_dbm.html 1997/05/01 05:26:51 1.8 *************** *** 114,129 **** <strong>Status:</strong> Base<br> <strong>Module:</strong> mod_auth<p> ! Setting the AuthDBMAuthoritative directive explicitly to <b>'off'</b> allows for both authentification and authorization to be passed on to lower level modules (as defined in the <code>Configuration</code> and <code>modules.c</code> file if there is <b>no userID</b> or <b>rule</b> matching the supplied userID. If there is a userID and/or rule specified; the usual password and access checks will be applied and a failure will give an Authorization Required reply. <p> ! So if a userID appears in the database of more than one module; or if a valid require directive applies to more than one module; then the first module will verify the credentials; and no access is passed on; regardless of the AuthAuthoritative setting. ! <p> ! A common use for this is in conjection with one of the basic auth modules; such ! as <a href="mod_auth.html"><code>mod_auth.c</code></a>. Whereas this DBM module supplies the bulk of the user credential checking; a few (administrator) related accesses fall through to a lower level with a well protected .htpasswd file. ! <p> ! <b>Default:</b> By default; control is not passed on; and an unkown userID or rule will result in an Authorization Required reply. Not setting it thus keeps the system secure; and forces an NSCA compliant behaviour. ! <p> ! Security: Do consider the implications of allowing a user to allow fall-through in his .htaccess file; and verify that this is really what you want; Generally it is easier to just secure a single .htpasswd file, than it is to secure a database which might have more access interfaces. <p> See also <A HREF="core.html#authname">AuthName</A>, --- 114,148 ---- <strong>Status:</strong> Base<br> <strong>Module:</strong> mod_auth<p> ! Setting the AuthDBMAuthoritative directive explicitly to <b>'off'</b> ! allows for both authentication and authorization to be passed on ! to lower level modules (as defined in the <code>Configuration</code> ! and <code>modules.c</code> file if there is <b>no userID</b> or ! <b>rule</b> matching the supplied userID. If there is a userID ! and/or rule specified; the usual password and access checks will ! be applied and a failure will give an Authorization Required reply. <p> ! So if a userID appears in the database of more than one module; or ! if a valid require directive applies to more than one module; then ! the first module will verify the credentials; and no access is ! passed on; regardless of the AuthAuthoritative setting. <p> ! ! A common use for this is in conjunction with one of the basic auth ! modules; such as <a href="mod_auth.html"><code>mod_auth.c</code></a>. ! Whereas this DBM module supplies the bulk of the user credential ! checking; a few (administrator) related accesses fall through to ! a lower level with a well protected .htpasswd file. <p> ! ! <b>Default:</b> By default; control is not passed on; and an unknown ! userID or rule will result in an Authorization Required reply. Not ! setting it thus keeps the system secure; and forces an NSCA compliant ! behaviour. <p> ! ! Security: Do consider the implications of allowing a user to allow ! fall-through in his .htaccess file; and verify that this is really ! what you want; Generally it is easier to just secure a single ! .htpasswd file, than it is to secure a database which might have ! more access interfaces. <p> See also <A HREF="core.html#authname">AuthName</A>, 1.5 +30 -30 apache/htdocs/manual/mod/mod_auth_msql.html Index: mod_auth_msql.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_auth_msql.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C3 -r1.4 -r1.5 *** mod_auth_msql.html 1997/02/15 22:27:58 1.4 --- mod_auth_msql.html 1997/05/01 05:26:52 1.5 *************** *** 11,17 **** domain mSQL database <code><a href="ftp://ftp.bond.edu.au/pub/Minerva/msql">ftp://ftp.bond.edu.au/pub/Minerva/msql</a></code>, a fast but limited SQL engine which can be contacted over an internal ! Unix domain protocol as well as over normal tcp/ip socket communication. It is only available in Apache 1.1 and later. <p> <a href="#FullDescription">Full description</a> / --- 11,17 ---- domain mSQL database <code><a href="ftp://ftp.bond.edu.au/pub/Minerva/msql">ftp://ftp.bond.edu.au/pub/Minerva/msql</a></code>, a fast but limited SQL engine which can be contacted over an internal ! Unix domain protocol as well as over normal TCP/IP socket communication. It is only available in Apache 1.1 and later. <p> <a href="#FullDescription">Full description</a> / *************** *** 27,33 **** <code><dt> Auth_MSQLhost < FQHN | IP Address | localhost > ! </code></dt><dd> Hostname of the machine running the mSQL demon. The effective uid of the server should be allowed access. If not given, or if it is the magic name <code>localhost</code>, it is passed to the mSQL library as a null --- 27,33 ---- <code><dt> Auth_MSQLhost < FQHN | IP Address | localhost > ! </dt></code><dd> Hostname of the machine running the mSQL demon. The effective uid of the server should be allowed access. If not given, or if it is the magic name <code>localhost</code>, it is passed to the mSQL library as a null *************** *** 37,43 **** <code><dt> Auth_MSQLdatabase < mSQL database name > ! </code></dt><dd> Name of the database in which the following table(s) are contained (Quick check: use the mSQL command <code>relshow [<hostname> dbase]</code> to verify the spelling of the database name). --- 37,43 ---- <code><dt> Auth_MSQLdatabase < mSQL database name > ! </dt></code><dd> Name of the database in which the following table(s) are contained (Quick check: use the mSQL command <code>relshow [<hostname> dbase]</code> to verify the spelling of the database name). *************** *** 45,51 **** <code><dt> Auth_MSQLpwd_table < mSQL table name > ! </code></dt><dd> Contains at least the fields with the username and the (encrypted) password. Each uid should only occur once in this table and for performance reasons should be a primary key. --- 45,51 ---- <code><dt> Auth_MSQLpwd_table < mSQL table name > ! </dt></code><dd> Contains at least the fields with the username and the (encrypted) password. Each uid should only occur once in this table and for performance reasons should be a primary key. *************** *** 58,64 **** <code><dt> Auth_MSQLgrp_table < mSQL table name in the above database > ! </code></dt><dd> Contains at least the fields with the username and the groupname. A user which is in multiple groups has therefore --- 58,64 ---- <code><dt> Auth_MSQLgrp_table < mSQL table name in the above database > ! </dt></code><dd> Contains at least the fields with the username and the groupname. A user which is in multiple groups has therefore *************** *** 73,79 **** <code><dt> Auth_MSQLuid_field < mSQL field name > ! </code></dt><dd> Name of the field containing the username in the <code> Auth_MSQLpwd_table</code> and optionally in the <code> Auth_MSQLgrp_table</code> tables. --- 73,79 ---- <code><dt> Auth_MSQLuid_field < mSQL field name > ! </dt></code><dd> Name of the field containing the username in the <code> Auth_MSQLpwd_table</code> and optionally in the <code> Auth_MSQLgrp_table</code> tables. *************** *** 81,94 **** <code><dt> Auth_MSQLpwd_field < mSQL field name > ! </code></dt><dd> Fieldname for the passwords in the <code> Auth_MSQLpwd_table</code> table. </dd> <code><dt> Auth_MSQLgrp_field < mSQL field name > ! </code></dt><dd> Fieldname for the groupname<br> Only the fields used need to be specified. When this module is compiled with the --- 81,94 ---- <code><dt> Auth_MSQLpwd_field < mSQL field name > ! </dt></code><dd> Fieldname for the passwords in the <code> Auth_MSQLpwd_table</code> table. </dd> <code><dt> Auth_MSQLgrp_field < mSQL field name > ! </dt></code><dd> Fieldname for the groupname<br> Only the fields used need to be specified. When this module is compiled with the *************** *** 100,106 **** <code><dt> Auth_MSQL_nopasswd < on | off > ! </code></dt><dd> Skip password comparison if passwd field is empty, i.e. allow any password. This is 'off' by default to ensure that an empty field --- 100,106 ---- <code><dt> Auth_MSQL_nopasswd < on | off > ! </dt></code><dd> Skip password comparison if passwd field is empty, i.e. allow any password. This is 'off' by default to ensure that an empty field *************** *** 110,116 **** <code><dt> <a name="Authoritative">Auth_MSQL_Authoritative < on | off ></a> ! </code></dt><dd> Default is 'on'. When set 'on', there is no fall-through to other authorization methods. So if a user is not in the mSQL dbase table (and perhaps --- 110,116 ---- <code><dt> <a name="Authoritative">Auth_MSQL_Authoritative < on | off ></a> ! </dt></code><dd> Default is 'on'. When set 'on', there is no fall-through to other authorization methods. So if a user is not in the mSQL dbase table (and perhaps *************** *** 125,131 **** <code><dt> Auth_MSQL_EncryptedPasswords < on | off > ! </code></dt><dd> Default is 'on'. When set on, the values in the pwd_field are assumed to be crypt-ed using *your* machines 'crypt()' function and the incoming password --- 125,131 ---- <code><dt> Auth_MSQL_EncryptedPasswords < on | off > ! </dt></code><dd> Default is 'on'. When set on, the values in the pwd_field are assumed to be crypt-ed using *your* machines 'crypt()' function and the incoming password *************** *** 141,147 **** </dl> ! <hr><a name="Example"><h2>Example</h2></a> An example mSQL table could be created with the following commands: <pre> --- 141,147 ---- </dl> ! <hr><h2><a name="Example">Example</a></h2> An example mSQL table could be created with the following commands: <pre> *************** *** 183,193 **** <dt><code> Auth_MSQLhost datab.machine.your.org </code></dt><dd> ! If this directive is ommited or set to <code>localhost</code>, it is assumed that Apache and the mSQL database run on the same (physical) machine and the faster /dev/msql communication channel will be used. Otherwise, ! it is the machine to contact by tcp/ip. Consult the mSQL documentation for more information. </dd> <p> --- 183,193 ---- <dt><code> Auth_MSQLhost datab.machine.your.org </code></dt><dd> ! If this directive is omitted or set to <code>localhost</code>, it is assumed that Apache and the mSQL database run on the same (physical) machine and the faster /dev/msql communication channel will be used. Otherwise, ! it is the machine to contact by TCP/IP. Consult the mSQL documentation for more information. </dd> <p> *************** *** 207,213 **** <code><dt> Auth_MSQLpwd_table user_records ! </code></dt><dd> This is the table which contain the uid/password combination is specified. </dd> --- 207,213 ---- <code><dt> Auth_MSQLpwd_table user_records ! </dt></code><dd> This is the table which contain the uid/password combination is specified. </dd> *************** *** 215,221 **** <code><dt> Auth_MSQLuid_field User_id <br> Auth_MSQLpwd_field Cpasswd ! </code></dt><dd> These two directive specify the field names in the <code>user_record</code> table. If this module is compiled with the <a href="#VITEK"><code>BACKWARD_VITEK</code></a> compatibility switch, the defaults <code>user</code> and <code>password</code> are --- 215,221 ---- <code><dt> Auth_MSQLuid_field User_id <br> Auth_MSQLpwd_field Cpasswd ! </dt></code><dd> These two directive specify the field names in the <code>user_record</code> table. If this module is compiled with the <a href="#VITEK"><code>BACKWARD_VITEK</code></a> compatibility switch, the defaults <code>user</code> and <code>password</code> are *************** *** 226,235 **** compiler directive for more information. </dd> ! <code></dt> Auth_MSQLgrp_table user_records <br> Auth_MSQLgrp_field Xgroup <br> ! </code></dt><dd> Optionally one can also specify a table which contains the user/group combinations. This can be the same table which also contains the username/password combinations. However --- 226,235 ---- compiler directive for more information. </dd> ! <code><dt> Auth_MSQLgrp_table user_records <br> Auth_MSQLgrp_field Xgroup <br> ! </dt></code><dd> Optionally one can also specify a table which contains the user/group combinations. This can be the same table which also contains the username/password combinations. However *************** *** 241,247 **** Auth_MSQL_nopasswd off <br> Auth_MSQL_Authoritative on <br> Auth_MSQL_EncryptedPasswords on <br> ! </code></dt><dd> These three optional fields (all set to the sensible defaults, so you really do not have to enter them) are described in more detail below. If you choose to set these to any other values then --- 241,247 ---- Auth_MSQL_nopasswd off <br> Auth_MSQL_Authoritative on <br> Auth_MSQL_EncryptedPasswords on <br> ! </dt></code><dd> These three optional fields (all set to the sensible defaults, so you really do not have to enter them) are described in more detail below. If you choose to set these to any other values then *************** *** 252,258 **** <code><dt> AuthName example mSQL realm <br> AuthType basic ! </code></dt> <dd> Normal Apache/NCSA tokens for access control <p> --- 252,258 ---- <code><dt> AuthName example mSQL realm <br> AuthType basic ! </dt></code> <dd> Normal Apache/NCSA tokens for access control <p> *************** *** 261,278 **** <code>allow from all </code><br> <p> <code>require valid-user </code><br> ! <ul><code>valid-user</code>; allow in any user which has a valid uid/passwd pair in the above pwd_table. </ul> or<br> <code>require user smith jones </code><br> ! <ul>Limit access to users who have a valid uid/passwd pair in the above pwd_table *and* whose uid is 'smith' or 'jones'. Do note that the uid's are separated by 'spaces' for historic (NCSA) reasons. So allowing uids with spaces might cause problems. </ul> <code>require group has_paid</code><br> ! <ul>Optionally also ensure that the uid has the value 'has_paid' in the group field in the group table. </ul> <code><limit> </code><br> --- 261,278 ---- <code>allow from all </code><br> <p> <code>require valid-user </code><br> ! <ul><li><code>valid-user</code>; allow in any user which has a valid uid/passwd pair in the above pwd_table. </ul> or<br> <code>require user smith jones </code><br> ! <ul><li>Limit access to users who have a valid uid/passwd pair in the above pwd_table *and* whose uid is 'smith' or 'jones'. Do note that the uid's are separated by 'spaces' for historic (NCSA) reasons. So allowing uids with spaces might cause problems. </ul> <code>require group has_paid</code><br> ! <ul><li>Optionally also ensure that the uid has the value 'has_paid' in the group field in the group table. </ul> <code><limit> </code><br> *************** *** 294,300 **** uid/passwd table. If you choose not to set it, the software takes the first pair returned and ignores any further pairs. The SQL statement used for this is<br> ! <p><code>"select password form pwd_table where user='uid'"</code><p> this might lead to unpredictable results. For this reason as well as for performance reasons you are strongly advised to make the uid field a primary key. Use at your own peril :-) --- 294,300 ---- uid/passwd table. If you choose not to set it, the software takes the first pair returned and ignores any further pairs. The SQL statement used for this is<br> ! <p><code>"select password form pwd_table where user='UID'"</code><p> this might lead to unpredictable results. For this reason as well as for performance reasons you are strongly advised to make the uid field a primary key. Use at your own peril :-) *************** *** 303,309 **** <dt><code> <a name="KEEP_MSQL_CONNECTION_OPEN">#define KEEP_MSQL_CONNECTION_OPEN</a> </code></dt><dd> ! Normally the (tcp/ip) connection with the database is opened and closed for each SQL query. When the Apache web-server and the database are on the same machine, and /dev/msql is used this does not cause a serious overhead. However when your platform does not --- 303,309 ---- <dt><code> <a name="KEEP_MSQL_CONNECTION_OPEN">#define KEEP_MSQL_CONNECTION_OPEN</a> </code></dt><dd> ! Normally the (TCP/IP) connection with the database is opened and closed for each SQL query. When the Apache web-server and the database are on the same machine, and /dev/msql is used this does not cause a serious overhead. However when your platform does not *************** *** 371,377 **** <p> We only do the following two queries: <ul><li>For the user/passwd combination ! <p><code>"select PWDFIELD from PWDTABEL where USERFIELD='UID'"</code><br> <li>Optionally for the user/group combination: <p><code>"select GROUPFIELD from GROUPTABLE where USERFIELD='UID' and GROUPFIELD='GID'"</code><br> </ul> --- 371,377 ---- <p> We only do the following two queries: <ul><li>For the user/passwd combination ! <p><code>"select PWDFIELD from PWDTABLE where USERFIELD='UID'"</code><br> <li>Optionally for the user/group combination: <p><code>"select GROUPFIELD from GROUPTABLE where USERFIELD='UID' and GROUPFIELD='GID'"</code><br> </ul> *************** *** 396,402 **** </dd> <dt>Version 0.2<br></dt> <dd>Added lines which got missing God knows when ! and which did the valid-user authentification no good at all ! </dd> <dt>Version 0.3<br></dt> <dd>Added '<code>Auth_MSQL_nopasswd</code>' option --- 396,402 ---- </dd> <dt>Version 0.2<br></dt> <dd>Added lines which got missing God knows when ! and which did the valid-user authentication no good at all ! </dd> <dt>Version 0.3<br></dt> <dd>Added '<code>Auth_MSQL_nopasswd</code>' option *************** *** 411,417 **** </dd> <dt>Version 0.7<br></dt> <dd><code>*host</code> to <code>host</code> fixed. Credits ! go to Rob Stout, <[EMAIL PROTECTED]> for spotting this one. </dd> <dt>Version 0.8<br></dt> --- 411,417 ---- </dd> <dt>Version 0.7<br></dt> <dd><code>*host</code> to <code>host</code> fixed. Credits ! go to Rob Stout, <[EMAIL PROTECTED]> for spotting this one. </dd> <dt>Version 0.8<br></dt> *************** *** 420,426 **** <dt>Version 0.9<br></dt> <dd><code>palloc</code> return code check(s), should be backward compatible with 1.11 version of Vivek Khera ! <khera@kciLink.com> msql module, fixed broken err msg in group control, changed command table messages to make more sense when displayed in that new module management tool. Added --- 420,426 ---- <dt>Version 0.9<br></dt> <dd><code>palloc</code> return code check(s), should be backward compatible with 1.11 version of Vivek Khera ! <khera@kciLink.com> msql module, fixed broken err msg in group control, changed command table messages to make more sense when displayed in that new module management tool. Added *************** *** 453,459 **** that you always quote the version you use when filing a bug report. <p> Furthermore a test/demonstration suite (which assumes that you have ! both mSQL and Apache compiled and installed) is avaible at the contrib section of <a href="ftp://ftp.apache.org/apache/dist/contrib"><code> ftp://ftp.apache.org/apache/dist/contrib</code></a> or <a href="http://me-www.jrc.it/~dirkx/apache-msql-demo.tar.gz"><code> --- 453,459 ---- that you always quote the version you use when filing a bug report. <p> Furthermore a test/demonstration suite (which assumes that you have ! both mSQL and Apache compiled and installed) is available at the contrib section of <a href="ftp://ftp.apache.org/apache/dist/contrib"><code> ftp://ftp.apache.org/apache/dist/contrib</code></a> or <a href="http://me-www.jrc.it/~dirkx/apache-msql-demo.tar.gz"><code> 1.8 +2 -2 apache/htdocs/manual/mod/mod_browser.html Index: mod_browser.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_browser.html,v retrieving revision 1.7 retrieving revision 1.8 diff -C3 -r1.7 -r1.8 *** mod_browser.html 1997/03/12 03:00:45 1.7 --- mod_browser.html 1997/05/01 05:26:52 1.8 *************** *** 28,34 **** <hr> ! <A name="browsermatch"><h2>BrowserMatch</h2></A> <strong>Syntax:</strong> BrowserMatch <em>regex attr1 attr2...</em><br> <strong>Context:</strong> server config<br> <strong>Status:</strong> base<br> --- 28,34 ---- <hr> ! <h2><A name="browsermatch">BrowserMatch</A></h2> <strong>Syntax:</strong> BrowserMatch <em>regex attr1 attr2...</em><br> <strong>Context:</strong> server config<br> <strong>Status:</strong> base<br> *************** *** 55,61 **** BrowserMatch MSIE !javascript </pre> ! <p><A name="browsermatchnocase"><h2>BrowserMatchNoCase</h2></A> <strong>Syntax:</strong> BrowserMatchNoCase <em>regex attr1 attr2...</em><br> <strong>Context:</strong> server config<br> <strong>Status:</strong> base<br> --- 55,61 ---- BrowserMatch MSIE !javascript </pre> ! <p><h2><A name="browsermatchnocase">BrowserMatchNoCase</A></h2> <strong>Syntax:</strong> BrowserMatchNoCase <em>regex attr1 attr2...</em><br> <strong>Context:</strong> server config<br> <strong>Status:</strong> base<br> 1.5 +2 -2 apache/htdocs/manual/mod/mod_cern_meta.html Index: mod_cern_meta.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_cern_meta.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C3 -r1.4 -r1.5 *** mod_cern_meta.html 1997/01/31 00:55:13 1.4 --- mod_cern_meta.html 1997/05/01 05:26:52 1.5 *************** *** 35,41 **** <hr> ! <A name="metadir"><h2>MetaDir</h2></A> <strong>Syntax:</strong> MetaDir <em>directory name</em><br> <strong>Default:</strong> <code>MetaDir .web</code><br> <strong>Context:</strong> server config<br> --- 35,41 ---- <hr> ! <h2><A name="metadir">MetaDir</A></h2> <strong>Syntax:</strong> MetaDir <em>directory name</em><br> <strong>Default:</strong> <code>MetaDir .web</code><br> <strong>Context:</strong> server config<br> *************** *** 50,56 **** accessed. Set to "<code>.</code>" to look in the same directory as the file. ! <A name="metasuffix"><h2>MetaSuffix</h2></A> <strong>Syntax:</strong> MetaSuffix <em>suffix</em><br> <strong>Default:</strong> <code>MetaSuffix .meta</code><br> <strong>Context:</strong> server config<br> --- 50,56 ---- accessed. Set to "<code>.</code>" to look in the same directory as the file. ! <h2><A name="metasuffix">MetaSuffix</A></h2> <strong>Syntax:</strong> MetaSuffix <em>suffix</em><br> <strong>Default:</strong> <code>MetaSuffix .meta</code><br> <strong>Context:</strong> server config<br> 1.8 +4 -4 apache/htdocs/manual/mod/mod_cgi.html Index: mod_cgi.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_cgi.html,v retrieving revision 1.7 retrieving revision 1.8 diff -C3 -r1.7 -r1.8 *** mod_cgi.html 1997/01/12 07:01:59 1.7 --- mod_cgi.html 1997/05/01 05:26:53 1.8 *************** *** 48,54 **** <hr> ! <a name="cgi_debug"><h2>CGI Debugging</h2></a> Debugging CGI scripts has traditionally been difficult, mainly because it has --- 48,54 ---- <hr> ! <h2><a name="cgi_debug">CGI Debugging</a></h2> Debugging CGI scripts has traditionally been difficult, mainly because it has *************** *** 106,112 **** <h2>Directives</h2> ! <a name="scriptlog"><h3>ScriptLog</h3></a> <b>Syntax:</b> ScriptLog <i>filename</i><br> <b>Default:</b> none<br> --- 106,112 ---- <h2>Directives</h2> ! <h3><a name="scriptlog">ScriptLog</a></h3> <b>Syntax:</b> ScriptLog <i>filename</i><br> <b>Default:</b> none<br> *************** *** 129,135 **** have security problems if used in a manner other than that for which it was designed.</p> ! <a name="scriptloglength"><h3>ScriptLogLength</h3></a> <b>Syntax:</b> ScriptLogLength <i>size</i><br> <b>Default:</b> 10385760<br> --- 129,135 ---- have security problems if used in a manner other than that for which it was designed.</p> ! <h3><a name="scriptloglength">ScriptLogLength</a></h3> <b>Syntax:</b> ScriptLogLength <i>size</i><br> <b>Default:</b> 10385760<br> *************** *** 144,150 **** be used to set an maximum file-size for the CGI logfile. If the file exceeds this size, no more information will be written to it. ! <a name="scriptlogbuffer"><h3>ScriptLogBuffer</h3></a> <b>Syntax:</b> ScriptLogBuffer <i>size</i><br> <b>Default:</b> 1024<br> --- 144,150 ---- be used to set an maximum file-size for the CGI logfile. If the file exceeds this size, no more information will be written to it. ! <h3><a name="scriptlogbuffer">ScriptLogBuffer</a></h3> <b>Syntax:</b> ScriptLogBuffer <i>size</i><br> <b>Default:</b> 1024<br> 1.3 +1 -1 apache/htdocs/manual/mod/mod_cookies.html Index: mod_cookies.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_cookies.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C3 -r1.2 -r1.3 *** mod_cookies.html 1996/11/21 10:30:43 1.2 --- mod_cookies.html 1997/05/01 05:26:53 1.3 *************** *** 19,25 **** <hr> ! <A name="cookielog"><h2>CookieLog</h2></A> <!--%plaintext <?INDEX {\tt CookieLog} directive> --> <strong>Syntax:</strong> CookieLog <em>filename</em><br> <Strong>Context:</strong> server config, virtual host<br> --- 19,25 ---- <hr> ! <h2><A name="cookielog">CookieLog</A></h2> <!--%plaintext <?INDEX {\tt CookieLog} directive> --> <strong>Syntax:</strong> CookieLog <em>filename</em><br> <Strong>Context:</strong> server config, virtual host<br> 1.5 +3 -3 apache/htdocs/manual/mod/mod_digest.html Index: mod_digest.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_digest.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C3 -r1.4 -r1.5 *** mod_digest.html 1997/02/27 02:46:38 1.4 --- mod_digest.html 1997/05/01 05:26:54 1.5 *************** *** 20,37 **** <hr> ! <A name="authdigestfile"><h2>AuthDigestFile</h2></A> <strong>Syntax:</strong> AuthDigestFile <em>filename</em><br> <Strong>Context:</strong> directory, .htaccess<br> <Strong>Override:</strong> AuthConfig<br> <strong>Status:</strong> Base<br> <strong>Module:</strong> mod_digest<p> ! The AuthDigestFile directive sets the name of a textual file containing the list of users and encoded passwords for digest authentication. <em>Filename</em> ! is the absolute path to the user file.<p> <p>The digest file uses a special format. Files in this format can be created using the "htdigest" utility found in the support/ subdirectory of the Apache distribution.</p> --- 20,37 ---- <hr> ! <h2><A name="authdigestfile">AuthDigestFile</A></h2> <strong>Syntax:</strong> AuthDigestFile <em>filename</em><br> <Strong>Context:</strong> directory, .htaccess<br> <Strong>Override:</strong> AuthConfig<br> <strong>Status:</strong> Base<br> <strong>Module:</strong> mod_digest<p> ! <p>The AuthDigestFile directive sets the name of a textual file containing the list of users and encoded passwords for digest authentication. <em>Filename</em> ! is the absolute path to the user file.</p> <p>The digest file uses a special format. Files in this format can be created using the "htdigest" utility found in the support/ subdirectory of the Apache distribution.</p> 1.3 +2 -2 apache/htdocs/manual/mod/mod_dld.html Index: mod_dld.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_dld.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C3 -r1.2 -r1.3 *** mod_dld.html 1996/11/21 10:30:45 1.2 --- mod_dld.html 1997/05/01 05:26:55 1.3 *************** *** 37,43 **** <hr> ! <A name="loadfile"><h2>LoadFile</h2></A> <!--%plaintext <?INDEX {\tt LoadFile} directive> --> <strong>Syntax:</strong> LoadFile <em>filename filename ...</em><br> <Strong>Context:</strong> server config<br> --- 37,43 ---- <hr> ! <h2><A name="loadfile">LoadFile</A></h2> <!--%plaintext <?INDEX {\tt LoadFile} directive> --> <strong>Syntax:</strong> LoadFile <em>filename filename ...</em><br> <Strong>Context:</strong> server config<br> *************** *** 49,55 **** may be required for some module to work. <em>Filename</em> is relative to <A HREF="core.html#serverroot">ServerRoot</A>.<p><hr> ! <A name="loadmodule"><h2>LoadModule</h2></A> <!--%plaintext <?INDEX {\tt LoadModule} directive> --> <strong>Syntax:</strong> LoadModule <em>module filename</em><br> <Strong>Context:</strong> server config<br> --- 49,55 ---- may be required for some module to work. <em>Filename</em> is relative to <A HREF="core.html#serverroot">ServerRoot</A>.<p><hr> ! <h2><A name="loadmodule">LoadModule</A></h2> <!--%plaintext <?INDEX {\tt LoadModule} directive> --> <strong>Syntax:</strong> LoadModule <em>module filename</em><br> <Strong>Context:</strong> server config<br> 1.5 +3 -3 apache/htdocs/manual/mod/mod_env.html Index: mod_env.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_env.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C3 -r1.4 -r1.5 *** mod_env.html 1997/04/16 12:21:09 1.4 --- mod_env.html 1997/05/01 05:26:55 1.5 *************** *** 30,36 **** <hr> ! <A name="passenv"><h2>PassEnv</h2></A> <strong>Syntax:</strong> PassEnv <em>variable variable ...</em><br> <strong>Context:</strong> server config, virtual host<br> <strong>Status:</strong> Base<br> --- 30,36 ---- <hr> ! <h2><A name="passenv">PassEnv</A></h2> <strong>Syntax:</strong> PassEnv <em>variable variable ...</em><br> <strong>Context:</strong> server config, virtual host<br> <strong>Status:</strong> Base<br> *************** *** 46,52 **** <HR> ! <A name="setenv"><h2>SetEnv</h2></A> <strong>Syntax:</strong> SetEnv <em>variable value</em><br> <strong>Context:</strong> server config, virtual host<br> <strong>Status:</strong> Base<br> --- 46,52 ---- <HR> ! <h2><A name="setenv">SetEnv</A></h2> <strong>Syntax:</strong> SetEnv <em>variable value</em><br> <strong>Context:</strong> server config, virtual host<br> <strong>Status:</strong> Base<br> *************** *** 62,68 **** <hr> ! <A name="unsetenv"><h2>UnsetEnv</h2></A> <strong>Syntax:</strong> UnsetEnv <em>variable variable ...</em><br> <strong>Context:</strong> server config, virtual host<br> <strong>Status:</strong> Base<br> --- 62,68 ---- <hr> ! <h2><A name="unsetenv">UnsetEnv</A></h2> <strong>Syntax:</strong> UnsetEnv <em>variable variable ...</em><br> <strong>Context:</strong> server config, virtual host<br> <strong>Status:</strong> Base<br> 1.2 +3 -3 apache/htdocs/manual/mod/mod_example.html Index: mod_example.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_example.html,v retrieving revision 1.1 retrieving revision 1.2 diff -C3 -r1.1 -r1.2 *** mod_example.html 1997/04/11 22:23:26 1.1 --- mod_example.html 1997/05/01 05:26:56 1.2 *************** *** 105,113 **** </UL> </P> <HR> ! <A NAME="example"> ! <H2>Example</H2> ! </A> <P> <STRONG>Syntax:</STRONG> Example <BR> --- 105,113 ---- </UL> </P> <HR> ! <H2><A NAME="example"> ! Example ! </A></H2> <P> <STRONG>Syntax:</STRONG> Example <BR> 1.3 +9 -9 apache/htdocs/manual/mod/mod_expires.html Index: mod_expires.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_expires.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C3 -r1.2 -r1.3 *** mod_expires.html 1997/03/03 02:54:51 1.2 --- mod_expires.html 1997/05/01 05:26:57 1.3 *************** *** 44,52 **** </LI> </MENU> <HR> ! <A NAME="expiresactive"> ! <H2>ExpiresActive directive</H2> ! </A> <!--%plaintext <?INDEX {\tt ExpiresActive} directive> --> <P> <STRONG>Syntax:</STRONG> ExpiresActive <EM>boolean</EM> --- 44,52 ---- </LI> </MENU> <HR> ! <H2><A NAME="expiresactive"> ! ExpiresActive directive ! </A></H2> <!--%plaintext <?INDEX {\tt ExpiresActive} directive> --> <P> <STRONG>Syntax:</STRONG> ExpiresActive <EM>boolean</EM> *************** *** 85,93 **** directive wasn't even specified. </P> <HR> ! <A NAME="expiresbytype"> ! <H2>ExpiresByType directive</H2> ! </A> <!--%plaintext <?INDEX {\tt ExpiresByType} directive> --> <P> <STRONG>Syntax:</STRONG> ExpiresByType <EM>mime-type <code>seconds</EM> --- 85,93 ---- directive wasn't even specified. </P> <HR> ! <H2><A NAME="expiresbytype"> ! ExpiresByType directive ! </A></H2> <!--%plaintext <?INDEX {\tt ExpiresByType} directive> --> <P> <STRONG>Syntax:</STRONG> ExpiresByType <EM>mime-type <code>seconds</EM> *************** *** 148,156 **** directive. </P> <HR> ! <A NAME="expiresdefault"> ! <H2>ExpiresDefault directive</H2> ! </A> <!--%plaintext <?INDEX {\tt ExpiresDefault} directive> --> <P> <STRONG>Syntax:</STRONG> ExpiresDefault <EM><code>seconds</EM> --- 148,156 ---- directive. </P> <HR> ! <H2><A NAME="expiresdefault"> ! ExpiresDefault directive ! </A></H2> <!--%plaintext <?INDEX {\tt ExpiresDefault} directive> --> <P> <STRONG>Syntax:</STRONG> ExpiresDefault <EM><code>seconds</EM> 1.3 +1 -1 apache/htdocs/manual/mod/mod_headers.html Index: mod_headers.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_headers.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C3 -r1.2 -r1.3 *** mod_headers.html 1996/12/02 18:14:06 1.2 --- mod_headers.html 1997/05/01 05:26:57 1.3 *************** *** 22,28 **** <hr> ! <A name="header"><h2>Header</h2></A> <strong>Syntax:</strong> Header [ set | append | add ] <em>header</em> <em>value</em><br> <strong>Syntax:</strong> Header unset <em>header</em><br> <strong>Context:</strong> server config, virtual host, access.conf, .htaccess<br> --- 22,28 ---- <hr> ! <h2><A name="header">Header</A></h2> <strong>Syntax:</strong> Header [ set | append | add ] <em>header</em> <em>value</em><br> <strong>Syntax:</strong> Header unset <em>header</em><br> <strong>Context:</strong> server config, virtual host, access.conf, .htaccess<br> 1.5 +3 -3 apache/htdocs/manual/mod/mod_imap.html Index: mod_imap.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_imap.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C3 -r1.4 -r1.5 *** mod_imap.html 1996/12/12 01:09:58 1.4 --- mod_imap.html 1997/05/01 05:26:58 1.5 *************** *** 55,61 **** <p> ! <A name="imapmenu"><h3>ImapMenu</h3></A> <strong>Syntax:</strong> ImapMenu <code>{none, formatted, semi-formatted, unformatted}</code><br> <Strong>Context:</strong> server config, virtual host, directory, .htaccess<br> --- 55,61 ---- <p> ! <h3><A name="imapmenu">ImapMenu</A></h3> <strong>Syntax:</strong> ImapMenu <code>{none, formatted, semi-formatted, unformatted}</code><br> <Strong>Context:</strong> server config, virtual host, directory, .htaccess<br> *************** *** 93,99 **** <p> ! <A name="imapdefault"><h3>ImapDefault</h3></A> <strong>Syntax:</strong> ImapDefault <code>{error, nocontent, map, referer, URL}</code><br> <Strong>Context:</strong> server config, virtual host, directory, .htaccess<br> --- 93,99 ---- <p> ! <h3><A name="imapdefault">ImapDefault</A></h3> <strong>Syntax:</strong> ImapDefault <code>{error, nocontent, map, referer, URL}</code><br> <Strong>Context:</strong> server config, virtual host, directory, .htaccess<br> *************** *** 112,118 **** <p> ! <A name="imapbase"><h3>ImapBase</h3></A> <strong>Syntax:</strong> ImapBase <code>{map, referer, URL}</code><br> <Strong>Context:</strong> server config, virtual host, directory, .htaccess<br> <Strong>Override:</strong> Indexes<br> --- 112,118 ---- <p> ! <h3><A name="imapbase">ImapBase</A></h3> <strong>Syntax:</strong> ImapBase <code>{map, referer, URL}</code><br> <Strong>Context:</strong> server config, virtual host, directory, .htaccess<br> <Strong>Override:</strong> Indexes<br> 1.10 +2 -2 apache/htdocs/manual/mod/mod_include.html Index: mod_include.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_include.html,v retrieving revision 1.9 retrieving revision 1.10 diff -C3 -r1.9 -r1.10 *** mod_include.html 1997/04/28 20:16:48 1.9 --- mod_include.html 1997/05/01 05:26:58 1.10 *************** *** 261,267 **** <DD>true if either <I>test_condition1</I> or <I>test_condition2</I> is true </DL> ! <P> "<I>=</I>" and "</I>!=</I>" bind more tightly than "<I>&&</I>" and "<I>||</I>". "<I>!</I>" binds most tightly. Thus, the following are equivalent: <PRE> --- 261,267 ---- <DD>true if either <I>test_condition1</I> or <I>test_condition2</I> is true </DL> ! <P> "<I>=</I>" and "<I>!=</I>" bind more tightly than "<I>&&</I>" and "<I>||</I>". "<I>!</I>" binds most tightly. Thus, the following are equivalent: <PRE> *************** *** 310,316 **** <hr> ! <A name="xbithack"><h2>XBitHack</h2></A> <!--%plaintext <?INDEX {\tt XBitHack} directive> --> <strong>Syntax:</strong> XBitHack <em>status</em><br> <strong>Default:</strong> <code>XBitHack off</code><br> --- 310,316 ---- <hr> ! <h2><A name="xbithack">XBitHack</A></h2> <!--%plaintext <?INDEX {\tt XBitHack} directive> --> <strong>Syntax:</strong> XBitHack <em>status</em><br> <strong>Default:</strong> <code>XBitHack off</code><br> 1.4 +1 -1 apache/htdocs/manual/mod/mod_log_agent.html Index: mod_log_agent.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_log_agent.html,v retrieving revision 1.3 retrieving revision 1.4 diff -C3 -r1.3 -r1.4 *** mod_log_agent.html 1997/01/10 08:24:01 1.3 --- mod_log_agent.html 1997/05/01 05:26:58 1.4 *************** *** 18,24 **** <hr> ! <A name="agentlog"><h2>AgentLog</h2></A> <!--%plaintext <?INDEX {\tt AgentLog} directive> --> <strong>Syntax:</strong> AgentLog <em>file-pipe</em><br> <strong>Default:</strong> <code>AgentLog logs/agent_log</code><br> --- 18,24 ---- <hr> ! <h2><A name="agentlog">AgentLog</A></h2> <!--%plaintext <?INDEX {\tt AgentLog} directive> --> <strong>Syntax:</strong> AgentLog <em>file-pipe</em><br> <strong>Default:</strong> <code>AgentLog logs/agent_log</code><br> 1.5 +1 -1 apache/htdocs/manual/mod/mod_log_common.html Index: mod_log_common.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_log_common.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C3 -r1.4 -r1.5 *** mod_log_common.html 1997/01/10 08:24:01 1.4 --- mod_log_common.html 1997/05/01 05:26:59 1.5 *************** *** 60,66 **** <hr> ! <A name="transferlog"><h2>TransferLog</h2></A> <!--%plaintext <?INDEX {\tt TransferLog} directive> --> <strong>Syntax:</strong> TransferLog <em>file-pipe</em><br> <strong>Default:</strong> <code>TransferLog logs/transfer_log</code><br> --- 60,66 ---- <hr> ! <h2><A name="transferlog">TransferLog</A></h2> <!--%plaintext <?INDEX {\tt TransferLog} directive> --> <strong>Syntax:</strong> TransferLog <em>file-pipe</em><br> <strong>Default:</strong> <code>TransferLog logs/transfer_log</code><br> 1.16 +7 -7 apache/htdocs/manual/mod/mod_log_config.html Index: mod_log_config.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_log_config.html,v retrieving revision 1.15 retrieving revision 1.16 diff -C3 -r1.15 -r1.16 *** mod_log_config.html 1997/03/28 15:16:15 1.15 --- mod_log_config.html 1997/05/01 05:26:59 1.16 *************** *** 90,96 **** any headers. </dl> ! <A NAME="formats"><h3>Custom Log Formats</h3></A> The format argument to the <code>LogFormat</code> and <code>CustomLog</code> is a string. This string is logged to the log --- 90,96 ---- any headers. </dl> ! <h3><A NAME="formats">Custom Log Formats</A></h3> The format argument to the <code>LogFormat</code> and <code>CustomLog</code> is a string. This string is logged to the log *************** *** 111,117 **** %...P: The process ID of the child that serviced the request. %...r: First line of request %...s: Status. For requests that got internally redirected, this ! is status of the *original* request --- %...>s for the last. %...t: Time, in common log format time format %...{format}t: The time, in the form given by format, which should be in strftime(3) format. --- 111,117 ---- %...P: The process ID of the child that serviced the request. %...r: First line of request %...s: Status. For requests that got internally redirected, this ! is status of the *original* request --- %...>s for the last. %...t: Time, in common log format time format %...{format}t: The time, in the form given by format, which should be in strftime(3) format. *************** *** 145,151 **** extending for format if desired (e.g. to add extra fields at the end). NCSA's extended/combined log format would be <code>"%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\""</code>. ! <h2>Using Multiple Log Files</h3> The <code>TransferLog</code> and <code>CustomLog</code> directives can be given more than once to log requests to multiple log files. Each --- 145,151 ---- extending for format if desired (e.g. to add extra fields at the end). NCSA's extended/combined log format would be <code>"%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\""</code>. ! <h2>Using Multiple Log Files</h2> The <code>TransferLog</code> and <code>CustomLog</code> directives can be given more than once to log requests to multiple log files. Each *************** *** 181,187 **** <hr> ! <A name="cookielog"><h2>CookieLog</h2></A> <!--%plaintext <?INDEX {\tt CookieLog} directive> --> <strong>Syntax:</strong> CookieLog <em>filename</em><br> <Strong>Context:</strong> server config, virtual host<br> --- 181,187 ---- <hr> ! <h2><A name="cookielog">CookieLog</A></h2> <!--%plaintext <?INDEX {\tt CookieLog} directive> --> <strong>Syntax:</strong> CookieLog <em>filename</em><br> <Strong>Context:</strong> server config, virtual host<br> *************** *** 195,201 **** href="mod_cookies.html">mod_cookies</a>, and is deprecated. <p> ! <A NAME="customlog"><H2>CustomLog</H2></A> <STRONG>Syntax:</STRONG> CustomLog <em>file-pipe</em> <em>format</em><BR> <STRONG>Context:</STRONG> server config, virtual host<BR> <STRONG>Status:</STRONG> Base<BR> --- 195,201 ---- href="mod_cookies.html">mod_cookies</a>, and is deprecated. <p> ! <H2><A NAME="customlog">CustomLog</A></H2> <STRONG>Syntax:</STRONG> CustomLog <em>file-pipe</em> <em>format</em><BR> <STRONG>Context:</STRONG> server config, virtual host<BR> <STRONG>Status:</STRONG> Base<BR> *************** *** 212,218 **** includes any spaces (which it will do in almost all cases) it should be enclosed in double quotes. ! <A name="logformat"><h2>LogFormat</h2></A> <!--%plaintext <?INDEX {\tt LogFormat} directive> --> <strong>Syntax:</strong> LogFormat <em>string</em><br> <strong>Default:</strong> <code>LogFormat "%h %l %u %t \"%r\" --- 212,218 ---- includes any spaces (which it will do in almost all cases) it should be enclosed in double quotes. ! <h2><A name="logformat">LogFormat</A></h2> <!--%plaintext <?INDEX {\tt LogFormat} directive> --> <strong>Syntax:</strong> LogFormat <em>string</em><br> <strong>Default:</strong> <code>LogFormat "%h %l %u %t \"%r\" *************** *** 225,231 **** Custom Log Formats</A> for details on the format arguments.<p><hr> ! <A name="transferlog"><h2>TransferLog</h2></A> <!--%plaintext <?INDEX {\tt TransferLog} directive> --> <strong>Syntax:</strong> TransferLog <em>file-pipe</em><br> <strong>Default:</strong> <code>TransferLog logs/transfer_log</code><br> --- 225,231 ---- Custom Log Formats</A> for details on the format arguments.<p><hr> ! <h2><A name="transferlog">TransferLog</A></h2> <!--%plaintext <?INDEX {\tt TransferLog} directive> --> <strong>Syntax:</strong> TransferLog <em>file-pipe</em><br> <strong>Default:</strong> <code>TransferLog logs/transfer_log</code><br> 1.4 +3 -3 apache/htdocs/manual/mod/mod_log_referer.html Index: mod_log_referer.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_log_referer.html,v retrieving revision 1.3 retrieving revision 1.4 diff -C3 -r1.3 -r1.4 *** mod_log_referer.html 1997/01/10 08:24:02 1.3 --- mod_log_referer.html 1997/05/01 05:27:00 1.4 *************** *** 15,21 **** <h2>Log file format</h2> The log file contains a separate line for each refer. Each line has the format ! <blockquote><em>uri</em> <code>-></code> <em>document</em></blockquote> where <em>uri</em> is the (%-escaped) URI for the document that references the one requested by the client, and <em>document</em> is the (%-decoded) local URL to the document being referred to. --- 15,21 ---- <h2>Log file format</h2> The log file contains a separate line for each refer. Each line has the format ! <blockquote><em>uri</em> <code>-></code> <em>document</em></blockquote> where <em>uri</em> is the (%-escaped) URI for the document that references the one requested by the client, and <em>document</em> is the (%-decoded) local URL to the document being referred to. *************** *** 29,35 **** <hr> ! <A name="refererignore"><h2>RefererIgnore</h2></A> <!--%plaintext <?INDEX {\tt RefererIgnore} directive> --> <strong>Syntax:</strong> RefererIgnore <em>string string ...</em><br> <Strong>Context:</strong> server config, virtual host<br> --- 29,35 ---- <hr> ! <h2><A name="refererignore">RefererIgnore</A></h2> <!--%plaintext <?INDEX {\tt RefererIgnore} directive> --> <strong>Syntax:</strong> RefererIgnore <em>string string ...</em><br> <Strong>Context:</strong> server config, virtual host<br> *************** *** 45,51 **** <p><hr> ! <A name="refererlog"><h2>RefererLog</h2></A> <!--%plaintext <?INDEX {\tt RefererLog} directive> --> <strong>Syntax:</strong> RefererLog <em>file-pipe</em><br> <strong>Default:</strong> <code>RefererLog logs/referer_log</code><br> --- 45,51 ---- <p><hr> ! <h2><A name="refererlog">RefererLog</A></h2> <!--%plaintext <?INDEX {\tt RefererLog} directive> --> <strong>Syntax:</strong> RefererLog <em>file-pipe</em><br> <strong>Default:</strong> <code>RefererLog logs/referer_log</code><br> 1.7 +4 -4 apache/htdocs/manual/mod/mod_mime.html Index: mod_mime.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_mime.html,v retrieving revision 1.6 retrieving revision 1.7 diff -C3 -r1.6 -r1.7 *** mod_mime.html 1997/01/31 00:55:13 1.6 --- mod_mime.html 1997/05/01 05:27:00 1.7 *************** *** 43,49 **** <hr> ! <A name="addencoding"><h2>AddEncoding</h2></A> <!--%plaintext <?INDEX {\tt AddEncoding} directive> --> <strong>Syntax:</strong> AddEncoding <em>mime-enc extension extension...</em><br> <Strong>Context:</strong> server config, virtual host, directory, .htaccess<br> --- 43,49 ---- <hr> ! <h2><A name="addencoding">AddEncoding</A></h2> <!--%plaintext <?INDEX {\tt AddEncoding} directive> --> <strong>Syntax:</strong> AddEncoding <em>mime-enc extension extension...</em><br> <Strong>Context:</strong> server config, virtual host, directory, .htaccess<br> *************** *** 85,91 **** program.</p> ! <A name="addlanguage"><h2>AddLanguage</h2></A> <!--%plaintext <?INDEX {\tt AddLanguage} directive> --> <strong>Syntax:</strong> AddLanguage <em>mime-lang extension extension...</em><br> <Strong>Context:</strong> server config, virtual host, directory, .htaccess<br> --- 85,91 ---- program.</p> ! <h2><A name="addlanguage">AddLanguage</A></h2> <!--%plaintext <?INDEX {\tt AddLanguage} directive> --> <strong>Syntax:</strong> AddLanguage <em>mime-lang extension extension...</em><br> <Strong>Context:</strong> server config, virtual host, directory, .htaccess<br> *************** *** 109,115 **** is more useful for content negotiation, where the server returns one from several documents based on the client's language preference.<p><hr> ! <A name="addtype"><h2>AddType</h2></A> <!--%plaintext <?INDEX {\tt AddType} directive> --> <strong>Syntax:</strong> AddType <em>mime-type extension extension...</em><br> <Strong>Context:</strong> server config, virtual host, directory, .htaccess<br> --- 109,115 ---- is more useful for content negotiation, where the server returns one from several documents based on the client's language preference.<p><hr> ! <h2><A name="addtype">AddType</A></h2> <!--%plaintext <?INDEX {\tt AddType} directive> --> <strong>Syntax:</strong> AddType <em>mime-type extension extension...</em><br> <Strong>Context:</strong> server config, virtual host, directory, .htaccess<br> *************** *** 181,187 **** </pre> ! <A name="typesconfig"><h2>TypesConfig</h2></A> <!--%plaintext <?INDEX {\tt TypesConfig} directive> --> <strong>Syntax:</strong> TypesConfig <em>filename</em><br> <strong>Default:</strong> <code>TypesConfig conf/mime.types</code><br> --- 181,187 ---- </pre> ! <h2><A name="typesconfig">TypesConfig</A></h2> <!--%plaintext <?INDEX {\tt TypesConfig} directive> --> <strong>Syntax:</strong> TypesConfig <em>filename</em><br> <strong>Default:</strong> <code>TypesConfig conf/mime.types</code><br> 1.5 +2 -2 apache/htdocs/manual/mod/mod_negotiation.html Index: mod_negotiation.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_negotiation.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C3 -r1.4 -r1.5 *** mod_negotiation.html 1996/12/02 18:14:10 1.4 --- mod_negotiation.html 1997/05/01 05:27:01 1.5 *************** *** 87,93 **** <hr> ! <A name="cachenegotiateddocs"><h2>CacheNegotiatedDocs</h2></A> <strong>Syntax:</strong> CacheNegotiatedDocs<br> <Strong>Context:</strong> server config<br> <strong>Status:</strong> Base<br> --- 87,93 ---- <hr> ! <h2><A name="cachenegotiateddocs">CacheNegotiatedDocs</A></h2> <strong>Syntax:</strong> CacheNegotiatedDocs<br> <Strong>Context:</strong> server config<br> <strong>Status:</strong> Base<br> *************** *** 109,115 **** ! <A name="languagepriority"><h2>LanguagePriority</h2></A> <!--%plaintext <?INDEX {\tt LanguagePriority} directive> --> <strong>Syntax:</strong> LanguagePriority <em>mime-lang mime-lang...</em><br> <Strong>Context:</strong> server config, virtual host, directory, .htaccess<br> --- 109,115 ---- ! <h2><A name="languagepriority">LanguagePriority</A></h2> <!--%plaintext <?INDEX {\tt LanguagePriority} directive> --> <strong>Syntax:</strong> LanguagePriority <em>mime-lang mime-lang...</em><br> <Strong>Context:</strong> server config, virtual host, directory, .htaccess<br> 1.20 +11 -11 apache/htdocs/manual/mod/mod_proxy.html Index: mod_proxy.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_proxy.html,v retrieving revision 1.19 retrieving revision 1.20 diff -C3 -r1.19 -r1.20 *** mod_proxy.html 1997/04/25 01:29:57 1.19 --- mod_proxy.html 1997/05/01 05:27:01 1.20 *************** *** 181,187 **** <A name="cachemaxexpire"><h2>CacheMaxExpire</h2></A> <strong>Syntax:</strong> CacheMaxExpire <em><time></em><br> ! <strong>Default:</strong> </code>CacheMaxExpire 24</code><br> <strong>Context:</strong> server config<br> <strong>Status:</strong> Base<br> <strong>Module:</strong> mod_proxy<br> --- 181,187 ---- <A name="cachemaxexpire"><h2>CacheMaxExpire</h2></A> <strong>Syntax:</strong> CacheMaxExpire <em><time></em><br> ! <strong>Default:</strong> <code>CacheMaxExpire 24</code><br> <strong>Context:</strong> server config<br> <strong>Status:</strong> Base<br> <strong>Module:</strong> mod_proxy<br> *************** *** 195,201 **** <A name="cachelastmodifiedfactor"><h2>CacheLastModifiedFactor</h2></A> <strong>Syntax:</strong> CacheLastModifiedFactor <em><factor></em><br> ! <strong>Default:</strong> </code>CacheLastModifiedFactor 0.1</code><br> <strong>Context:</strong> server config<br> <strong>Status:</strong> Base<br> <strong>Module:</strong> mod_proxy<br> --- 195,201 ---- <A name="cachelastmodifiedfactor"><h2>CacheLastModifiedFactor</h2></A> <strong>Syntax:</strong> CacheLastModifiedFactor <em><factor></em><br> ! <strong>Default:</strong> <code>CacheLastModifiedFactor 0.1</code><br> <strong>Context:</strong> server config<br> <strong>Status:</strong> Base<br> <strong>Module:</strong> mod_proxy<br> *************** *** 215,221 **** <A name="cachedirlevels"><h2>CacheDirLevels</h2></A> <strong>Syntax:</strong> CacheDirLevels <em><levels></em><br> ! <strong>Default:</strong> </code>CacheDirLevels 3</code><br> <strong>Context:</strong> server config<br> <strong>Status:</strong> Base<br> <strong>Module:</strong> mod_proxy<br> --- 215,221 ---- <A name="cachedirlevels"><h2>CacheDirLevels</h2></A> <strong>Syntax:</strong> CacheDirLevels <em><levels></em><br> ! <strong>Default:</strong> <code>CacheDirLevels 3</code><br> <strong>Context:</strong> server config<br> <strong>Status:</strong> Base<br> <strong>Module:</strong> mod_proxy<br> *************** *** 227,233 **** <A name="cachedirlength"><h2>CacheDirLength</h2></A> <strong>Syntax:</strong> CacheDirLength <em><length></em><br> ! <strong>Default:</strong> </code>CacheDirLength 1</code><br> <strong>Context:</strong> server config<br> <strong>Status:</strong> Base<br> <strong>Module:</strong> mod_proxy<br> --- 227,233 ---- <A name="cachedirlength"><h2>CacheDirLength</h2></A> <strong>Syntax:</strong> CacheDirLength <em><length></em><br> ! <strong>Default:</strong> <code>CacheDirLength 1</code><br> <strong>Context:</strong> server config<br> <strong>Status:</strong> Base<br> <strong>Module:</strong> mod_proxy<br> *************** *** 238,244 **** <A name="cachedefaultexpire"><h2>CacheDefaultExpire</h2></A> <strong>Syntax:</strong> CacheDefaultExpire <em><time></em><br> ! <strong>Default:</strong> </code>CacheDefaultExpire 1</code><br> <strong>Context:</strong> server config<br> <strong>Status:</strong> Base<br> <strong>Module:</strong> mod_proxy<br> --- 238,244 ---- <A name="cachedefaultexpire"><h2>CacheDefaultExpire</h2></A> <strong>Syntax:</strong> CacheDefaultExpire <em><time></em><br> ! <strong>Default:</strong> <code>CacheDefaultExpire 1</code><br> <strong>Context:</strong> server config<br> <strong>Status:</strong> Base<br> <strong>Module:</strong> mod_proxy<br> *************** *** 294,300 **** <li><a href="#socks">Can I use the Apache proxy module with my SOCKS proxy?</a> </ul> ! <a name="access"><h2>Controlling access to your proxy</h2> You can control who can access your proxy via the normal <Directory> control block using the following example:<p> --- 294,300 ---- <li><a href="#socks">Can I use the Apache proxy module with my SOCKS proxy?</a> </ul> ! <h2><a name="access">Controlling access to your proxy</a></h2> You can control who can access your proxy via the normal <Directory> control block using the following example:<p> *************** *** 309,322 **** </Directory> </pre><p> ! <a name="shortname"><h2>Using Netscape hostname shortcuts</h2> There is an optional patch to the proxy module to allow Netscape-like hostname shortcuts to be used. It's available <a href="http://www.apache.org/dist/contrib/patches/1.2/netscapehost.patch"> here</a>.<p> ! <a name="mimetypes"><h2>Why doesn't file type <i>xxx</i> download via FTP?</h2> You probably don't have that particular file type defined as <i>application/octet-stream</i> in your proxy's mime.types configuration --- 309,322 ---- </Directory> </pre><p> ! <h2><a name="shortname">Using Netscape hostname shortcuts</a></h2> There is an optional patch to the proxy module to allow Netscape-like hostname shortcuts to be used. It's available <a href="http://www.apache.org/dist/contrib/patches/1.2/netscapehost.patch"> here</a>.<p> ! <h2><a name="mimetypes">Why doesn't file type <i>xxx</i> download via FTP?</a></h2> You probably don't have that particular file type defined as <i>application/octet-stream</i> in your proxy's mime.types configuration *************** *** 326,340 **** application/octet-stream bin dms lha lzh exe class tgz taz </pre> ! <a name="startup"><h2>Why does Apache start more slowly when using the ! proxy module?</h2> If you're using the <code>ProxyBlock</code> or <code>NoCache</code> directives, hostnames' IP addresses are looked up and cached during startup for later match test. This may take a few seconds (or more) depending on the speed with which the hostname lookups occur.<p> ! <a name="socks"><h2>Can I use the Apache proxy module with my SOCKS proxy?</h2> Yes. Just build Apache with the rule <code>SOCKS4=yes</code> in your <i>Configuration</i> file, and follow the instructions there. SOCKS5 --- 326,340 ---- application/octet-stream bin dms lha lzh exe class tgz taz </pre> ! <h2><a name="startup">Why does Apache start more slowly when using the ! proxy module?</a></h2> If you're using the <code>ProxyBlock</code> or <code>NoCache</code> directives, hostnames' IP addresses are looked up and cached during startup for later match test. This may take a few seconds (or more) depending on the speed with which the hostname lookups occur.<p> ! <h2><a name="socks">Can I use the Apache proxy module with my SOCKS proxy?</a></h2> Yes. Just build Apache with the rule <code>SOCKS4=yes</code> in your <i>Configuration</i> file, and follow the instructions there. SOCKS5 1.8 +2 -2 apache/htdocs/manual/mod/mod_rewrite.html Index: mod_rewrite.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_rewrite.html,v retrieving revision 1.7 retrieving revision 1.8 diff -C3 -r1.7 -r1.8 *** mod_rewrite.html 1997/04/15 08:00:19 1.7 --- mod_rewrite.html 1997/05/01 05:27:02 1.8 *************** *** 586,597 **** <p> <li>There is the special format: <tt>%{LA-U:url}</tt> ! for look-aheads like <tt>-U</tt>. This performans a internal sub-request to look-ahead for the final value of <i>url</i>. <p> <li>There is the special format: <tt>%{LA-F:file}</tt> ! for look-aheads like <tt>-F</tt>. This performans a internal sub-request to look-ahead for the final value of <i>file</i>. </ol> --- 586,597 ---- <p> <li>There is the special format: <tt>%{LA-U:url}</tt> ! for look-aheads like <tt>-U</tt>. This performs a internal sub-request to look-ahead for the final value of <i>url</i>. <p> <li>There is the special format: <tt>%{LA-F:file}</tt> ! for look-aheads like <tt>-F</tt>. This performs a internal sub-request to look-ahead for the final value of <i>file</i>. </ol> 1.6 +1 -1 apache/htdocs/manual/mod/mod_userdir.html Index: mod_userdir.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_userdir.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C3 -r1.5 -r1.6 *** mod_userdir.html 1997/03/16 23:34:02 1.5 --- mod_userdir.html 1997/05/01 05:27:02 1.6 *************** *** 18,24 **** <hr> ! <A name="userdir"><h2>UserDir</h2></A> <!--%plaintext <?INDEX {\tt UserDir} directive> --> <strong>Syntax:</strong> UserDir <em>directory/filename</em><br> <strong>Default:</strong> <code>UserDir public_html</code><br> --- 18,24 ---- <hr> ! <h2><A name="userdir">UserDir</A></h2> <!--%plaintext <?INDEX {\tt UserDir} directive> --> <strong>Syntax:</strong> UserDir <em>directory/filename</em><br> <strong>Default:</strong> <code>UserDir public_html</code><br> 1.10 +2 -2 apache/htdocs/manual/mod/mod_usertrack.html Index: mod_usertrack.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_usertrack.html,v retrieving revision 1.9 retrieving revision 1.10 diff -C3 -r1.9 -r1.10 *** mod_usertrack.html 1997/04/18 22:01:14 1.9 --- mod_usertrack.html 1997/05/01 05:27:03 1.10 *************** *** 45,51 **** <hr> ! <a name="cookieexpires"><h2>CookieExpires</h2></A> <strong>Syntax:</strong> CookieExpires <em>expiry-period</em><br> <strong>Context:</strong> server config, virtual host<br> <strong>Status:</strong> optional<br> --- 45,51 ---- <hr> ! <h2><a name="cookieexpires">CookieExpires</A></h2> <strong>Syntax:</strong> CookieExpires <em>expiry-period</em><br> <strong>Context:</strong> server config, virtual host<br> <strong>Status:</strong> optional<br> *************** *** 60,66 **** <p>If this directive is not used, cookies last only for the current browser session.</p> ! <a name="cookietracking"><h2>CookieTracking</h2></A> <strong>Syntax:</strong> CookieTracking <em>on | off</em><br> <strong>Context:</strong> server config, virtual host, directory, .htaccess<br> --- 60,66 ---- <p>If this directive is not used, cookies last only for the current browser session.</p> ! <h2><a name="cookietracking">CookieTracking</A></h2> <strong>Syntax:</strong> CookieTracking <em>on | off</em><br> <strong>Context:</strong> server config, virtual host, directory, .htaccess<br>