diff options
189 files changed, 33291 insertions, 0 deletions
diff --git a/usr.sbin/httpd/htdocs/index.html.nn b/usr.sbin/httpd/htdocs/index.html.nn new file mode 100644 index 00000000000..67db9570b04 --- /dev/null +++ b/usr.sbin/httpd/htdocs/index.html.nn @@ -0,0 +1,48 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<HTML> + <HEAD> + <TITLE>Testside Apache-installasjon</TITLE> + </HEAD> +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <BODY + BGCOLOR="#FFFFFF" + TEXT="#000000" + LINK="#0000FF" + VLINK="#000080" + ALINK="#FF0000" + > + <H1 ALIGN="CENTER"> + Det gjekk bra! Apache er no installert på denne maskina! + </H1> + <P> + Dersom du kan sjå denne sida, har den eller dei som driv denne nettstaden + installert <A href="http://www.apache.org/foundation/preFAQ.html">Apache vevtenar</a>. + No må denne testsida erstattast med verkeleg innhald. + </P> + <HR> + <BLOCKQUOTE> + Dersom du hadde venta å sjå ei anna side enn denne, bør du + <strong>ta kontakt med den som er ansvarleg for denne nettstaden</strong> + (Prøv å sende e-post til <SAMP><webmaster@<EM>domene</EM>></SAMP>.) + Sjølv om denne nettstaden vert kjørt på Apache, har den ingen annan + tilknytning til Apache-gruppa, som har utvikla programvaren. + Ver snill og ikkje send e-post om denne nettstaden eller + innhaldet du finn her til utviklarane i Apache-gruppa. + I så tilfelle vil førespurnaden <strong><BIG>ignorerast</BIG></strong>. + </BLOCKQUOTE> + <HR> + <P> + <A + HREF="manual/index.html" + >Dokumentasjon</A> + for Apache er inkludert i denne pakka. + </P> + <P> + Logoen under kan brukast på kva som helst av maskiner som køyrer Apache. + Takk for at du nyttar Apache! + </P> + <DIV ALIGN="CENTER"> + <IMG SRC="apache_pb.gif" ALT=""> + </DIV> + </BODY> +</HTML> diff --git a/usr.sbin/httpd/htdocs/manual/bind.html.en b/usr.sbin/httpd/htdocs/manual/bind.html.en new file mode 100644 index 00000000000..ce80ec33be8 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/bind.html.en @@ -0,0 +1,140 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Setting which addresses and ports Apache uses</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="CENTER">Setting which addresses and ports Apache + uses</h1> + <hr /> + When Apache starts, it connects to some port and address on the + local machine and waits for incoming requests. By default, it + listens to all addresses on the machine, and to the port as + specified by the <tt>Port</tt> directive in the server + configuration. However, it can be told to listen to more the + one port, or to listen to only selected addresses, or a + combination. This is often combined with the Virtual Host + feature which determines how Apache responds to different IP + addresses, hostnames and ports. + + <p>There are two directives used to restrict or specify which + addresses and ports Apache listens to.</p> + + <ul> + <li><a href="#bindaddress">BindAddress</a> is used to + restrict the server to listening to a single address, and can + be used to permit multiple Apache servers on the same machine + listening to different IP addresses.</li> + + <li><a href="#listen">Listen</a> can be used to make a single + Apache server listen to more than one address and/or + port.</li> + </ul> + + <h3><a id="bindaddress" name="bindaddress">BindAddress</a></h3> + <a href="mod/directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> BindAddress <em>[ * | + IP-address | hostname ]</em><br /> + <a href="mod/directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>BindAddress + *</code><br /> + <a href="mod/directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="mod/directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core + + <p>Makes the server bind to just the specified address. If the + argument is * (an asterisk), the server binds to all interfaces + currently marked as up on the server. The port bound to is set + with the <tt>Port</tt> directive. Only one BindAddress should + be used.</p> + + <h3><a id="listen" name="listen">Listen</a></h3> + <a href="mod/directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> Listen <em>[ port | + IP-address:port ]</em><br /> + <a href="mod/directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> + <code>none</code><br /> + <a href="mod/directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="mod/directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core + + <p><tt>Listen</tt> can be used instead of <tt>BindAddress</tt> + and <tt>Port</tt>. It tells the server to accept incoming + requests (to listen) on the specified port or address-and-port + combination. If the first format is used, with a port number + only, the server listens on the given port on all interfaces + marked as up, instead of the port given by the <tt>Port</tt> + directive. If an IP address is given as well as a port, the + server will listen on the given port and interface.</p> + + <p>Multiple Listen directives may be used to specify a number + of addresses and ports to listen to. The server will respond to + requests from any of the listed addresses and ports.</p> + + <p>For example, to make the server accept connections on both + port 80 and port 8000, use:</p> +<pre> + Listen 80 + Listen 8000 +</pre> + To make the server accept connections on two specified + interfaces and port numbers, use +<pre> + Listen 192.170.2.1:80 + Listen 192.170.2.5:8000 +</pre> + + <h2>How this works with Virtual Hosts</h2> + <tt>BindAddress</tt> and <tt>Listen</tt> do not implement + Virtual Hosts. They tell the main Apache daemon process what + addresses and ports to bind and listen on. 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: + + <ul> + <li>Be told to <tt>Listen</tt> to the desired address and + port</li> + + <li>Have a <VirtualHost> section created for the + specified address and port to set the behavior of this + virtual host</li> + </ul> + Note that if the <VirtualHost> is set for an address and + port that the server is not listening to, it cannot be + accessed. + + <h2>See also</h2> + See also the documentation on <a href="vhosts/">Virtual + Hosts</a>, <a href="mod/core.html#bindaddress">BindAddress + directive</a>, <a href="mod/core.html#port">Port directive</a>, + <a href="dns-caveats.html">DNS Issues</a> and <a + href="mod/core.html#virtualhost"><VirtualHost> + section</a>. <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/bind.html.fr b/usr.sbin/httpd/htdocs/manual/bind.html.fr new file mode 100644 index 00000000000..97694aaf572 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/bind.html.fr @@ -0,0 +1,155 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--Traduction anglais 1.15 --> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + <meta http-equiv="Content-Type" + content="text/html; charset=iso-8859-1" /> + + <title>Définir quelles adresses et quels ports Apache + utilise</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="CENTER">Définir quelles adresses et quels + ports Apache utilise</h1> + <hr /> + Quand Apache démarre, il se connecte à des ports + et adresses donnés de la machine et attend les + requêtes. Par défaut il écoute sur toutes + les adresses de la machines, et sur le port défini par + la directive <tt>Port</tt> du fichier de configuration. + Cependant, on peut lui indiquer d'écouter sur d'autres + ports, ou d'écouter à partir de certaines + adresses seulement, ou une combinaison de ces + paramètres. Ceci est généralement + combiné avec la fonction d'hôte virtuel qui + définit comment répond aux différentes + adresses IP, nom d'hôte et de ports. + + <p>Il existe deux directives pour resteindre ou + spécifier sur quels adresses et ports Apache doit + écouter.</p> + + <ul> + <li><a href="#bindaddress">BindAddress</a> est employé + pour resteindre le serveur à n'écouter qu'une + seule adresse, et peut permettre plusieurs serveurs Apache + sur la même machine d'écouter différentes + adresses IP.</li> + + <li><a href="#listen">Listen</a> peut être + employé pour permettre à un serveur Apache + d'écouter plusieurs adresses et ports.</li> + </ul> + + <h3><a id="bindaddress" name="bindaddress">BindAddress</a></h3> + <a href="mod/directive-dict.html#Syntax" + rel="Help"><strong>Syntaxe :</strong></a> BindAddress <em>[ * | + IP-address | hostname ]</em><br /> + <a href="mod/directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>BindAddress *</code><br /> + <a href="mod/directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration du + serveur<br /> + <a href="mod/directive-dict.html#Status" + rel="Help"><strong>Statut :</strong></a> base + + <p>Cette directive force le serveur à n'écouter + que d'une adresse spécifique. Si l'argument est *, le + serveur écoute sur toutes les adresses. Le port + d'écoute est défini par la directive + <tt>Port</tt> directive. Il ne doit y avoir qu'au plus une + seule directive <tt>BindAddress</tt>.</p> + + <h3><a id="listen" name="listen">Listen</a></h3> + <a href="mod/directive-dict.html#Syntax" + rel="Help"><strong>Syntaxe :</strong></a> Listen <em>[ port | + IP-address:port ]</em><br /> + <a href="mod/directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>aucun</code><br /> + <a href="mod/directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration du + serveur<br /> + <a href="mod/directive-dict.html#Status" + rel="Help"><strong>Statut :</strong></a> base + + <p><tt>Listen</tt> peut être utilisé à la + place de <tt>BindAddress</tt> et <tt>Port</tt>. Il indique au + serveur d'accepter des requêtes venant d'un port + spécifique ou d'une combinaison d'adresse et de port. Si + le premier format est employé, avec uniquement un + numéro de port, le serveur écoute sur ce port, + à la place du port spécifié dans la + directive <tt>Port</tt>, sur l'ensemble des interfaces + réseau. Si une adresse est donnée en plus du + port, le serveur n'écoutera que sur le port de + l'interface spécifiée.</p> + + <p>Plusieurs directives <tt>Listen</tt> peuvent être + utilisées pour spécifier un ensemble d'adresses + et de ports d'écoute. Le serveur répondra aux + requêtes provenant de n'importe quels de ces adresses et + ports.</p> + + <p>Par exemple pour autoriser les requêtes sur les ports + 80 et 8000, il suffit d'écrire :</p> +<pre> + Listen 80 + Listen 8000 +</pre> + Pour que le serveur acccepte des requêtes provenant de + deux adresses et ports spécifiques, écrivez : +<pre> + Listen 192.170.2.1:80 + Listen 192.170.2.5:8000 +</pre> + + <h2>Comment cela fonctionne avec les hôtes virtuels</h2> + <tt>BindAddress</tt> et <tt>Listen</tt> n'implémentent + pas les hôtes virtuels. Ils indiquent au serveur + principal sur quelles adresses et ports écouter. Si + aucune directive <tt><VirtualHost></tt> n'est + employée, le serveur se comportera de la même + manière pour toutes les requêtes. + <tt><VirtualHost></tt> peut être employé + pour définir un comportement différent pour un ou + plusieurs de ces ports et adresses. Pour implémenter un + hôte virtuel, le serveur doit connaître quels ports + et quelles adresses employer. Une section + <tt><VirtualHost></tt> doit être + créée pour une adresse et un port + spécifique afin de définir le comportement de cet + hôte virtuel. Il faut noter que si un hôte virtuel + est configuré pour une adresse ou un port sur lequel le + serveur n'écoute pas, il est inaccessible. + + <h2>Voir également</h2> + Voir également la documentation sur les <a + href="vhosts/">hôtes virtuels</a>, la <a + href="mod/core.html#bindaddress">directive BindAddress</a>, la + <a href="mod/core.html#port">directive Port</a>, les <a + href="dns-caveats.html">questions sur le DNS</a> et la <a + href="mod/core.html#virtualhost">section + <VirtualHost></a>. <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/bind.html.html b/usr.sbin/httpd/htdocs/manual/bind.html.html new file mode 100644 index 00000000000..cb607b7ebc0 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/bind.html.html @@ -0,0 +1,144 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Setting which addresses and ports Apache uses</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="CENTER">Setting which addresses and ports Apache + uses</h1> + <hr /> + When Apache starts, it connects to some port and address on the + local machine and waits for incoming requests. By default, it + listens to all addresses on the machine, and to the port as + specified by the <tt>Port</tt> directive in the server + configuration. However, it can be told to listen to more the + one port, or to listen to only selected addresses, or a + combination. This is often combined with the Virtual Host + feature which determines how Apache responds to different IP + addresses, hostnames and ports. + + <p>There are two directives used to restrict or specify which + addresses and ports Apache listens to.</p> + + <ul> + <li><a href="#bindaddress">BindAddress</a> is used to + restrict the server to listening to a single address, and can + be used to permit multiple Apache servers on the same machine + listening to different IP addresses.</li> + + <li><a href="#listen">Listen</a> can be used to make a single + Apache server listen to more than one address and/or + port.</li> + </ul> + + <h3><a id="bindaddress" name="bindaddress">BindAddress</a></h3> + <a href="mod/directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> BindAddress <em>[ * | + IP-address | hostname ]</em><br /> + <a href="mod/directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>BindAddress + *</code><br /> + <a href="mod/directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="mod/directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core + + <p>Makes the server bind to just the specified address. If the + argument is * (an asterisk), the server binds to all interfaces + currently marked as up on the server. The port bound to is set + with the <tt>Port</tt> directive. Only one BindAddress should + be used.</p> + + <h3><a id="listen" name="listen">Listen</a></h3> + <a href="mod/directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> Listen <em>[ port | + IP-address:port ]</em><br /> + <a href="mod/directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> + <code>none</code><br /> + <a href="mod/directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="mod/directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core + + <p><tt>Listen</tt> can be used instead of <tt>BindAddress</tt> + and <tt>Port</tt>. It tells the server to accept incoming + requests (to listen) on the specified port or address-and-port + combination. If the first format is used, with a port number + only, the server listens on the given port on all interfaces + marked as up, instead of the port given by the <tt>Port</tt> + directive. If an IP address is given as well as a port, the + server will listen on the given port and interface.</p> + + <p>Multiple Listen directives may be used to specify a number + of addresses and ports to listen to. The server will respond to + requests from any of the listed addresses and ports.</p> + + <p>For example, to make the server accept connections on both + port 80 and port 8000, use:</p> +<pre> + Listen 80 + Listen 8000 +</pre> + To make the server accept connections on two specified + interfaces and port numbers, use +<pre> + Listen 192.170.2.1:80 + Listen 192.170.2.5:8000 +</pre> + + <h2>How this works with Virtual Hosts</h2> + <tt>BindAddress</tt> and <tt>Listen</tt> do not implement + Virtual Hosts. They tell the main Apache daemon process what + addresses and ports to bind and listen on. 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: + + <ul> + <li>Be told to <tt>Listen</tt> to the desired address and + port</li> + + <li>Have a <VirtualHost> section created for the + specified address and port to set the behavior of this + virtual host</li> + </ul> + Note that if the <VirtualHost> is set for an address and + port that the server is not listening to, it cannot be + accessed. + + <h2>See also</h2> + See also the documentation on <a href="vhosts/">Virtual + Hosts</a>, <a href="mod/core.html#bindaddress">BindAddress + directive</a>, <a href="mod/core.html#port">Port directive</a>, + <a href="dns-caveats.html">DNS Issues</a> and <a + href="mod/core.html#virtualhost"><VirtualHost> + section</a>. <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + </body> +</html> + + + diff --git a/usr.sbin/httpd/htdocs/manual/cgi_path.html.en b/usr.sbin/httpd/htdocs/manual/cgi_path.html.en new file mode 100644 index 00000000000..38adb0eef29 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/cgi_path.html.en @@ -0,0 +1,108 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>PATH_INFO Changes in the CGI Environment</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="CENTER">PATH_INFO Changes in the CGI + Environment</h1> + <hr /> + + <h2><a id="over" name="over">Overview</a></h2> + + <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 CGI/1.1 specification, and CGI + scripts can be easily modified (<a href="#compat">see + below</a>).</p> + + <h2><a id="prob" name="prob">The Problem</a></h2> + + <p>Apache 1.1.1 and earlier implemented the PATH_INFO and + SCRIPT_NAME environment variables by looking at the filename, + not the URL. While this resulted in the correct values in many + cases, when the filesystem path was overloaded to contain path + information, it could result in errant behavior. For example, + if the following appeared in a config file:</p> +<pre> + Alias /cgi-ralph /usr/local/httpd/cgi-bin/user.cgi/ralph +</pre> + + <p>In this case, <code>user.cgi</code> is the CGI script, the + "/ralph" is information to be passed onto the CGI. If this + configuration was in place, and a request came for + "<code>/cgi-ralph/script/</code>", the code would set PATH_INFO + to "<code>/ralph/script</code>", and SCRIPT_NAME to + "<code>/cgi-</code>". Obviously, the latter is incorrect. In + certain cases, this could even cause the server to crash.</p> + + <h2><a id="solution" name="solution">The Solution</a></h2> + + <p>Apache 1.2 and later now determine SCRIPT_NAME and PATH_INFO + by looking directly at the URL, and determining how much of the + URL is client-modifiable, and setting PATH_INFO to it. To use + the above 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> + + <p>However, the "<code>/ralph</code>" information from the + <code>Alias</code> directive is lost. This is unfortunate, but + we feel that using the filesystem to pass along this sort of + information is not a recommended method, and a script making + use of it "deserves" not to work. Apache 1.2b3 and later, + however, do provide <a href="#compat">a workaround.</a></p> + + <h2><a id="compat" 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 environment variable contains the + value that PATH_INFO would have had 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:</p> +<pre> + $path_info = $ENV{'FILEPATH_INFO'} || $ENV{'PATH_INFO'}; +</pre> + + <p>By doing this, a script can work with all servers supporting + the CGI/1.1 specification, including all versions of + Apache.</p> + <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/cgi_path.html.fr b/usr.sbin/httpd/htdocs/manual/cgi_path.html.fr new file mode 100644 index 00000000000..b6c9022a561 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/cgi_path.html.fr @@ -0,0 +1,137 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--Traduction anglais 1.7 --> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + <meta http-equiv="Content-Type" + content="text/html; charset=iso-8859-1" /> + + <title>Modification de PATH_INFO dans l'environnement + CGI</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="CENTER">Modification de PATH_INFO dans + l'environnement CGI</h1> + <hr /> + + <h2><a id="over" name="over">Vue d'ensemble</a></h2> + + <p>Telle qu'elle était implémentée dans + les versions antérieures à la version 1.1.1 + d'Apache (comprise), la méthode utilisée par + Apache pour créer la variable PATH_INFO dans + l'environnement CGI était loin d'être intuitive, + et pouvait conduire à certaines défaillances dans + certains cas. A partir de la version 1.2 d'Apache, cette + méthode a été modifiée. Bien que + ces modifications puissent conduire à certaines + incompatibilités avec certaines applications CGI, le + comportement d'Apache 1.2 reste toujours compatible avec la + spécification CGI/1.1, et les scripts CGI restent + facilement modifiables (<a href="#compat">voir + ci-dessous</a>).</p> + + <h2><a id="prob" name="prob">Le Problème</a></h2> + + <p>Les versions d'Apache jusqu'à 1.1.1 construisaient + les variables d'environnement CGI PATH_INFO et SCRIPT_NAME en + inspectant les noms de fichiers, et non les URL. Bien que cette + technique conduise à des valeurs correctes dans la + plupart des cas, il pouvait arriver que le chemin défini + par le système de fichiers soit surchargé par une + redéfinition, laquelle conduisait à une mauvaise + interprétation lors de la constitution des variables. + Par exemple, si la ligne suivante apparaissait dans un fichier + de configuration :</p> +<pre> + Alias /cgi-ralph /usr/local/httpd/cgi-bin/user.cgi/ralph +</pre> + + <p>Dans ce cas, <code>user.cgi</code> désigne le script + CGI, la chaîne "/ralph" est une information à + passer au CGI. Si cette configuration était en place, et + qu'une requête vers "<code>/cgi-ralph/script/</code>" + était reçue, le code du serveur aurait + constitué une variable PATH_INFO de valeur + "<code>/ralph/script</code>", et SCRIPT_NAME de valeur + "<code>/cgi-</code>". Il est évident de constater que la + deuxième variable est fausse. Dans certains cas, cela + aurait même pu conduire à un arrêt du + serveur.</p> + + <h2><a id="solution" name="solution">La Solution</a></h2> + + <p>Les versions postérieures à 1.2 d'Apache + définissent maintenant les variables SCRIPT_NAME et + PATH_INFO en inspectant directement l'URL, et en + déterminant quelle portion de l'URL est modifiable par + le client. PATH_INFO est initialisé à cette + partie modifiable. Pour réexploiter l'exemple ci-dessus, + PATH_INFO prendrait maintenant la valeur + "<code>/script</code>", et SCRIPT_NAME la valeur correcte + "<code>/cgi-ralph</code>". Il n'y a plus de problème de + comportement du serveur dans ce cas. Cela permet en outre de + garantir l'accessibilité de l'URL + <code>http://$SERVER_NAME:$SERVER_PORT$SCRIPT_NAME$PATH_INFO</code>" + laquelle pointe sur le script courant. Ce n'était pas + nécesairement vrai dans les versions + précédentes d'Apache.</p> + + <p>Toutefois, l'information "<code>/ralph</code>" de la + directive <code>Alias</code> est perdue. Nous pensions que + l'utilisation du système de fichiers pour faire passer + ce genre d'information n'était pas une méthode + recommandée, et un script utilisant ce principe + était de toutes façons à éviter. + Nous avons ajouté malgré tout à partir de + la version 1.2b3 d'Apache une façon de <a + href="#compat">contourner</a> cette restriction.</p> + + <h2><a id="compat" name="compat">Compatibilité avec des + serveurs plus anciens</a></h2> + + <p>Il se peut que certains scripts écrits pour des + versions antérieures d'Apache ou pour d'autres serveurs + aient besoin d'exploiter les informations données dans + l'ancien modèle de variable PATH_INFO. A cet effet, la + version 1.2 d'Apache (1.2b3 et postérieures) proposent + une variable supplémentaire, appelée + FILEPATH_INFO. Cette nouvelle variable d'environnement contient + la valeur qui était précédemment inscrite + dans PATH_INFO par la version 1.1.1 d'Apache.</p> + + <p>Un script désirant être compatible avec toutes + les versions d'Apache peut simplement tester l'existence de la + variable FILEPATH_INFO, et utiliser cette variable si besoin + est. Autrement, il récupérera ses informations + dans la variable PATH_INFO. Par exemple, en Perl, on pourra + écrire :</p> +<pre> + $path_info = $ENV{'FILEPATH_INFO'} || $ENV{'PATH_INFO'}; +</pre> + + <p>Par cette écriture, un script fonctionnera avec tous + les serveurs conformes à la spécification + CGI/1.1, incluant par là même toutes les versions + d'Apache.</p> + <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/cgi_path.html.html b/usr.sbin/httpd/htdocs/manual/cgi_path.html.html new file mode 100644 index 00000000000..434ab2106b4 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/cgi_path.html.html @@ -0,0 +1,112 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>PATH_INFO Changes in the CGI Environment</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="CENTER">PATH_INFO Changes in the CGI + Environment</h1> + <hr /> + + <h2><a id="over" name="over">Overview</a></h2> + + <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 CGI/1.1 specification, and CGI + scripts can be easily modified (<a href="#compat">see + below</a>).</p> + + <h2><a id="prob" name="prob">The Problem</a></h2> + + <p>Apache 1.1.1 and earlier implemented the PATH_INFO and + SCRIPT_NAME environment variables by looking at the filename, + not the URL. While this resulted in the correct values in many + cases, when the filesystem path was overloaded to contain path + information, it could result in errant behavior. For example, + if the following appeared in a config file:</p> +<pre> + Alias /cgi-ralph /usr/local/httpd/cgi-bin/user.cgi/ralph +</pre> + + <p>In this case, <code>user.cgi</code> is the CGI script, the + "/ralph" is information to be passed onto the CGI. If this + configuration was in place, and a request came for + "<code>/cgi-ralph/script/</code>", the code would set PATH_INFO + to "<code>/ralph/script</code>", and SCRIPT_NAME to + "<code>/cgi-</code>". Obviously, the latter is incorrect. In + certain cases, this could even cause the server to crash.</p> + + <h2><a id="solution" name="solution">The Solution</a></h2> + + <p>Apache 1.2 and later now determine SCRIPT_NAME and PATH_INFO + by looking directly at the URL, and determining how much of the + URL is client-modifiable, and setting PATH_INFO to it. To use + the above 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> + + <p>However, the "<code>/ralph</code>" information from the + <code>Alias</code> directive is lost. This is unfortunate, but + we feel that using the filesystem to pass along this sort of + information is not a recommended method, and a script making + use of it "deserves" not to work. Apache 1.2b3 and later, + however, do provide <a href="#compat">a workaround.</a></p> + + <h2><a id="compat" 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 environment variable contains the + value that PATH_INFO would have had 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:</p> +<pre> + $path_info = $ENV{'FILEPATH_INFO'} || $ENV{'PATH_INFO'}; +</pre> + + <p>By doing this, a script can work with all servers supporting + the CGI/1.1 specification, including all versions of + Apache.</p> + <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + </body> +</html> + + + diff --git a/usr.sbin/httpd/htdocs/manual/configuring.html.fr b/usr.sbin/httpd/htdocs/manual/configuring.html.fr new file mode 100644 index 00000000000..fb556a3ce7d --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/configuring.html.fr @@ -0,0 +1,356 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <!-- Traduction anglais 1.17 --> + + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + <meta http-equiv="Content-Type" + content="text/html; charset=iso-8859-1" /> + + <title>Fichiers de configuration</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="CENTER">Fichiers de configuration</h1> + + <ul> + <li><a href="#main">Principaux fichiers de + configuration</a></li> + + <li><a href="#syntax">Syntaxe des fichiers de + configuration</a></li> + + <li><a href="#modules">Modules</a></li> + + <li><a href="#scope">Portée des directives</a></li> + + <li><a href="#htaccess">Fichiers .htaccess</a></li> + + <li><a href="#logs">Fichiers de trace</a></li> + </ul> + <hr /> + + <h2><a id="main" name="main">Principaux fichiers de + configuration</a></h2> + + <table border="1"> + <tr> + <td valign="top"><strong>Modules liés</strong><br /> + <br /> + <a href="mod/mod_mime.html">mod_mime</a><br /> + </td> + + <td valign="top"><strong>Directives + liées</strong><br /> + <br /> + <a + href="mod/core.html#accessconfig">AccessConfig</a><br /> + <a + href="mod/core.html#ifdefine"><IfDefine></a><br /> + <a href="mod/core.html#include">Include</a><br /> + <a + href="mod/core.html#resourceconfig">ResourceConfig</a><br /> + <a + href="mod/mod_mime.html#typesconfig">TypesConfig</a><br /> + </td> + </tr> + </table> + + <p>Apache se configure en plaçant des <a + href="mod/directives.html">directives</a> dans des fichiers + textes de configuration. Le fichier de configuration principal + est généralement appelé + <code>httpd.conf</code>. L'emplacement de ce fichier est + fixé à la compilation, mais peut être + redéfini en utilisant l'option de ligne de commande + <code>-f</code>. Certains sites possèdent + également des fichiers <code>srm.conf</code> et + <code>access.conf</code> pour des <a + href="http://httpd.apache.org/info/three-config-files.html">raisons + historiques</a>. De plus, d'autres fichiers de configuration + peuvent être ajoutés en utilisant la directive + <code><a href="mod/core.html#include">Include</a></code>. Les + directives peuvent être placées dans n'importe + quel fichier. Les modifications dans le fichier de + configuration principal ne sont prises en compte qu'au + démarrage ou au redémarrage d'Apache.</p> + + <p>Une nouveauté de la version 1.3.13 d'Apache est la + possibilité qu'un fichier de configuration soit en fait + un répertoire. Dans ce cas, Apache lira tous les + fichiers et sous répertoires et les traitera comme + fichiers de configuration. Une utilisation possible de cette + fonctionnalité est de pouvoir ajouter des hôtes + virtuels en créant des fichiers de configuration pour + chaque hôte, et de les placer dans le répertoire + de configuration. Ainsi, vous pouvez ajouter ou retirer des + hôtes virtuels sans avoir à éditer de + fichiers, mais simplement en ajoutant ou supprimant un fichier. + Celà permet d'automatiser plus facilement ce genre de + traitement.</p> + + <p>Le serveur lit également un fichier décrivant + les types de contenu MIME; le nom de ce fichier est + défini par la directive <a + href="mod/mod_mime.html#typesconfig">TypesConfig</a> et est par + défaut <code>mime.types</code>.</p> + <hr /> + + <h2><a id="syntax" name="syntax">Syntaxe des fichiers de + configuration</a></h2> + + <p>Les fichiers de configurations contiennent au plus une + directive par ligne. Le caractère "\" peut être + utilisé à la fin d'une ligne pour indiquer que la + directive se poursuit sur la ligne suivante. Il ne doit pas y + avoir d'autres caractère ou d'espace entre le + caractère "\" et la fin de la ligne.</p> + + <p>Dans les fichiers de configuration, l'écriture des + noms des directives n'est pas sensible à la casse, mais + les arguments des directives le sont + généralement. Les lignes blanches et les espaces + précédant une directive sont ignorés. Les + commentaires <strong>ne doivent pas</strong> être inclus + sur la même ligne qu'une directive. Les lignes + commençant par le caractère dièse "#" sont + traitées comme des commentaires et sont ignorés; + vous pouvez les utiliser pour indenter les directives et rendre + leur lecture plus facile.</p> + + <p>Vous pouvez vérifier la syntaxe de vos fichiers de + configuration en utilisant soit <code>apachectl + configtest</code> soit l'option de ligne de commande + <code>-t</code>.</p> + <hr /> + + <h2><a id="modules" name="modules">Modules</a></h2> + + <table border="1"> + <tr> + <td valign="top"><strong>Modules liés</strong><br /> + <br /> + <a href="mod/mod_so.html">mod_so</a><br /> + </td> + + <td valign="top"><strong>Directives + liées</strong><br /> + <br /> + <a href="mod/core.html#addmodule">AddModule</a><br /> + <a + href="mod/core.html#clearmodulelist">ClearModuleList</a><br /> + <a + href="mod/core.html#ifmodule"><IfModule></a><br /> + <a href="mod/mod_so.html#loadmodule">LoadModule</a><br /> + </td> + </tr> + </table> + + <p>Apache est un serveur modulaire. Celà implique que + seules les fonctions de base sont incluses dans le noyau du + serveur. Les fonctionnalités plus avancées sont + disponibles grâce aux <a + href="mod/index-bytype.html">modules</a> qui peuvent être + chargés dans Apache. Par défaut, un ensemble de + modules de <a href="mod/module-dict.html#Status">base</a> sont + inclus à la compilation. Si le serveur est + compilé pour utiliser les modules <a + href="dso.html">dynamiquement chargés</a>, alors les + modules peuvent être compilés + séparément et ajouté à n'importe + quel moment en utilisant la directive <a + href="mod/mod_so.html#loadmodule">LoadModule</a>. Sinon, Apache + doit être recompilé pour ajouter ou supprimer des + modules. Des directives de configuration peuvent être + incluses de manière conditionnelle en fonction de la + présence d'un module particulier en les entourant par un + bloc <a href="mod/core.html#ifmodule"><IfModule></a>.</p> + + <p>Pour savoir quels modules ont été + compilés dans le serveur, vous pouvez utiliser l'option + de ligne de commande <code>-l</code>.</p> + <hr /> + + <h2><a id="scope" name="scope">Portée des + directives</a></h2> + + <table border="1"> + <tr> + <td valign="top"><strong>Directives + liées</strong><br /> + <br /> + <a + href="mod/core.html#directory"><Directory></a><br /> + <a + href="mod/core.html#directorymatch"><DirectoryMatch></a><br /> + <a href="mod/core.html#files"><Files></a><br /> + <a + href="mod/core.html#filesmatch"><FilesMatch></a><br /> + <a + href="mod/core.html#location"><Location></a><br /> + <a + href="mod/core.html#locationmatch"><LocationMatch></a><br /> + <a + href="mod/core.html#virtualhost"><VirtualHost></a><br /> + </td> + </tr> + </table> + + <p>Les directives placées dans les principaux fichiers + de configuration s'appliquent à l'ensemble du serveur. + Si vous souhaitez modifier la configuration pour une partie + seulement du serveur, vous pouvez mettre en contexte vos + directives en les plaçant dans des sections <code><a + href="mod/core.html#directory"><Directory></a>, <a + href="mod/core.html#directorymatch"><DirectoryMatch></a>, + <a href="mod/core.html#files"><Files></a>, <a + href="mod/core.html#filesmatch"><FilesMatch></a>, <a + href="mod/core.html#location"><Location></a>,</code> et + <code><a + href="mod/core.html#locationmatch"><LocationMatch></a></code> + . Ces sections limitent la portée d'application des + directives qu'elles contiennent à un emplacement des + fichiers ou à certaines URL. Elles peuvent être + imbriquées, permettant ainsi une configuration + très fine.</p> + + <p>Apache a la possibilité de servir plusieurs sites web + simultanément. Cette possibilité est + appelée <a href="vhosts/">hébergement + virtuel</a>. Des directives peuvent également être + limitées en utilisant des sections <code><a + href="mod/core.html#virtualhost"><VirtualHost></a></code> + afin qu'elles ne s'appliquent qu'à certains sites + web.</p> + + <p>Bien que la plupart des directives peuvent être + placées à l'intérieur de n'importe quelle + section, certaines directives n'ont pas de sens dans certains + contextes. Par exemple, les directives contrôlant la + création des processus ne peuvent être + placées que dans le contexte pricipal du serveur. Pour + savoir quelles directives peuvent être placées + dans quelles sections, vérifiez le <a + href="mod/directive-dict.html#Context">contexte</a> de la + directive. Pour plus d'informations, voir <a + href="sections.html">comment les sections Directory, Location + et Files fonctionnent</a>.</p> + <hr /> + + <h2><a id="htaccess" name="htaccess">Fichiers + .htaccess</a></h2> + + <table border="1"> + <tr> + <td valign="top"><strong>Directives + liées</strong><br /> + <br /> + <a + href="mod/core.html#accessfilename">AccessFileName</a><br /> + <a + href="mod/core.html#allowoverride">AllowOverride</a><br /> + </td> + </tr> + </table> + + <p>Apache permet une gestion décentralisée de la + configuration par l'utilisation de fichiers spéciaux + à l'intérieur de l'arborescence web. Ces fichiers + spéciaux sont généralement appelés + <code>.htaccess</code>, mais n'importe quel nom peut être + défini par la directive <a + href="mod/core.html#accessfilename"><code>AccessFileName</code></a>. + Les directives placées dans les fichiers + <code>.htaccess</code> s'appliquent au répertoire + où se trouve le fichier ainsi qu'aux sous + répertoires. Les fichiers <code>.htaccess</code> + respectent la même syntaxe que les fichiers principaux de + configuration. Comme les fichiers <code>.htaccess</code> sont + lus à chaque requête, Les modifications + effectuées dans ces fichiers prennent effet + immédiatement.</p> + + <p>Pour savoir si une directive peut être placée + dans les fichiers <code>.htaccess</code>, vérifiez le <a + href="mod/directive-dict.html#Context">contexte</a> de la + directive. L'administrateur peut contôler quelles + directives peuvent être placées dans les fichiers + <code>.htaccess</code> en modifiant la directive <a + href="mod/core.html#allowoverride"><code>AllowOverride</code></a> + du fichier principal de configuration.</p> + <hr /> + + <h2><a id="logs" name="logs">Fichiers de trace</a></h2> + + <h3>Avertissement sur la sécurité</h3> + Toute personne pouvant écrire dans le répertoire + où Apache écrit un fichier de trace peut avoir + accès à l'uid sous lequel le serveur est + lancé, généralement root. <em>Ne donnez + pas</em> accès en écriture au répertoire + où les fichiers de trace sont stockés sans + être clairement conscient des conséquences; voir + le document <a href="misc/security_tips.html">trucs sur la + sécurité</a> pour plus de détails. + + <h3>Fichier pid</h3> + + <p>Au lancement, Apache écrit le numéro de + processus du processus père httpd dans le fichier + <code>logs/httpd.pid</code>. Le nom du fichier peut être + changé en modifiant la directive <a + href="mod/core.html#pidfile">PidFile</a>. Le numéro de + processus est utilisé par l'administrateur pour relancer + et arrêter le démon. Sur Unix, un signal HUP ou + USR1 a pour effet de faire relire par le démon les + fichiers de configuration, et un signal TERM le fait terminer + de manière douce. Sur Windows, il faut employer l'option + -k. Pour plus d'information voir la page <a + href="stopping.html">Arrêt et redémarrage</a>.</p> + + <p>Si le processus meurt (ou est tué) de manière + anormale, il peut alors être nécessaire de tuer + les processus fils.</p> + + <h3>Trace des erreurs</h3> + + <p>Le serveur trace les messages d'erreurs dans un fichier, par + défaut <code>logs/error_log</code> sur Unix ou + <code>logs/error.log</code> sur Windows and OS/2. Le nom du + fichier peut être défini en utilisant la directive + <a href="mod/core.html#errorlog">ErrorLog</a> D'autres traces + peuvent être définies pour différents <a + href="mod/core.html#virtualhost">hôtes virtuels</a>.</p> + + <h3>Trace des requêtes</h3> + + <p>Le serveur trace généralement chaque + requête dans un fichier de transfert, par défaut + <code>logs/access_log</code> sur Unix ou + <code>logs/access.log</code> sur Windows and OS/2. Le nom du + fichier peut être défini en utilisant la directive + <a href="mod/mod_log_config.html#customlog">CustomLog</a>. + D'autres traces peuvent être définies pour + différents <a + href="mod/core.html#virtualhost">hôtes virtuels</a>. + <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + </p> + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/custom-error.html.fr b/usr.sbin/httpd/htdocs/manual/custom-error.html.fr new file mode 100644 index 00000000000..2b189cc55f4 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/custom-error.html.fr @@ -0,0 +1,231 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--Traduction anglais 1.14 --> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + <meta http-equiv="Content-Type" + content="text/html; charset=iso-8859-1" /> + + <title>Messages d'erreur personnalisés</title> + </head> + + <body text="#000000" link="#0000ff" vlink="#000080" + bgcolor="#ffffff"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="CENTER">Messages d'erreur personnalisés</h1> + + <h3>But</h3> + + <p>Fonctionnalité additionnelle. Permet aux + administrateurs Web de personnaliser les réponses + données par Apache en cas de problèmes. Les + réponses personnalisées définies peuvent + être activables lorsque le serveur est à + même de détecter la cause du problème.</p> + + <p>ex. si un script termine en faute, produisant une + réponse "500 Server Error", alors cette réponse + peut être remplacée soit par un texte quelque peu + plus explicatif soit par une redirection vers une autre URL + (locale ou externe).</p> + + <h3>Ancien comportement</h3> + + <p>La version 1.3 d'httpd du NCSA répondait souvent avec + des messages d'erreur ennuyeux et peu amènes qui + étaient sans signification pour l'utilisateur, et ne + donnait pas les symptômes qui pouvaient causer la + faute.</p> + + <h3>Nouveau comportement</h3> + + <p>On pourra désormais demander au serveur :</p> + + <ol> + <li>D'afficher un autre texte, plutôt que les messages + standard NCSA, ou</li> + + <li>rediriger l'utilisateur vers une URL locale, ou + encore</li> + + <li>rediriger l'utilisateur vers une URL sur un autre + serveur.</li> + </ol> + + <p>La redirection vers une autre URL peut être utile, + mais seulement si certaines informations peuvent être + passées et qui serviront à produire un affichage + ou un enregistrement du problème plus clair et + explicite.</p> + + <p>Pour ce faire, Apache définira de nouvelles variables + d'environnement ( à la mode CGI), ex.</p> + + <blockquote> + <code>REDIRECT_HTTP_ACCEPT=*/*, image/gif, image/x-xbitmap, + image/jpeg<br /> + REDIRECT_HTTP_USER_AGENT=Mozilla/1.1b2 (X11; I; HP-UX + A.09.05 9000/712)<br /> + REDIRECT_PATH=.:/bin:/usr/local/bin:/etc<br /> + REDIRECT_QUERY_STRING=<br /> + REDIRECT_REMOTE_ADDR=121.345.78.123<br /> + REDIRECT_REMOTE_HOST=ooh.ahhh.com<br /> + REDIRECT_SERVER_NAME=crash.bang.edu<br /> + REDIRECT_SERVER_PORT=80<br /> + REDIRECT_SERVER_SOFTWARE=Apache/0.8.15<br /> + REDIRECT_URL=/cgi-bin/buggy.pl</code> + </blockquote> + + <p>notez le préfixe <code>REDIRECT_</code>.</p> + + <p>Seront au moins passés à la nouvelle URL les + variables <code>REDIRECT_URL</code> et + <code>REDIRECT_QUERY_STRING</code> (en supposant que l'URL de + redirection est un script CGI ou un Include CGI). Les autres + variables n'existeront que si elles existaient + déjà avant l'apparition du problème. + <b>Aucune de ces deux variables</b> ne sera initialisée + si votre Document d'erreur est le résultat d'une + redirection <i>externe</i> (c-à-d. toute adresse + commençant par le nom d'un plan de protocole comme + <code>http:</code>, même si le protocole invoqué + aboutit sur le même hôte que le serveur à + l'origine de la redirection).</p> + + <h3>Configuration</h3> + + <dl> + <dd>L'utilisation des documents "ErrorDocument" est + autorisée dans les fichiers .htaccess lorsque la + surcharge <a + href="mod/core.html#allowoverride">"FileInfo"</a> est + active.</dd> + + <dd>En voici quelques exemples...</dd> + </dl> + + <div style="margin-left: 2em"> + <blockquote> + <code>ErrorDocument 500 /cgi-bin/crash-recover<br /> + ErrorDocument 500 "Désolé, votre script + s'est vautré. Fichtre"<br /> + ErrorDocument 500 http://xxx/<br /> + ErrorDocument 404 /Lame_excuses/not_found.html<br /> + ErrorDocument 401 + /Subscription/how_to_subscribe.html</code> + </blockquote> + + <dl> + <dd>La syntaxe admise est :</dd> + + <dd><a href="mod/core.html#errordocument"><font + face="Courier New" size="2">ErrorDocument</font></a> + <code à trois chiffres> action</dd> + + <dd>dans laquelle l'action peut être :</dd> + </dl> + </div> + + <div style="margin-left: 4em"> + <ol> + <li>Le texte devant être affiché. Le texte + devra être préfixé par un guillemet + ("). Tout ce qui suit le guillemet sur la ligne est + affiché. <em>Notez : le préfixe (") + lui-même n'est pas affiché.</em></li> + + <li>Une URL externe de redirection.</li> + + <li>Une URL locale de redirection.</li> + </ol> + </div> + <hr /> + <br /> + <br /> + + + <div style="margin-left: 2em"> + <h2>Redirections et affichage d'erreurs + personnalisées</h2> + + <h3>But</h3> + + <dl> + <dd>Le comportement d'Apache lorsqu'il redirige des URL a + été modifié afin que d'autres + variables d'environnement additionnelles puissent + être rendues accessibles par un + script/server-include.</dd> + </dl> + + <h3>Ancien comportement</h3> + + <dl> + <dd>Les variables CGI standard étaient transmises au + script vers lequel était redirigé le client. + Aucune indication n'était transmise quant à + qui redirigeait le message.</dd> + </dl> + + <h3>Nouveau comportement</h3> + + <dl> + <dd>Un nouvel ensemble de variables d'environnement sera + initialisé, à l'intention du script vers + lequel le client a été redirigé. + Chaque nouvelle variable de cet ensemble est + préfixée par <code>REDIRECT_</code>. Les + variables d'environnement de type <code>REDIRECT_</code> + sont créées à partir des variables + d'environnement CGI qui existaient avant que n'intervienne + la redirection, en leur rajoutant le préfixe. Par + exemple <code>HTTP_USER_AGENT</code> devient + <code>REDIRECT_HTTP_USER_AGENT</code>. En plus de ces + variables, Apache définit les variables + <code>REDIRECT_URL</code> et <code>REDIRECT_STATUS</code> + pour aider le script à identifier l'origine de la + redirection. Dans la trace d'accès déduite + peuvent apparaître l'URL initiale ainsi que l'URL + vers laquelle est redirigée la requête.</dd> + </dl> + </div> + <hr /> + <br /> + <br /> + + + <p>Si la directive ErrorDocument spécifie une + redirection local vers un script CGI, le script devra inclure + un champ "<samp>Status:</samp>" dans l'en-tête de sa + sortie afin de garantir la retransmiison complète vers + le client des conditions d'erreurs qui ont causé son + invocation. Par exemple un script Perl devrait inclure les + lignes suivantes :</p> +<pre> + : + print "Content-type: text/html\n"; + printf "Status: %s Condition Intercepted\n", $ENV{"REDIRECT_STATUS"}; + : +</pre> + + <p>Si le script est dédié pour traité une + condition d'erreur particulière telle que + <samp>404 Not Found</samp>, il peut utiliser le code + spécifique et le message d'erreur à la place.</p> + <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/cygwin.html b/usr.sbin/httpd/htdocs/manual/cygwin.html new file mode 100644 index 00000000000..4d315f50aa9 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/cygwin.html @@ -0,0 +1,541 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Using Apache with Cygwin</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="CENTER"><a id="help" name="help">Using Apache with + Cygwin</a></h1> + + <p>This document explains how to install, configure and run + Apache 1.3 under the <a href="http://www.cygwin.com">Cygwin</a> + layer for Microsoft Windows. Cygwin is a POSIX.1 emulation + layer for 32-bit Microsoft Windows operating systems.</p> + + <p>The Apache Group does not guarantee that this software will + work as documented, or even at all. If you find any bugs, + please document them on our <a + href="http://httpd.apache.org/bug_report.html">bug reporting + page.</a></p> + + <p>Latest development news, pre-compiled distribution binaries, + and third-party modules as DLLs, may be found at <a + href="http://apache.dev.wapme.net/">http://apache.dev.wapme.net/</a>. + Contributions are highly welcome (please see <a + href="http://apache.dev.wapme.net/TODO.cygwin">TODO</a> list); + please submit your code or suggestions to the bug report page, + or join the dev@httpd.apache.org mailing list.</p> + + <p>The <a href="windows.html">Win32 port</a> of Apache is built + on its own, custom code within Apache to assure + interoperability with Windows operating systems. While it is + considered release quality, it is slower and less thoroughly + tested than the Unix ports. The Cygwin alternative uses the + well tested Unix code by using the Cygwin portability layer for + POSIX.1 emulation. The Cygwin port may suffer from gaps in + security or reliability due to the interaction of the Cygwin + compatibility layer with the native Windows API.</p> + + <p>The <a href="windows.html">Win32 port</a> will be more + familiar to most Windows users. The Cygwin port (including the + build environment) will be more familiar to Unix admins and + developers. Due to these two different code bases, the security + and reliability of the two ports are unrelated to each other. + The Win32 port should be considered the more secure of the two + at this time. The Win32 port is recommended for most Windows + users, however the Cygwin port offers an extra layer of + compatibility for Unix developers.</p> + + <p>Apache still performs best, and is most reliable, on Unix + platforms. First benchmarks have shown that the same Apache + setup on Cygwin performs about 30% slower than the + corresponding native Windows version.</p> + + <p>Most of this document assumes that you have a working Cygwin + installation and want to compile Apache yourself from the + original distribution sources.</p> + <hr /> + + <ul> + <li><a href="#hist">History of Apache for Cygwin</a></li> + + <li><a href="#diff">Differences from Apache for Windows + (native)</a></li> + + <li><a href="#req">Requirements</a></li> + + <li><a href="#down">Downloading Apache for Cygwin</a></li> + + <li><a href="#inst">Configuring and Installing Apache for + Cygwin</a></li> + + <li><a href="#run">Running Apache for Cygwin</a></li> + + <li><a href="#serv">Running Apache for Cygwin as a + Service</a></li> + </ul> + <hr /> + + <h2><a id="hist" name="hist">History of Apache for + Cygwin</a></h2> + + <p>Cygwin support for Apache began with Apache 1.2.6 and Cygwin + b18.</p> + + <p>Due to licensing issues there has not been an official + binary distribution until Red Hat Inc. (who merged with Cygnus + Solutions Inc.) changed their Cygwin license to ensure compiled + executables do not fall under GPL license if the distributed + software is considered as open source.</p> + + <p>Cygwin is supported in the official source distributions + from Apache 1.3.20 and later. Pre-compiled binaries for the + Cygwin platform (without the <code>cygwin1.dll</code>) will be + supplied at <a + href="http://www.apache.org/httpd">http://www.apache.org/httpd</a> + for each released version.</p> + + <h2><a id="diff" name="diff">Differences from Apache for + Windows (native)</a></h2> + + <p>Both versions, Apache for Windows and Apache for Cygwin, are + designed to run on the same operating systems, the Windows NT + and Windows 2000 family. But there are considerable differences + between the two flavors.</p> + + <p>While Apache for Windows is a native Windows port, Apache + for Cygwin relies on the Cygwin POSIX.1 emulation layer + provided by the <code>cygwin1.dll</code> dynamic library to + create a Unix compatible environment. Therefore we consider + Apache for Cygwin closer to the Unix side then to the Windows + side, even while it runs on Windows.</p> + + <p>Most significant differences are the amount of changes to + the source code needed to compile and run Apache on the Cygwin + platform. While the native Windows port needs major changes and + platform specific additions, the Cygwin based port changes are + very small and most of the Unix source code can be used without + major changes on the Cygwin platform.</p> + + <p><strong>When to use Apache for Cygwin and/or Apache versus + Windows?</strong><br /> + Apache for Cygwin is intended to be most useful if you want a + seamless transition from Unix systems to Windows systems for + your HTTP services.</p> + + <p>If you are using Windows NT or Windows 2000 for development + and office purposes, but your productive HTTP server + environments are Unix based systems, you may use Apache for + Cygwin to develop on Windows and simply copy whole Apache + configurations (<em>i.e.,</em> <code>httpd.conf</code>) and + Perl (<code>mod_perl</code>), PHP (<code>mod_php</code>) or + Python (<code>mod_snake</code>) applications to your productive + Unix systems.</p> + + <p><strong>What about modules (<code>mod_foo</code>) for Apache + for Cygwin?</strong><br /> + Apache for Cygwin can be built with most of the available + Apache modules with no or minimal changes. Many popular modules + have been compiled and tested with Apache for Cygwin, including + <code>mod_dav</code>, <code>mod_ssl</code>, + <code>mod_php</code>, <code>mod_perl</code>, + <code>mod_gzip</code>, and <code>mod_jserv</code>.</p> + + <p>While there are developers who directly support the Windows + native port of Apache, very few module developers do. That is + why it is can be difficult to make a Unix-based Apache + installation with third-party modules work the same way on the + Windows side using the native port. Apache for Cygwin makes + this much easier.</p> + + <p><strong>What are the differences in the configuration + files?</strong><br /> + While the Apache for Windows port uses Windows native path + names to refer files and directorys, like</p> +<pre> + # httpd.conf (for Windows) + DocumentRoot "c:/apache/htdocs" +</pre> + Apache for Cygwin can use unmodified POSIX style path names + like +<pre> + # httpd.conf (for Cygwin) + DocumentRoot "/usr/local/apache/htdocs" +</pre> + + <p><strong>What about performance?</strong><br /> + Apache for Cygwin is not as high-performance as Apache for + Windows on the same hardware.</p> + + <p>This is to be expected, because Cygwin emulates a Unix + environment on a "foreign" operating system, while Apache for + Windows uses Windows code in its own native environment. First + benchmark results have shown that Apache for Cygwin is about + 30% slower than native Apache for Windows counterpart.</p> + + <h2><a id="req" name="req">Requirements</a></h2> + + <p>This Apache 1.3 port for Cygwin is designed to run on + Windows NT 4.0 and Windows 2000, <strong>NOT</strong> on + Windows 95 or 98. Windows NT 4.0 and Windows 2000 have both + been successfully tested and approved. In all cases TCP/IP + networking must be installed.</p> + + <p>Cygwin 1.x is required to compile and run this version. + Cygwin 1.1.8 and 1.3.2 have been tested and approved on both + supported OSes.</p> + + <p><strong>Note:</strong>If you want to compile shared DLL + modules using <a + href="programs/apxs.html"><code>apxs</code></a> you will need a + patched version of <code>ld.exe</code> with + <code>--auto-import</code> support, which can be found at <a + href="http://sourceforge.net/projects/kde-cygwin/">http://sourceforge.net/projects/kde-cygwin/</a>.</p> + + <h2><a id="down" name="down">Downloading Apache for + Cygwin</a></h2> + + <p>The Cygwin platform is supported out of the box by Apache + 1.3.20 and later. This means there is no extra download + required for the Cygwin platform. The latest version of Apache + can be found on the Apache httpd web site at <a + href="http://httpd.apache.org/">http://httpd.apache.org/</a>. + The site lists the current release, any more recent development + versions, and information on any mirror sites.</p> + + <h2><a id="inst" name="inst">Configuring and Installing Apache + for Cygwin</a></h2> + + <p>Apache on Cygwin is configured and compiled the same way as + on Unix systems. Refer to the general <a + href="configuring.html">configuration</a> and <a + href="install.html">installation</a> documents for details.</p> + + <p>There are three ways to configure and build Apache for + Cygwin, depending on how additional Apache modules should be + used:</p> + + <ul> + <li> + <strong>Static linked version</strong> + + <p>To build a static linked version of <code>httpd</code> + including additional modules, use the following commands in + the shell:</p> +<pre> + $ cd apache_1.3.x + $ ./configure [--enable-module=<i>module</i>|--add-module=<i>/path/to/module</i>] + $ make +</pre> + + <p>This will produce the required extra libraries or object + files for <i>module</i> and link everything to + <code>src/httpd.exe</code>.</p> + </li> + + <li> + <strong>Shared core, DLL linked version ('one-for-all' + version)</strong> + + <p>To build a DLL version of <code>httpd</code> including + additional modules, use the following commands:</p> +<pre> + $ cd apache_1.3.x + $ ./configure --enable-rule=SHARED_CORE \ + [--enable-module=<i>module</i>|--add-module=<i>/path/to/module</i>] + $ make + $ make install +</pre> + + <p>This will produce the required extra libraries or object + files which hold all static linked code. Then + <code>dllwrap</code> and <code>dlltool</code> will export + all of those (including any additional module code) to the + shared <code>libhttpd.dll</code> and create the + <code>libhttpd.a</code> import library which is required + for linking <code>httpd.exe</code>.</p> + + <p><strong>Note:</strong> After <code>make install</code> + is performed you will find the resulting core DLL module + <code>libhttpd.dll</code> within + <code>/usr/local/apache/libexec</code>. This is due to the + installation process. Please move the file to Apache's + <code>bin</code> directory, i.e.</p> +<pre> + $ mv /usr/local/apache/libexec/libhttpd.dll /usr/local/apache/bin +</pre> + The core DLL module <code>libhttpd.dll</code> is the + <i>only</i> file that should reside in + <code>/usr/local/apache/bin</code> directory. All other + shared DLL modules <code>mod_foo.dll</code> should be + located in <code>/usr/local/apache/libexec</code>. + </li> + + <li> + <strong>Shared DLL modules linked version</strong> + + <p>This method is currently <strong>ONLY</strong> supported + using a patched version of <code>ld.exe</code> which + support the <code>--auto-import</code> option. Please see + the <a href="#req">requirements</a> section for where to + get that version.</p> + + <p>To build a dynamic loadable DLL version of + <code>httpd</code> which can load DLL modules on the fly + (at runtime), proceed as follows:</p> + + <ul> + <li> + <p>First build Apache's shared core as follows:</p> +<pre> + $ cd apache_1.3.x + $ ./configure --enable-rule=SHARED_CORE --enable-module=so \ + [--enable-module=<i>module</i>|--add-module=<i>/path/to/module</i>] \ + [--enable-shared=<i>module</i>] + $ make +</pre> + + <p>You will notice that there is a warning message + shown which lets you know that the shared core DLL + library <code>src/libhttpd.dll</code> is missing while + trying to link the shared DLL modules + <code>mod_foo.dll</code>.</p> + + <p>Unfortunatly while Apache's build process the shared + modules are linked before the shared core import + library <code>src/libhttpd.dll</code> has been made. + The shared modules depend on this import library, so + they can not link for the first time you run + <code>make</code>.</p> + </li> + + <li> + Re-run <code>make</code> to build the shared module + DLLs and install the whole package to the installation + directory: +<pre> + $ make + $ make install +</pre> + + <p>All shared modules are placed into + <code>libexec</code>, including the shared core DLL + <code>libhttpd.dll</code>. When Apache's + <code>/bin/httpd</code> is started it has to dynamicly + link <code>libhttpd.dll</code> while runtime. That is + why you have to place the shared core DLL + <code>libhttpd.dll</code> to the same direcotry where + <code>httpd.exe</code> resides, i.e. + <code>/usr/local/apache/bin</code>.</p> + </li> + + <li> + Add configuration directives to + <code>conf/httpd.conf</code> to load and activate + shared DLL modules at runtime: +<pre> + # httpd.conf + [...] + LoadModule foo_module libexec/mod_foo.dll + AddModule mod_foo.c + [...] +</pre> + </li> + </ul> + </li> + + <li> + <strong>Using apxs to create shared DLL modules</strong> + + <p>To make the extending <code>httpd</code> with shared DLL + modules easier, you can use <a + href="programs/apxs.html"><code>apxs</code></a>.</p> + + <p>Make sure you have configured + <code>$CFG_LDFLAGS_SHLIB</code> within <code>apxs</code> to + include the <code>--shared</code> directive and the path to + the shared code DLL <code>libhttpd.dll</code>.</p> + + <p>After performing <code>make install</code> you will + probably have the following lines within your + <code>apxs</code>:</p> +<pre> + # apxs + [...] + my $CFG_LD_SHLIB = q(dllwrap --export-all --output-def libhttpd.def --implib libhttpd.a --driver-name gcc); # substituted via Makefile.tmpl + my $CFG_LDFLAGS_SHLIB = q(-g); # substituted via Makefile.tmpl + my $CFG_LIBS_SHLIB = q(); # substituted via Makefile.tmpl + [...] +</pre> + Change these to reflect the new compile options needed for + shared DLL modules as follows: +<pre> + # apxs + [...] + my $CFG_LD_SHLIB = q(gcc); # substituted via Makefile.tmpl + my $CFG_LDFLAGS_SHLIB = q(-g --shared); # substituted via Makefile.tmpl + my $CFG_LIBS_SHLIB = q(<i>/path/to/libhttpd.dll</i>); # substituted via Makefile.tmpl + [...] +</pre> + + <p>Now you should be able to create a shared DLL module + from a <code>mod_foo.c</code> source file with:</p> +<pre> + $ apxs -c mod_foo.c -o mod_foo.dll +</pre> + Place the resulting DLL in Apache's <code>libexec</code> + directory, so the <code>dlopen()</code> function within the + compiled in <code>mod_so.c</code> module can find and load + it at runtime. + </li> + </ul> + + <h2><a id="run" name="run">Running Apache for Cygwin</a></h2> + + <p>Apache on Cygwin can be started and stopped in the same + manner as on Unix systems. You may also use the <a + href="programs/apachctl.html"><code>apachectl</code></a> tool + for starting and stopping Apache.</p> + + <ul> + <li> + <strong>Starting Apache</strong> + + <p>If installed with the default Apache directory layout, + you can start <code>httpd</code> as follows:</p> +<pre> + $ /usr/local/apache/bin/httpd +</pre> + + <p>An explicit background indicator (<code>&</code>) is + not required. The parent process is automatically detached + from the current terminal. Check the global + <code>error_log</code> to see if Apache started cleanly + without any major problems.</p> + </li> + + <li> + <strong>Stopping Apache</strong> + + <p>To stop Apache send at least a <code>SIGTERM</code> + signal to the parent <code>httpd</code> process:</p> +<pre> + $ kill -TERM `cat /usr/local/apache/logs/httpd.pid` +</pre> + </li> + + <li> + <strong>Gracefully Restarting Apache</strong> + + <p>In order to update configuration directives and reload + the <code>httpd.conf</code> configuration file, send a + <code>SIGHUP</code> to the parent <code>httpd</code> + process:</p> +<pre> + $ kill -HUP `cat /usr/local/apache/logs/httpd.pid` +</pre> + </li> + </ul> + + <h2><a id="serv" name="serv">Running Apache for Cygwin as a + Service</a></h2> + + <p>Apache on Cygwin can be invoked as a Windows NT or Windows + 2000 service. Cygwin has its own <code>cygrunsrv.exe</code> + facility to define, remove, start, and stop services as + follows:</p> + + <ul> + <li> + <strong>Installing Apache as a new Service</strong> + + <p>Use the following statement to install + <code>httpd.exe</code> as a new service:</p> +<pre> + $ cygrunsrv -I <i>service_name</i>-p /usr/local/apache/bin/httpd.exe [-a <i>arguments</i>] \ + [-e <i>VAR=VALUE</i>] [-t auto|manual] [-u <i>user</i>] [-w <i>passwd</i>] +</pre> + + <p>Where <code>-a</code> is used to pass command line + arguments (such as <code>-DFOO</code> defines) to + <code>httpd.exe</code>, and <code>-e</code> is used to pass + environment variables. If necessary you may use the + <code>-t</code> options to set the autostart configuration + for the service. If you want the new service to run under a + different userid, you will have to supply the + <code>-u</code> and <code>-w</code> options.</p> + </li> + + <li> + <strong>Starting Apache as a Service</strong> + + <p>After the new service is installed it can be started + using the following command:</p> +<pre> + $ cygrunsrv -S <i>service_name</i> +</pre> + + <p>Check your process table and global + <code>error_log</code> file to ensure Apache has started + without any major problems.</p> + </li> + + <li> + <strong>Stopping an Apache Service</strong> + + <p>A running Apache service may be stopped using the + following command:</p> +<pre> + $ cygrunsrv -E <i>service_name</i> +</pre> + + <p>This will stop all running <code>httpd.exe</code> + processes and shutdown the HTTP service for the + machine.</p> + </li> + + <li> + <strong>Removing an Apache Service</strong> + + <p>An installed Apache service may be removed from Windows + NT or Windows 2000 using the following command:</p> +<pre> + $ cygrunsrv -R <i>service_name</i> +</pre> + + <p>This will remove your previously defined and installed + service from the machine.</p> + </li> + </ul> + + <p>Please refer to the <code>man</code> page for + <code>cygrunsrv</code> and the Cygwin mailing list for further + details of how services are invoked.</p> + + <p>Any additional contributions to this document and the Cygwin + support for Apache are highly welcome. Please send them to + Stipe Tolj <a + href="mailto:tolj@wapme-systems.de"><tolj@wapme-systems.de></a>.</p> + <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/dns-caveats.html.en b/usr.sbin/httpd/htdocs/manual/dns-caveats.html.en new file mode 100644 index 00000000000..3d472f49c75 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/dns-caveats.html.en @@ -0,0 +1,227 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Issues Regarding DNS and Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="CENTER">Issues Regarding DNS and Apache</h1> + + <p>This page could be summarized with the statement: <em>don't + require Apache to use DNS for any parsing of the configuration + files</em>. If Apache has to use DNS to parse the configuration + files then your server may be subject to reliability problems + (it might not boot), or denial and theft of service attacks + (including users able to steal hits from other users).</p> + + <h3>A Simple Example</h3> + Consider this configuration snippet: + + <blockquote> +<pre> + <VirtualHost www.abc.dom> + ServerAdmin webgirl@abc.dom + DocumentRoot /www/abc + </VirtualHost> +</pre> + </blockquote> + + <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 <strong>will not be + configured</strong>. It won't be able to respond to any hits to + this virtual host (prior to Apache version 1.2 the server would + not even boot).</p> + + <p>Suppose that <code>www.abc.dom</code> has address 10.0.0.1. + Then consider this configuration snippet:</p> + + <blockquote> +<pre> + <VirtualHost 10.0.0.1> + ServerAdmin webgirl@abc.dom + DocumentRoot /www/abc + </VirtualHost> +</pre> + </blockquote> + + <p>Now Apache needs to use reverse DNS to find the + <code>ServerName</code> 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.</p> + + <p>Here is a snippet that avoids both of these problems.</p> + + <blockquote> +<pre> + <VirtualHost 10.0.0.1> + ServerName www.abc.dom + ServerAdmin webgirl@abc.dom + DocumentRoot /www/abc + </VirtualHost> +</pre> + </blockquote> + + <h3>Denial of Service</h3> + + <p>There are (at least) two forms that denial of service can + come in. If you are running a version of Apache prior to + version 1.2 then your server will not even boot if one of the + two DNS lookups mentioned above fails for any of your virtual + hosts. In some cases this DNS lookup may not even be under your + control. For example, if <code>abc.dom</code> is one of your + customers and they control their own DNS then they can force + your (pre-1.2) server to fail while booting simply by deleting + the <code>www.abc.dom</code> record.</p> + + <p>Another form is far more insidious. Consider this + configuration snippet:</p> + + <blockquote> +<pre> + <VirtualHost www.abc.dom> + ServerAdmin webgirl@abc.dom + DocumentRoot /www/abc + </VirtualHost> +</pre> + </blockquote> + + <blockquote> +<pre> + <VirtualHost www.def.dom> + ServerAdmin webguy@def.dom + DocumentRoot /www/def + </VirtualHost> +</pre> + </blockquote> + + <p>Suppose that you've assigned 10.0.0.1 to + <code>www.abc.dom</code> and 10.0.0.2 to + <code>www.def.dom</code>. Furthermore, suppose that + <code>def.com</code> has control of their own DNS. With this + config you have put <code>def.com</code> into a position where + they can steal all traffic destined to <code>abc.com</code>. To + do so, all they have to do is set <code>www.def.dom</code> to + 10.0.0.1. Since they control their own DNS you can't stop them + from pointing the <code>www.def.com</code> record wherever they + wish.</p> + + <p>Requests coming in to 10.0.0.1 (including all those where + users typed in URLs of the form + <code>http://www.abc.dom/whatever</code>) will all be served by + the <code>def.com</code> virtual host. To better understand why + this happens requires a more in-depth discussion of how Apache + matches up incoming requests with the virtual host that will + serve it. A rough document describing this <a + href="vhosts/details.html">is available</a>.</p> + + <h3>The "main server" Address</h3> + + <p>The addition of <a href="vhosts/name-based.html">name-based + virtual host support</a> in Apache 1.1 requires Apache to know + the IP address(es) of the host that httpd is running on. To get + this address it uses either the global <code>ServerName</code> + (if present) or calls the C function <code>gethostname</code> + (which should return the same as typing "hostname" at the + command prompt). Then it performs a DNS lookup on this address. + At present there is no way to avoid this lookup.</p> + + <p>If you fear that this lookup might fail because your DNS + server is down then you can insert the hostname in + <code>/etc/hosts</code> (where you probably already have it so + that the machine can boot properly). Then ensure that your + machine is configured to use <code>/etc/hosts</code> in the + event that DNS fails. Depending on what OS you are using this + might be accomplished by editing <code>/etc/resolv.conf</code>, + or maybe <code>/etc/nsswitch.conf</code>.</p> + + <p>If your server doesn't have to perform DNS for any other + reason then you might be able to get away with running Apache + with the <code>HOSTRESORDER</code> environment variable set to + "local". This all depends on what OS and resolver libraries you + are using. It also affects CGIs unless you use <a + href="mod/mod_env.html"><code>mod_env</code></a> to control the + environment. It's best to consult the man pages or FAQs for + your OS.</p> + + <h3><a id="tips" name="tips">Tips to Avoid these + problems</a></h3> + + <ul> + <li>use IP addresses in <code><VirtualHost></code></li> + + <li>use IP addresses in <code>Listen</code></li> + + <li>use IP addresses in <code>BindAddress</code></li> + + <li>ensure all virtual hosts have an explicit + <code>ServerName</code></li> + + <li>create a <code><VirtualHost _default_:*></code> + server that has no pages to serve</li> + </ul> + + <h3>Appendix: Future Directions</h3> + + <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 renumbering is a necessity.</p> + + <p>A possible work around to the theft of service attack + described above would be to perform a reverse DNS lookup on the + ip address returned by the forward lookup and compare the two + names. In the event of a mismatch the virtualhost would be + disabled. This would require reverse DNS to be configured + properly (which is something that most admins are familiar with + because of the common use of "double-reverse" DNS lookups by + FTP servers and TCP wrappers).</p> + + <p>In any event it doesn't seem possible to reliably boot a + virtual-hosted web server when DNS has failed unless IP + addresses are used. Partial solutions such as disabling + portions of the configuration might be worse than not booting + at all depending on what the webserver is supposed to + accomplish.</p> + + <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. <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + </p> + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/dns-caveats.html.fr b/usr.sbin/httpd/htdocs/manual/dns-caveats.html.fr new file mode 100644 index 00000000000..0b59d7f12de --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/dns-caveats.html.fr @@ -0,0 +1,279 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--Traduction anglais 1.4 --> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + <meta http-equiv="Content-Type" + content="text/html; charset=iso-8859-1" /> + + <title>Apache et le DNS</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="CENTER">Apache et le DNS</h1> + + <p>Cette page aurait pu être résumée par la + phrase : <i>ne demandez pas à Apache d'utiliser le DNS + pour la lecture des fichiers de configuration</i>. Si Apache + doit utiliser le DNS pour récupérer ses fichiers + de configuration, alors votre serveur peut être sujet + à des problèmes de fiabilité (il peut tout + simplement ne pas démarrer), ou s'ouvrir à des + attaques et des vols d'information (y compris des utilisateurs + qui pourraient "voler" des hits d'autres utilisateurs).</p> + + <h3>Un exemple simple</h3> + Considérez ce court extrait de code de configuration : + + <blockquote> +<pre> + <VirtualHost www.abc.dom> + ServerAdmin webgirl@abc.dom + DocumentRoot /www/abc + </VirtualHost> +</pre> + </blockquote> + + <p>Pour qu'Apache fonctionne correctement, il a absolument + besoin d'au moins deux informations pour chaque hôte + virtuel : le <a + href="mod/core.html#servername"><code>ServerName</code></a> et + au moins une adresse IP à laquelle ce serveur doit + répondre. Cet exemple ne fait pas apparaître + d'adresse IP ; Apache doit donc utiliser le DNS pour trouver + l'adresse correspondant à <code>www.abc.dom</code>. Si + pour telle ou telle raison, le service de noms de domaines + n'est pas accessible au moment ou le serveur interprète + ses fichiers de configuration, alors cet hôte virtuel + <b>ne pourra pas être configuré</b>. Il ne pourra + donc pas répondre aux requêtes émises vers + cet hôte virtuel (les versions d'Apache + antérieures à la 1.2 n'auraient même pas pu + démarrer).</p> + + <p>Supposons que le doamine <code>www.abc.dom</code> ait pour + adresse 10.0.0.1. Considérez alors ce nouvel extrait de + code de configuration :</p> + + <blockquote> +<pre> + <VirtualHost 10.0.0.1> + ServerAdmin webgirl@abc.dom + DocumentRoot /www/abc + </VirtualHost> +</pre> + </blockquote> + + <p>Apache doit alors effectuer une résolution DNS + inverse pour trouver le nom <code>ServerName</code> pour cet + hôte virtuel. Si cette résolution échoue, + alors il devra partiellement désactiver cet hôte + virtuel (les versions d'Apache antérieures à la + 1.2 n'auraient même pas démarré). Si + l'hôte virtuel est basé sur un nom de domaine + alors il sera totalement inhibé, si par contre il se + base sur une adresse IP, alors il tournera probablement. + Cependant, si Apache devait générer une URL + complète pour ce serveur, incluant le nom de domaine, + l'URL produite ne pourrait être correctement + constituée.</p> + + <p>Voici un extrait qui élimine ces deux + problèmes.</p> + + <blockquote> +<pre> + <VirtualHost 10.0.0.1> + ServerName www.abc.dom + ServerAdmin webgirl@abc.dom + DocumentRoot /www/abc + </VirtualHost> +</pre> + </blockquote> + + <h3>Refus de service</h3> + + <p>Il existe (au moins) deux situations où Apache refuse + de fournir le service. Si vous exécutez une version + antérieure à la version 1.2 d'Apache, votre + serveur ne démarrera même pas si l'une des deux + résolutions DNS mentionnées ci-avant + échoue pour au moins un hôte virtuel. Dans + certains cas, cette résolution peut ne même pas + être sous votre contrôle. Par exemple, si + <code>abc.dom</code> est l'un de vos clients, lequel + contrôle son propre serveur DNS, ce dernier peut forcer + votre serveur Apache (en version antérieure à + 1.2) à s'arrêter au démarrage en supprimant + simplement l'enregistrement du nom + <code>www.abc.dom</code>.</p> + + <p>Une autre situation est beaucoup plus pernicieuse. + Considérez cet extrait de code de configuration :</p> + + <blockquote> +<pre> + <VirtualHost www.abc.dom> + ServerAdmin webgirl@abc.dom + DocumentRoot /www/abc + </VirtualHost> +</pre> + </blockquote> + + <blockquote> +<pre> + <VirtualHost www.def.dom> + ServerAdmin webguy@def.dom + DocumentRoot /www/def + </VirtualHost> +</pre> + </blockquote> + + <p>Supposez que vous avez assigné 10.0.0.1 au domaine + <code>www.abc.dom</code> et 10.0.0.2 au domaine + <code>www.def.dom</code>. De plus, supposez que + <code>def.com</code> contrôle son propre service DNS. + Avec la précédente configuration, vous permettez + à <code>def.com</code> de "voler" tout le trafic + destiné à <code>abc.com</code>. Tout ce qu'ils + auraient à faire pour y parvenir est d'assigner + <code>www.def.dom</code> à l'adresse 10.0.0.1. Dans la + mesure où ils contrôlent leur propre DNS, vous ne + pouvez les empêcher de piéger leur enregistrement + de <code>www.def.com</code>.</p> + + <p>Les requêtes arrivant pour 10.0.0.1 (y compris toutes + celles où les utilisateurs auront tapé une URL de + la forme <code>http://www.abc.dom/qqchose</code>) seront toutes + servies par l'hôte virtuel <code>def.com</code>. Mieux + comprendre comment cela est possible demande une discussion + plus détaillée sur la manière dont Apache + traite des requêtes arrivant pour des hôtes + virtuels. Un premier document descrivant ceci est <a + href="vhosts/details.html">disponible</a>.</p> + + <h3>L'adresse du "serveur principal"</h3> + + <p>L'addition du <a href="vhosts/name-based.html">support + d'hôtes virtuels basés sur les noms</a> dans + Apache 1.1 nécessite qu'Apache connaisse les adresses IP + de l'hôte sur lequel est exécuté httpd. + Pour obtenir cette adresse, il utilise soit le + <code>ServerName</code> global (si défini) ou appelle la + fonction C <code>gethostname</code> (qui renvoie une + information similaire à celle donnée par la + commande interactive "hostname"). Puis il procède + à une résolution DNS pour cette adresse. + Jusqu'à présent, il n'y a aucun moyen + d'éviter cette résolution.</p> + + <p>Si vous craignez que cette résolution échoue + parceque votre serveur DNS est arrêté, alors vous + popuvez ajouter le nom d'hôte dans le fichier + <code>/etc/hosts</code> (où il devrait normalement + déjà figurer, ne serait-ce que pour assurer un + démarrage correct de la machine). Vous devrez en outre + vous assurer que votre machine est configurée pour + exploiter le fichier <code>/etc/hosts</code> en cas + d'échec d'une résolution dynamique. Suivant l'OS + que vous utilisez, ceci peut être fait en éditant + le code <code>/etc/resolv.conf</code>, ou peut être + <code>/etc/nsswitch.conf</code>.</p> + + <p>Si votre machine n'a pas de résolution DNS à + effectuer pour toute autre raison (par exemple parce qu'elle + est isolée), alors vous pourrez néanmoins faire + tourner Apache en initialisant la variable d'environnement + <code>HOSTRESORDER</code> à "local". Tout ceci + dépend de l'OS et des librairies de résolveur que + vous utilisez. Les CGI sont également affectés + sauf si vous utilisez la fonctionnalité <a + href="mod/mod_env.html"><code>mod_env</code></a> pour + contrôler l'environnement. Il est prudent de consulter + les pages de manuel ou les FAQ spécifiques à + votre OS.</p> + + <h3><a id="tips" name="tips">Astuces pour éviter ces + problèmes</a></h3> + + <ul> + <li>utilisez des adresses IP dans les sections + <code><VirtualHost></code></li> + + <li>utilisez des adresses IP dans la clause + <code>Listen</code></li> + + <li>utilisez des adresses IP dans la clause + <code>BindAddress</code></li> + + <li>assurez vous que tous les hôtes virtuels on un + <code>ServerName</code></li> + + <li>créez un serveur <code><VirtualHost + _default_:*></code> qui ne sert aucune page.</li> + </ul> + + <h3>Annexe: Directions futures</h3> + + <p>Cette situation vis-à-vis du DNS est largement + insatisfaisante. Pour Apache 1.2, nous avons travaillé + pour que le serveur puisse continuer à démarrer + dans le cas de l'échec d'une résolution DNS, mais + il est possible que nous puissions en faire plus. Toute + écriture nécessitant l'usage d'adresses IP + explicites dans le fichier de configuration n'est pas + souhaitable dans le contexte Internet actuel où la <a + href="http://www.ietf.org/html.charters/pier-charter.html">rotation + d'adresses</a> est une nécessité.</p> + + <p>Une parade au vol de service serait d'effectuer une + résolution DNS inverse sur l'adresse IP renvoyée + par la résolution directe, et comparer les deux noms. En + cas de non concordance, cet hôte virtuel serait + désactivé. Ceci impliquerait que la + résolution DNS inverse soit correctement + configurée (ce qui reste assez connu des administrateurs + du fait de l'usage commun de la résolution inverse + double par les serveurs FTP et les transposeurs TCP).</p> + + <p>Dans tous les cas, il ne semble pas possible de garantir la + fiabilité du démarrage d'un serveur web + gérant des hôtes virtuels lorsque la + résolution DNS a échoué, sauf si la + définition de ces hôtes utilise des adresses IP + explicites. Une solution partielle consistant à ignorer + certaines portions du fichier de configuration serait encore + pire que ne pas démarrer du tout, dans certains cas + d'exploitation.</p> + + <p>Par l'extension de l'usage de HTTP/1.1, les navigateurs et + proxies fournissent de plus en plus souvent l'en-tête + <code>Host</code>, et il deviendra possible d'éviter + totalement la définition d'hôtes virtuels + basés sur des adresses IP. Dans ce cas, un serveur Web + n'aura plus de résolution DNS à effectuer pendant + la configuration. Mais à la date de Mars 1997, ces + fonctionnalités n'ont pas été suffisament + largement déployées pour pouvoir être + exploitées par des serveurs en situation critique. + <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + </p> + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/dns-caveats.html.html b/usr.sbin/httpd/htdocs/manual/dns-caveats.html.html new file mode 100644 index 00000000000..bd3702e551f --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/dns-caveats.html.html @@ -0,0 +1,231 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Issues Regarding DNS and Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="CENTER">Issues Regarding DNS and Apache</h1> + + <p>This page could be summarized with the statement: <em>don't + require Apache to use DNS for any parsing of the configuration + files</em>. If Apache has to use DNS to parse the configuration + files then your server may be subject to reliability problems + (it might not boot), or denial and theft of service attacks + (including users able to steal hits from other users).</p> + + <h3>A Simple Example</h3> + Consider this configuration snippet: + + <blockquote> +<pre> + <VirtualHost www.abc.dom> + ServerAdmin webgirl@abc.dom + DocumentRoot /www/abc + </VirtualHost> +</pre> + </blockquote> + + <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 <strong>will not be + configured</strong>. It won't be able to respond to any hits to + this virtual host (prior to Apache version 1.2 the server would + not even boot).</p> + + <p>Suppose that <code>www.abc.dom</code> has address 10.0.0.1. + Then consider this configuration snippet:</p> + + <blockquote> +<pre> + <VirtualHost 10.0.0.1> + ServerAdmin webgirl@abc.dom + DocumentRoot /www/abc + </VirtualHost> +</pre> + </blockquote> + + <p>Now Apache needs to use reverse DNS to find the + <code>ServerName</code> 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.</p> + + <p>Here is a snippet that avoids both of these problems.</p> + + <blockquote> +<pre> + <VirtualHost 10.0.0.1> + ServerName www.abc.dom + ServerAdmin webgirl@abc.dom + DocumentRoot /www/abc + </VirtualHost> +</pre> + </blockquote> + + <h3>Denial of Service</h3> + + <p>There are (at least) two forms that denial of service can + come in. If you are running a version of Apache prior to + version 1.2 then your server will not even boot if one of the + two DNS lookups mentioned above fails for any of your virtual + hosts. In some cases this DNS lookup may not even be under your + control. For example, if <code>abc.dom</code> is one of your + customers and they control their own DNS then they can force + your (pre-1.2) server to fail while booting simply by deleting + the <code>www.abc.dom</code> record.</p> + + <p>Another form is far more insidious. Consider this + configuration snippet:</p> + + <blockquote> +<pre> + <VirtualHost www.abc.dom> + ServerAdmin webgirl@abc.dom + DocumentRoot /www/abc + </VirtualHost> +</pre> + </blockquote> + + <blockquote> +<pre> + <VirtualHost www.def.dom> + ServerAdmin webguy@def.dom + DocumentRoot /www/def + </VirtualHost> +</pre> + </blockquote> + + <p>Suppose that you've assigned 10.0.0.1 to + <code>www.abc.dom</code> and 10.0.0.2 to + <code>www.def.dom</code>. Furthermore, suppose that + <code>def.com</code> has control of their own DNS. With this + config you have put <code>def.com</code> into a position where + they can steal all traffic destined to <code>abc.com</code>. To + do so, all they have to do is set <code>www.def.dom</code> to + 10.0.0.1. Since they control their own DNS you can't stop them + from pointing the <code>www.def.com</code> record wherever they + wish.</p> + + <p>Requests coming in to 10.0.0.1 (including all those where + users typed in URLs of the form + <code>http://www.abc.dom/whatever</code>) will all be served by + the <code>def.com</code> virtual host. To better understand why + this happens requires a more in-depth discussion of how Apache + matches up incoming requests with the virtual host that will + serve it. A rough document describing this <a + href="vhosts/details.html">is available</a>.</p> + + <h3>The "main server" Address</h3> + + <p>The addition of <a href="vhosts/name-based.html">name-based + virtual host support</a> in Apache 1.1 requires Apache to know + the IP address(es) of the host that httpd is running on. To get + this address it uses either the global <code>ServerName</code> + (if present) or calls the C function <code>gethostname</code> + (which should return the same as typing "hostname" at the + command prompt). Then it performs a DNS lookup on this address. + At present there is no way to avoid this lookup.</p> + + <p>If you fear that this lookup might fail because your DNS + server is down then you can insert the hostname in + <code>/etc/hosts</code> (where you probably already have it so + that the machine can boot properly). Then ensure that your + machine is configured to use <code>/etc/hosts</code> in the + event that DNS fails. Depending on what OS you are using this + might be accomplished by editing <code>/etc/resolv.conf</code>, + or maybe <code>/etc/nsswitch.conf</code>.</p> + + <p>If your server doesn't have to perform DNS for any other + reason then you might be able to get away with running Apache + with the <code>HOSTRESORDER</code> environment variable set to + "local". This all depends on what OS and resolver libraries you + are using. It also affects CGIs unless you use <a + href="mod/mod_env.html"><code>mod_env</code></a> to control the + environment. It's best to consult the man pages or FAQs for + your OS.</p> + + <h3><a id="tips" name="tips">Tips to Avoid these + problems</a></h3> + + <ul> + <li>use IP addresses in <code><VirtualHost></code></li> + + <li>use IP addresses in <code>Listen</code></li> + + <li>use IP addresses in <code>BindAddress</code></li> + + <li>ensure all virtual hosts have an explicit + <code>ServerName</code></li> + + <li>create a <code><VirtualHost _default_:*></code> + server that has no pages to serve</li> + </ul> + + <h3>Appendix: Future Directions</h3> + + <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 renumbering is a necessity.</p> + + <p>A possible work around to the theft of service attack + described above would be to perform a reverse DNS lookup on the + ip address returned by the forward lookup and compare the two + names. In the event of a mismatch the virtualhost would be + disabled. This would require reverse DNS to be configured + properly (which is something that most admins are familiar with + because of the common use of "double-reverse" DNS lookups by + FTP servers and TCP wrappers).</p> + + <p>In any event it doesn't seem possible to reliably boot a + virtual-hosted web server when DNS has failed unless IP + addresses are used. Partial solutions such as disabling + portions of the configuration might be worse than not booting + at all depending on what the webserver is supposed to + accomplish.</p> + + <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. <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + </p> + </body> +</html> + + + diff --git a/usr.sbin/httpd/htdocs/manual/env.html.en b/usr.sbin/httpd/htdocs/manual/env.html.en new file mode 100644 index 00000000000..b01b47af28b --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/env.html.en @@ -0,0 +1,342 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Environment Variables in Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="center">Environment Variables in Apache</h1> + + <p>The Apache HTTP Server provides a mechanism for storing + information in named variables that are called <em>environment + variables</em>. This information can be used to control various + operations such as logging or access control. The variables are + also used as a mechanism to communicate with external programs + such as CGI scripts. This document discusses different ways to + manipulate and use these variables.</p> + + <p>Although these variables are referred to as <em>environment + variables</em>, they are not the same as the environment + variables controlled by the underlying operating system. + Instead, these variables are stored and manipulated in an + internal Apache structure. They only become actual operating + system environment variables when they are provided to CGI + scripts and Server Side Include scripts. If you wish to + manipulate the operating system environment under which the + server itself runs, you must use the standard environment + manipulation mechanisms provided by your operating system + shell.</p> + + <ul> + <li><a href="#setting">Setting Environment Variables</a></li> + + <li><a href="#using">Using Environment Variables</a></li> + + <li><a href="#special">Special Purpose Environment + Variables</a></li> + + <li><a href="#examples">Examples</a></li> + </ul> + <hr /> + + <h2><a id="setting" name="setting">Setting Environment + Variables</a></h2> + + <table border="1"> + <tr> + <td valign="top"><strong>Related Modules</strong><br /> + <br /> + <a href="mod/mod_env.html">mod_env</a><br /> + <a href="mod/mod_rewrite.html">mod_rewrite</a><br /> + <a href="mod/mod_setenvif.html">mod_setenvif</a><br /> + <a href="mod/mod_unique_id.html">mod_unique_id</a><br /> + </td> + + <td valign="top"><strong>Related Directives</strong><br /> + <br /> + <a + href="mod/mod_setenvif.html#BrowserMatch">BrowserMatch</a><br /> + <a + href="mod/mod_setenvif.html#BrowserMatchNoCase">BrowserMatchNoCase</a><br /> + <a href="mod/mod_env.html#passenv">PassEnv</a><br /> + <a + href="mod/mod_rewrite.html#RewriteRule">RewriteRule</a><br /> + <a href="mod/mod_env.html#setenv">SetEnv</a><br /> + <a + href="mod/mod_setenvif.html#SetEnvIf">SetEnvIf</a><br /> + <a + href="mod/mod_setenvif.html#SetEnvIfNoCase">SetEnvIfNoCase</a><br /> + <a href="mod/mod_env.html#unsetenv">UnsetEnv</a><br /> + </td> + </tr> + </table> + + <h3>Basic Environment Manipulation</h3> + + <p>The most basic way to set an environment variable in Apache + is using the unconditional <code>SetEnv</code> directive. + Variables may also be passed from the environment of the shell + which started the server using the <code>PassEnv</code> + directive.</p> + + <h3>Conditional Per-Request Settings</h3> + + <p>For additional flexibility, the directives provided by + mod_setenvif allow environment variables to be set on a + per-request basis, conditional on characteristics of particular + requests. For example, a variable could be set only when a + specific browser (User-Agent) is making a request, or only when + a specific Referer [sic] header is found. Even more flexibility + is available through the mod_rewrite's <code>RewriteRule</code> + which uses the <code>[E=...]</code> option to set environment + variables.</p> + + <h3>Unique Identifiers</h3> + + <p>Finally, mod_unique_id sets the environment variable + <code>UNIQUE_ID</code> for each request to a value which is + guaranteed to be unique across "all" requests under very + specific conditions.</p> + + <h3>Standard CGI Variables</h3> + + <p>In addition to all environment variables set within the + Apache configuration and passed from the shell, CGI scripts and + SSI pages are provided with a set of environment variables + containing meta-information about the request as required by + the <a href="misc/FAQ.html#cgi-spec">CGI specification</a>.</p> + + <h3>Some Caveats</h3> + + <ul> + <li>It is not possible to override or change the standard CGI + variables using the environment manipulation directives.</li> + + <li>When <a href="suexec.html">suexec</a> is used to launch + CGI scripts, the environment will be cleaned down to a set of + <em>safe</em> variables before CGI scripts are launched. The + list of <em>safe</em> variables is defined at compile-time in + <code>suexec.c</code>.</li> + + <li>For portability reasons, the names of environment + variables may contain only letters, numbers, and the + underscore character. In addition, the first character may + not be a number. Characters which do not match this + restriction will be replaced by an underscore when passed to + CGI scripts and SSI pages.</li> + </ul> + <hr /> + + <h2><a id="using" name="using">Using Environment + Variables</a></h2> + + <table border="1"> + <tr> + <td valign="top"><strong>Related Modules</strong><br /> + <br /> + <a href="mod/mod_access.html">mod_access</a><br /> + <a href="mod/mod_cgi.html">mod_cgi</a><br /> + <a href="mod/mod_include.html">mod_include</a><br /> + <a href="mod/mod_log_config.html">mod_log_config</a><br /> + <a href="mod/mod_rewrite.html">mod_rewrite</a><br /> + </td> + + <td valign="top"><strong>Related Directives</strong><br /> + <br /> + <a href="mod/mod_access.html#allow">Allow</a><br /> + <a + href="mod/mod_log_config.html#customlog">CustomLog</a><br /> + <a href="mod/mod_access.html#deny">Deny</a><br /> + <a + href="mod/mod_log_config.html#logformat">LogFormat</a><br /> + <a + href="mod/mod_rewrite.html#RewriteCond">RewriteCond</a><br /> + <a + href="mod/mod_rewrite.html#RewriteRule">RewriteRule</a><br /> + </td> + </tr> + </table> + + <h3>CGI Scripts</h3> + + <p>One of the primary uses of environment variables is to + communicate information to CGI scripts. As discussed above, the + environment passed to CGI scripts includes standard + meta-information about the request in addition to any variables + set within the Apache configuration. For more details, see the + <a href="howto/cgi.html">CGI tutorial</a>.</p> + + <h3>SSI Pages</h3> + + <p>Server-parsed (SSI) documents processed by mod_include's + <code>server-parsed</code> handler can print environment + variables using the <code>echo</code> element, and can use + environment variables in flow control elements to makes parts + of a page conditional on characteristics of a request. Apache + also provides SSI pages with the standard CGI environment + variables as discussed above. For more details, see the <a + href="howto/ssi.html">SSI tutorial</a>.</p> + + <h3>Access Control</h3> + + <p>Access to the server can be controlled based on the value of + environment variables using the <code>allow from env=</code> + and <code>deny from env=</code> directives. In combination with + <code>SetEnvIf</code>, this allows for flexible control of + access to the server based on characteristics of the client. + For example, you can use these directives to deny access to a + particular browser (User-Agent).</p> + + <h3>Conditional Logging</h3> + + <p>Environment variables can be logged in the access log using + the <code>LogFormat</code> option <code>%e</code>. In addition, + the decision on whether or not to log requests can be made + based on the status of environment variables using the + conditional form of the <code>CustomLog</code> directive. In + combination with <code>SetEnvIf</code> this allows for flexible + control of which requests are logged. For example, you can + choose not to log requests for filenames ending in + <code>gif</code>, or you can choose to only log requests from + clients which are outside your subnet.</p> + + <h3>URL Rewriting</h3> + + <p>The <code>%{ENV:...}</code> form of <em>TestString</em> in + the <code>RewriteCond</code> allows mod_rewrite's rewrite + engine to make decisions conditional on environment variables. + Note that the variables accessible in mod_rewrite without the + <code>ENV:</code> prefix are not actually environment + variables. Rather, they are variables special to mod_rewrite + which cannot be accessed from other modules.</p> + <hr /> + + <h2><a id="special" name="special">Special Purpose Environment + Variables</a></h2> + + <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>downgrade-1.0</h2> + + <p>This forces the request to be treated as a HTTP/1.0 request + even if it was in a later dialect.</p> + + <h2>force-no-vary</h2> + + <p>This causes any <code>Vary</code> fields to be removed from + the response header before it is sent back to the client. Some + clients don't interpret this field correctly (see the <a + href="misc/known_client_problems.html">known client + problems</a> page); setting this variable can work around this + problem. Setting this variable also implies + <strong>force-response-1.0</strong>.</p> + + <h2>force-response-1.0</h2> + + <p>This forces an HTTP/1.0 response when set. It was originally + implemented as a result of a problem with AOL's proxies. Some + clients may not behave correctly when given an HTTP/1.1 + response, and this can be used to interoperate with them.</p> + + <h2>nokeepalive</h2> + + <p>This disables <a + href="mod/core.html#keepalive">KeepAlive</a> when set.</p> + <hr /> + + <h2><a id="examples" name="examples">Examples</a></h2> + + <h3>Changing protocol behavior with misbehaving clients</h3> + + <p>We recommend that the following lines be included in + httpd.conf to deal with known client problems.</p> +<pre> +# +# The following directives modify normal HTTP response behavior. +# The first directive disables keepalive for Netscape 2.x and browsers that +# spoof it. There are known problems with these browser implementations. +# The second directive is for Microsoft Internet Explorer 4.0b2 +# which has a broken HTTP/1.1 implementation and does not properly +# support keepalive when it is used on 301 or 302 (redirect) responses. +# +BrowserMatch "Mozilla/2" nokeepalive +BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 + +# +# The following directive disables HTTP/1.1 responses to browsers which +# are in violation of the HTTP/1.0 spec by not being able to grok a +# basic 1.1 response. +# +BrowserMatch "RealPlayer 4\.0" force-response-1.0 +BrowserMatch "Java/1\.0" force-response-1.0 +BrowserMatch "JDK/1\.0" force-response-1.0 +</pre> + + <h3>Do not log requests for images in the access log</h3> + + <p>This example keeps requests for images from appearing in the + access log. It can be easily modified to prevent logging of + particular directories, or to prevent logging of requests + coming from particular hosts.</p> +<pre> + SetEnvIf Request_URI \.gif image-request + SetEnvIf Request_URI \.jpg image-request + SetEnvIf Request_URI \.png image-request + CustomLog logs/access_log env=!image-request +</pre> + + <h3>Prevent "Image Theft"</h3> + + <p>This example shows how to keep people not on your server + from using images on your server as inline-images on their + pages. This is not a recommended configuration, but it can work + in limited circumstances. We assume that all your images are in + a directory called /web/images.</p> +<pre> + SetEnvIf Referer "^http://www.example.com/" local_referal + # Allow browsers that do not send Referer info + SetEnvIf Referer "^$" local_referal + <Directory /web/images> + Order Deny,Allow + Deny from all + Allow from env=local_referal + </Directory> +</pre> + + <p><em>Note:</em> spelling of 'referer' and 'referal' is + intentional.</p> + + <p>For more information about this technique, see the + ApacheToday tutorial " <a + href="http://apachetoday.com/news_story.php3?ltsn=2000-06-14-002-01-PS"> + Keeping Your Images from Adorning Other Sites</a>".</p> + <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/env.html.html b/usr.sbin/httpd/htdocs/manual/env.html.html new file mode 100644 index 00000000000..80f44cad6db --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/env.html.html @@ -0,0 +1,346 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Environment Variables in Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="center">Environment Variables in Apache</h1> + + <p>The Apache HTTP Server provides a mechanism for storing + information in named variables that are called <em>environment + variables</em>. This information can be used to control various + operations such as logging or access control. The variables are + also used as a mechanism to communicate with external programs + such as CGI scripts. This document discusses different ways to + manipulate and use these variables.</p> + + <p>Although these variables are referred to as <em>environment + variables</em>, they are not the same as the environment + variables controlled by the underlying operating system. + Instead, these variables are stored and manipulated in an + internal Apache structure. They only become actual operating + system environment variables when they are provided to CGI + scripts and Server Side Include scripts. If you wish to + manipulate the operating system environment under which the + server itself runs, you must use the standard environment + manipulation mechanisms provided by your operating system + shell.</p> + + <ul> + <li><a href="#setting">Setting Environment Variables</a></li> + + <li><a href="#using">Using Environment Variables</a></li> + + <li><a href="#special">Special Purpose Environment + Variables</a></li> + + <li><a href="#examples">Examples</a></li> + </ul> + <hr /> + + <h2><a id="setting" name="setting">Setting Environment + Variables</a></h2> + + <table border="1"> + <tr> + <td valign="top"><strong>Related Modules</strong><br /> + <br /> + <a href="mod/mod_env.html">mod_env</a><br /> + <a href="mod/mod_rewrite.html">mod_rewrite</a><br /> + <a href="mod/mod_setenvif.html">mod_setenvif</a><br /> + <a href="mod/mod_unique_id.html">mod_unique_id</a><br /> + </td> + + <td valign="top"><strong>Related Directives</strong><br /> + <br /> + <a + href="mod/mod_setenvif.html#BrowserMatch">BrowserMatch</a><br /> + <a + href="mod/mod_setenvif.html#BrowserMatchNoCase">BrowserMatchNoCase</a><br /> + <a href="mod/mod_env.html#passenv">PassEnv</a><br /> + <a + href="mod/mod_rewrite.html#RewriteRule">RewriteRule</a><br /> + <a href="mod/mod_env.html#setenv">SetEnv</a><br /> + <a + href="mod/mod_setenvif.html#SetEnvIf">SetEnvIf</a><br /> + <a + href="mod/mod_setenvif.html#SetEnvIfNoCase">SetEnvIfNoCase</a><br /> + <a href="mod/mod_env.html#unsetenv">UnsetEnv</a><br /> + </td> + </tr> + </table> + + <h3>Basic Environment Manipulation</h3> + + <p>The most basic way to set an environment variable in Apache + is using the unconditional <code>SetEnv</code> directive. + Variables may also be passed from the environment of the shell + which started the server using the <code>PassEnv</code> + directive.</p> + + <h3>Conditional Per-Request Settings</h3> + + <p>For additional flexibility, the directives provided by + mod_setenvif allow environment variables to be set on a + per-request basis, conditional on characteristics of particular + requests. For example, a variable could be set only when a + specific browser (User-Agent) is making a request, or only when + a specific Referer [sic] header is found. Even more flexibility + is available through the mod_rewrite's <code>RewriteRule</code> + which uses the <code>[E=...]</code> option to set environment + variables.</p> + + <h3>Unique Identifiers</h3> + + <p>Finally, mod_unique_id sets the environment variable + <code>UNIQUE_ID</code> for each request to a value which is + guaranteed to be unique across "all" requests under very + specific conditions.</p> + + <h3>Standard CGI Variables</h3> + + <p>In addition to all environment variables set within the + Apache configuration and passed from the shell, CGI scripts and + SSI pages are provided with a set of environment variables + containing meta-information about the request as required by + the <a href="misc/FAQ.html#cgi-spec">CGI specification</a>.</p> + + <h3>Some Caveats</h3> + + <ul> + <li>It is not possible to override or change the standard CGI + variables using the environment manipulation directives.</li> + + <li>When <a href="suexec.html">suexec</a> is used to launch + CGI scripts, the environment will be cleaned down to a set of + <em>safe</em> variables before CGI scripts are launched. The + list of <em>safe</em> variables is defined at compile-time in + <code>suexec.c</code>.</li> + + <li>For portability reasons, the names of environment + variables may contain only letters, numbers, and the + underscore character. In addition, the first character may + not be a number. Characters which do not match this + restriction will be replaced by an underscore when passed to + CGI scripts and SSI pages.</li> + </ul> + <hr /> + + <h2><a id="using" name="using">Using Environment + Variables</a></h2> + + <table border="1"> + <tr> + <td valign="top"><strong>Related Modules</strong><br /> + <br /> + <a href="mod/mod_access.html">mod_access</a><br /> + <a href="mod/mod_cgi.html">mod_cgi</a><br /> + <a href="mod/mod_include.html">mod_include</a><br /> + <a href="mod/mod_log_config.html">mod_log_config</a><br /> + <a href="mod/mod_rewrite.html">mod_rewrite</a><br /> + </td> + + <td valign="top"><strong>Related Directives</strong><br /> + <br /> + <a href="mod/mod_access.html#allow">Allow</a><br /> + <a + href="mod/mod_log_config.html#customlog">CustomLog</a><br /> + <a href="mod/mod_access.html#deny">Deny</a><br /> + <a + href="mod/mod_log_config.html#logformat">LogFormat</a><br /> + <a + href="mod/mod_rewrite.html#RewriteCond">RewriteCond</a><br /> + <a + href="mod/mod_rewrite.html#RewriteRule">RewriteRule</a><br /> + </td> + </tr> + </table> + + <h3>CGI Scripts</h3> + + <p>One of the primary uses of environment variables is to + communicate information to CGI scripts. As discussed above, the + environment passed to CGI scripts includes standard + meta-information about the request in addition to any variables + set within the Apache configuration. For more details, see the + <a href="howto/cgi.html">CGI tutorial</a>.</p> + + <h3>SSI Pages</h3> + + <p>Server-parsed (SSI) documents processed by mod_include's + <code>server-parsed</code> handler can print environment + variables using the <code>echo</code> element, and can use + environment variables in flow control elements to makes parts + of a page conditional on characteristics of a request. Apache + also provides SSI pages with the standard CGI environment + variables as discussed above. For more details, see the <a + href="howto/ssi.html">SSI tutorial</a>.</p> + + <h3>Access Control</h3> + + <p>Access to the server can be controlled based on the value of + environment variables using the <code>allow from env=</code> + and <code>deny from env=</code> directives. In combination with + <code>SetEnvIf</code>, this allows for flexible control of + access to the server based on characteristics of the client. + For example, you can use these directives to deny access to a + particular browser (User-Agent).</p> + + <h3>Conditional Logging</h3> + + <p>Environment variables can be logged in the access log using + the <code>LogFormat</code> option <code>%e</code>. In addition, + the decision on whether or not to log requests can be made + based on the status of environment variables using the + conditional form of the <code>CustomLog</code> directive. In + combination with <code>SetEnvIf</code> this allows for flexible + control of which requests are logged. For example, you can + choose not to log requests for filenames ending in + <code>gif</code>, or you can choose to only log requests from + clients which are outside your subnet.</p> + + <h3>URL Rewriting</h3> + + <p>The <code>%{ENV:...}</code> form of <em>TestString</em> in + the <code>RewriteCond</code> allows mod_rewrite's rewrite + engine to make decisions conditional on environment variables. + Note that the variables accessible in mod_rewrite without the + <code>ENV:</code> prefix are not actually environment + variables. Rather, they are variables special to mod_rewrite + which cannot be accessed from other modules.</p> + <hr /> + + <h2><a id="special" name="special">Special Purpose Environment + Variables</a></h2> + + <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>downgrade-1.0</h2> + + <p>This forces the request to be treated as a HTTP/1.0 request + even if it was in a later dialect.</p> + + <h2>force-no-vary</h2> + + <p>This causes any <code>Vary</code> fields to be removed from + the response header before it is sent back to the client. Some + clients don't interpret this field correctly (see the <a + href="misc/known_client_problems.html">known client + problems</a> page); setting this variable can work around this + problem. Setting this variable also implies + <strong>force-response-1.0</strong>.</p> + + <h2>force-response-1.0</h2> + + <p>This forces an HTTP/1.0 response when set. It was originally + implemented as a result of a problem with AOL's proxies. Some + clients may not behave correctly when given an HTTP/1.1 + response, and this can be used to interoperate with them.</p> + + <h2>nokeepalive</h2> + + <p>This disables <a + href="mod/core.html#keepalive">KeepAlive</a> when set.</p> + <hr /> + + <h2><a id="examples" name="examples">Examples</a></h2> + + <h3>Changing protocol behavior with misbehaving clients</h3> + + <p>We recommend that the following lines be included in + httpd.conf to deal with known client problems.</p> +<pre> +# +# The following directives modify normal HTTP response behavior. +# The first directive disables keepalive for Netscape 2.x and browsers that +# spoof it. There are known problems with these browser implementations. +# The second directive is for Microsoft Internet Explorer 4.0b2 +# which has a broken HTTP/1.1 implementation and does not properly +# support keepalive when it is used on 301 or 302 (redirect) responses. +# +BrowserMatch "Mozilla/2" nokeepalive +BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 + +# +# The following directive disables HTTP/1.1 responses to browsers which +# are in violation of the HTTP/1.0 spec by not being able to grok a +# basic 1.1 response. +# +BrowserMatch "RealPlayer 4\.0" force-response-1.0 +BrowserMatch "Java/1\.0" force-response-1.0 +BrowserMatch "JDK/1\.0" force-response-1.0 +</pre> + + <h3>Do not log requests for images in the access log</h3> + + <p>This example keeps requests for images from appearing in the + access log. It can be easily modified to prevent logging of + particular directories, or to prevent logging of requests + coming from particular hosts.</p> +<pre> + SetEnvIf Request_URI \.gif image-request + SetEnvIf Request_URI \.jpg image-request + SetEnvIf Request_URI \.png image-request + CustomLog logs/access_log env=!image-request +</pre> + + <h3>Prevent "Image Theft"</h3> + + <p>This example shows how to keep people not on your server + from using images on your server as inline-images on their + pages. This is not a recommended configuration, but it can work + in limited circumstances. We assume that all your images are in + a directory called /web/images.</p> +<pre> + SetEnvIf Referer "^http://www.example.com/" local_referal + # Allow browsers that do not send Referer info + SetEnvIf Referer "^$" local_referal + <Directory /web/images> + Order Deny,Allow + Deny from all + Allow from env=local_referal + </Directory> +</pre> + + <p><em>Note:</em> spelling of 'referer' and 'referal' is + intentional.</p> + + <p>For more information about this technique, see the + ApacheToday tutorial " <a + href="http://apachetoday.com/news_story.php3?ltsn=2000-06-14-002-01-PS"> + Keeping Your Images from Adorning Other Sites</a>".</p> + <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + </body> +</html> + + + diff --git a/usr.sbin/httpd/htdocs/manual/env.html.ja.jis b/usr.sbin/httpd/htdocs/manual/env.html.ja.jis new file mode 100644 index 00000000000..8a04319c257 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/env.html.ja.jis @@ -0,0 +1,329 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + + <title>Apache $B$N4D6-JQ?t(B</title> + </head> + <!-- English revision: 1.16 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="center">Apache $B$K$*$1$k4D6-JQ?t(B</h1> + + <p>$BB?$/$N%*%Z%l!<%F%#%s%0%7%9%F%`$O!"(B<em>$B4D6-JQ?t(B</em>$B$H8F$P$l$k!"(B + $B>pJs$NJ]B8!"EAC#$N$?$a$N5!G=$rDs6!$7$F$$$^$9!#F0:nJ}K!$r@)8f$7$?$j!"(B + CGI $B%9%/%j%W%H$N$h$&$JB>$N%W%m%0%i%`$HDL?.$7$?$j$9$k$?$a$K!"(BApache + $B$OB?$/$NJ}K!$G4D6-JQ?t$r;H$$$^$9!#$3$NJ8=q$G$O!"(BApache + $B$K$*$1$k4D6-JQ?t$N;HMQK!$r$$$/$D$+@bL@$7$^$9!#(B + </p> + + + <ul> + <li><a href="#setting">$B4D6-JQ?t$N@_Dj(B</a></li> + + <li><a href="#using">$B4D6-JQ?t$N;HMQ(B</a></li> + + <li><a href="#special">$BFCJL$JL\E*$N4D6-JQ?t(B</a></li> + + <li><a href="#examples">$BNc(B</a></li> + </ul> + <hr /> + + <h2><a id="setting" name="setting">$B4D6-JQ?t$N@_Dj(B</a></h2> + + + <table border="1"> + <tr> + <td valign="top"><strong>$B4XO"%b%8%e!<%k(B</strong><br /> + <br /> + <a href="mod/mod_env.html">mod_env</a><br /> + <a href="mod/mod_rewrite.html">mod_rewrite</a><br /> + <a href="mod/mod_setenvif.html">mod_setenvif</a><br /> + <a href="mod/mod_unique_id.html">mod_unique_id</a><br /> + </td> + + <td valign="top"><strong>$B4XO"%G%#%l%/%F%#%V(B</strong><br /> + <br /> + <a + href="mod/mod_setenvif.html#BrowserMatch">BrowserMatch</a><br /> + <a + href="mod/mod_setenvif.html#BrowserMatchNoCase">BrowserMatchNoCase</a><br /> + <a href="mod/mod_env.html#passenv">PassEnv</a><br /> + <a + href="mod/mod_rewrite.html#RewriteRule">RewriteRule</a><br /> + <a href="mod/mod_env.html#setenv">SetEnv</a><br /> + <a + href="mod/mod_setenvif.html#SetEnvIf">SetEnvIf</a><br /> + <a + href="mod/mod_setenvif.html#SetEnvIfNoCase">SetEnvIfNoCase</a><br /> + <a href="mod/mod_env.html#unsetenv">UnsetEnv</a><br /> + </td> + </tr> + </table> + + <h3>$B4pK\E*$J4D6-$NA`:n(B</h3> + + <p>Apache $B$K$*$$$F4D6-JQ?t$r@_Dj$9$k0lHV4pK\E*$JJ}K!$O!"(B + $BL5>r7o$K4D6-JQ?t$r@_Dj$9$k(B <code>SetEnv</code> + $B%G%#%l%/%F%#%V$r;HMQ$9$k$3$H$G$9!#(B <code>PassEnv</code> + $B%G%#%l%/%F%#%V$K$h$j!"(BApache $B$,5/F0$5$l$?%7%'%k$N(B + $B4D6-JQ?t$rEO$9$3$H$b$G$-$^$9!#(B</p> + + <h3>$B%j%/%(%9%HKh$K>r7o$K4p$E$$$F@_Dj$9$k(B</h3> + + <p>$B$h$j=@Fp@-$r9b$a$k$?$a$K!"(Bmod_setenvif + $B$GDs6!$5$l$F$$$k%G%#%l%/%F%#%V$r;HMQ$9$k$3$H$G!"%j%/%(%9%H$N(B + $BFC@-$K4p$E$$$F4D6-JQ?t$r@_Dj$9$k$3$H$,$G$-$^$9!#Nc$($P!"FCDj$N%V%i%&%6(B + (User-Agent) $B$N%j%/%(%9%H$dFCDj$N(B Referer [$B0U?^E*$JDV$j$G$9(B] + ($BLuCm(B: $B@5$7$$DV$j$O(B referrer $B$G$9$,!"(BHTTP $B$N;EMM$G$O(B Referer + $B$H$J$C$F$$$^$9(B) $B%X%C%@$,8+$D$+$C$?$H$-$N$_JQ?t$r@_Dj$9$k$3$H$,$G$-$^$9!#(B + mod_rewrite $B$N(B <code>RewriteRule</code> $B%G%#%l%/%F%#%V$K$*$$$F(B + $B4D6-JQ?t$r@_Dj$9$k(B <code>[E=...]</code> $B%*%W%7%g%s$r;HMQ$9$k$3$H$G!"(B + $B$h$j=@Fp$J@_Dj$r9T$J$&$3$H$,$G$-$^$9!#(B</p> + + <h3>$B0l0U$J<1JL;R(B</h3> + + <p>mod_unique_id $B$O!"Hs>o$K8B$i$l$?>r7o$N2<$G(B + $B!V$9$Y$F!W$N%j%/%(%9%H$K$D$$$F!"0l0U$G$"$k$3$H$,J]>Z$5$l$F$$$kCM$r4D6-JQ?t(B + <code>UNIQUE_ID</code> $B$K@_Dj$7$^$9!#(B + </p> + + <h3>$BI8=`(B CGI $BJQ?t(B</h3> + + <p>Apache $B$N@_Dj%U%!%$%k$G@_Dj$5$l$?4D6-JQ?t$H%7%'%k$+$iEO$5$l$k(B + $B4D6-JQ?t$K2C$($F!"(BCGI $B%9%/%j%W%H$H(B SSI $B%Z!<%8$K$O(B <a + href="misc/FAQ.html#cgi-spec">CGI $B$N;EMM(B</a>$B$GMW5a$5$l$F$$$k!"(B + $B%j%/%(%9%H$N%a%?>pJs$r;}$C$?4D6-JQ?t$NAH$,Ds6!$5$l$^$9!#(B + </p> + + <h3>$B$$$/$D$+$NCm0U(B</h3> + + <ul> + <li>$B4D6-$rA`:n$9$k%G%#%l%/%F%#%V$r;H$C$FI8=`(B CGI + $BJQ?t$r>e=q$-$7$?$jJQ99$7$?$j$9$k$3$H$O$G$-$^$;$s!#(B</li> + + <li>CGI $B%9%/%j%W%H$r5/F0$9$k$?$a$K(B <a href="suexec.html">suexec</a> + $B$,;HMQ$5$l$F$$$k>l9g!"(BCGI $B%9%/%j%W%H$,5/F0$9$k$?$a$K!"4D6-JQ?t$O(B<em + >$B0BA4(B</em>$B$J4D6-JQ?t$NAH$K@0M}$5$l$^$9!#(B + $B$3$N0BA4$J4D6-JQ?t$N=89g$O!"%3%s%Q%$%k;~$K(B <code>suexec.c</code> + $B$GDj5A$5$l$^$9!#(B</li> + + <li>$B0\?"@-$N$?$a$K!"4D6-JQ?t$NL>A0$O%"%k%U%!%Y%C%H!"(B + $B?t;z$H%"%s%@!<%9%3%"(B ($BLuCm(B: '_') $B$@$1$+$i@.$j$^$9!#(B + $B$5$i$K!":G=i$NJ8;z$O?t;z$G$"$C$F$O$$$1$^$;$s!#(B + $B$3$N@)8B$K9g$o$J$$J8;z$O(B CGI $B%9%/%j%W%H$H(B SSI + $B%Z!<%8$KEO$5$l$k$H$-$K%"%s%@!<%9%3%"$KCV49$5$l$^$9!#(B + </li> + </ul> + <hr /> + + <h2><a id="using" name="using">$B4D6-JQ?t$N;HMQ(B</a></h2> + + + <table border="1"> + <tr> + <td valign="top"><strong>$B4XO"%b%8%e!<%k(B</strong><br /> + <br /> + <a href="mod/mod_access.html">mod_access</a><br /> + <a href="mod/mod_cgi.html">mod_cgi</a><br /> + <a href="mod/mod_include.html">mod_include</a><br /> + <a href="mod/mod_log_config.html">mod_log_config</a><br /> + <a href="mod/mod_rewrite.html">mod_rewrite</a><br /> + </td> + + <td valign="top"><strong>$B4XO"%G%#%l%/%F%#%V(B</strong><br /> + <br /> + <a href="mod/mod_access.html#allow">Allow</a><br /> + <a + href="mod/mod_log_config.html#customlog">CustomLog</a><br /> + <a href="mod/mod_access.html#deny">Deny</a><br /> + <a + href="mod/mod_log_config.html#logformat">LogFormat</a><br /> + <a + href="mod/mod_rewrite.html#RewriteCond">RewriteCond</a><br /> + <a + href="mod/mod_rewrite.html#RewriteRule">RewriteRule</a><br /> + </td> + </tr> + </table> + + <h3>CGI $B%9%/%j%W%H(B</h3> + + <p>$B4D6-JQ?t$N<g$JMxMQK!$N0l$D$O!"(BCGI $B%9%/%j%W%H$K>pJs$rEA$($k$3$H$G$9!#(B + $B>e$G@bL@$5$l$F$$$k$h$&$K!"(BCGI $B%9%/%j%W%H$KEO$5$l$k4D6-JQ?t$O(B Apache + $B$N@_Dj$K$h$j@_Dj$5$l$kJQ?t$K2C$($F!"%j%/%(%9%H$NI8=`$N%a%?>pJs$r4^$s$G$$$^$9!#(B + $B>\:Y$O(B <a href="howto/cgi.html">CGI $B%A%e!<%H%j%"%k(B</a> $B$r;2>H$7$F$/$@$5$$!#(B + </p> + + + <h3>SSI $B%Z!<%8(B</h3> + + <p> + mod_include $B$N(B <code>server-parsed</code> $B%O%s%I%i$G=hM}$5$l$k(B + server-parsed (SSI) $B%I%-%e%a%s%H$G$O!"(B<code>echo</code> + $BMWAG$r;HMQ$9$k$H4D6-JQ?t$,=PNO$5$l$^$9!#(B + $B$^$?!"%Z!<%8$N$"$kItJ,$,%j%/%(%9%H$N@-<A$K1~$8$FJQ99$5$l$k$h$&$K!"(B + $B4D6-JQ?t$r%U%m!<@)8fMWAG$G;H$&$3$H$,$G$-$^$9!#>\:Y$O(B + <a href="howto/ssi.html">SSI $B%A%e!<%H%j%"%k(B</a> $B$r;2>H$7$F$/$@$5$$!#(B + </p> + + <h3>$B%"%/%;%9@)8f(B</h3> + + <p><code>allow from env=</code> $B%G%#%l%/%F%#%V$H(B <code>deny from env=</code> + $B%G%#%l%/%F%#%V$r;HMQ$7$F!"%5!<%P$X$N%"%/%;%9$r4D6-JQ?t$NCM$G@)8f$9$k$3$H$,$G$-$^$9!#(B + <code>SetEnvIf</code> $B%G%#%l%/%F%#%V$HAH$_9g$o$;$k$3$H$G!"%/%i%$%"%s%H$NFC@-$K4p$E$$$F(B + $B%5!<%P$X$N%"%/%;%9@)8f$r=@Fp$K9T$J$&$3$H$,$G$-$k$h$&$K$J$j$^$9!#(B + $BNc$($P!"$3$l$i$N%G%#%l%/%F%#%V$r;HMQ$7$F!"FCDj$N%V%i%&%6(B (User-Agent) + $B$+$i$N%"%/%;%9$r5qH]$9$k$3$H$,$G$-$^$9!#(B + </p> + + <h3>$B>r7oIU$-%m%05-O?(B</h3> + + <p> + <code>LogFormat</code> $B%G%#%l%/%F%#%V$N%*%W%7%g%s(B <code>%e</code> + $B$r;HMQ$9$k$3$H$G!"4D6-JQ?t$r%"%/%;%9%m%0$K5-O?$9$k$3$H$,$G$-$^$9!#$5$i$K!"(B + <code>CustomLog</code> $B%G%#%l%/%F%#%V$N>r7oJ,4t<0$r;HMQ$9$k$3$H$G!"(B + $B4D6-JQ?t$NCM$K$h$C$F%j%/%(%9%H$r%m%0$K5-O?$9$k$+$I$&$+$r7h$a$k$3$H$,$G$-$^$9!#(B + <code>SetEnvIf</code> $B%G%#%l%/%F%#%V$HAH$_9g$o$;$k$3$H$G!"(B + $B$I$N%j%/%(%9%H$r%m%0$K5-O?$9$k$+$r=@Fp$K@)8f$9$k$3$H$,2DG=$K$J$j$^$9!#Nc$($P!"(B + <code>gif</code> $B$G=*$o$k%U%!%$%kL>$X$N%j%/%(%9%H$O%m%0$K5-O?$7$J$$!"(B + $B0c$&%5%V%M%C%H$N%/%i%$%"%s%H$+$i$N%j%/%(%9%H$@$1$r%m%0$K5-O?$9$k!"$H$$$&A*Br$,2DG=$G$9!#(B + </p> + + <h3>URL $B$N=q$-49$((B</h3> + + <p><code>RewriteCond</code> $B%G%#%l%/%F%#%V$G(B<em>$BI>2AJ8;zNs(B</em>$B$H$7$F(B + <code>%{ENV:...}</code> $B<0$r;XDj$9$k$3$H$G!"(Bmod_rewrite + $B$N=q$-49$(%(%s%8%s$,4D6-JQ?t$K4p$$$F>r7oJ,4t$r9T$J$&$3$H$,$G$-$^$9!#(B + mod_rewrite $B$,;HMQ2DG=$JJQ?t$G(B <code>ENV:</code> $B$,A0$K$D$$$F$$$J$$JQ?t$O!"(B + $B<B:]$O4D6-JQ?t$G$O$J$$$H$$$&$3$H$KCm0U$7$F$/$@$5$$!#(B + $B$=$l$i$OB>$N%b%8%e!<%k$+$i$O;HMQ$G$-$J$$(B mod_rewrite $BMQ$NFCJL$JJQ?t$G$9!#(B + </p> + <hr /> + + <h2><a id="special" name="special">$BFCJL$JL\E*$N4D6-JQ?t(B</a></h2> + + + <p> + $B8_49@-$NLdBj$r2r7h$9$k$?$a$K!"FCDj$N%/%i%$%"%s%H$HDL?.$7$F$$$k$H$-$O(B + Apache $B$NF0:n$rJQ99$G$-$k5!9=$,F3F~$5$l$^$7$?!#$G$-$k$@$1=@Fp$K$9$k$?$a$K!"(B + $B$3$l$i$N5!9=$O4D6-JQ?t$rDj5A$9$k$3$H$G8F$S=P$5$l$^$9!#IaDL$O!"(B + <a href="mod/mod_setenvif.html#browsermatch">BrowserMatch</a> + $B%G%#%l%/%F%#%V$r;H$$$^$9$,!"Nc$($P(B <a href="mod/mod_env.html#setenv" + >SetEnv</a> $B%G%#%l%/%F%#%V$d(B <a href="mod/mod_env.html#passenv" + >PassEnv</a> $B%G%#%l%/%F%#%V$b;HMQ$9$k$3$H$,$G$-$^$9!#(B + </p> + + <h2>downgrade-1.0</h2> + + <p>$B$3$l$r;XDj$9$k$3$H$G!"%j%/%(%9%H$,(B HTTP/1.0 + $B$h$j?7$7$$%W%m%H%3%k$N>l9g$G$b!"(BHTTP/1.0 $B$H$7$F07$o$l$^$9!#(B</p> + + <h2>force-no-vary</h2> + + <p>$B1~Ez%X%C%@$,%/%i%$%"%s%H$KAw$i$l$kA0$K(B <code>Vary</code> + $B%U%#!<%k%I$r<h$j=|$-$^$9!#(B + $B%/%i%$%"%s%H$NCf$K$O$3$N%U%#!<%k%I$r@5$7$/2r<a$7$J$$$b$N$,$"$j$^$9(B + (<a href="misc/known_client_problems.html">$B%/%i%$%"%s%H$N4{CN$NLdBj(B</a> + $B$N%Z!<%8$r;2>H$7$F$/$@$5$$(B)$B!#$3$NJQ?t$r@_Dj$9$k$3$H$G$=$NLdBj$r2sHr(B + $B$9$k$3$H$,$G$-$^$9!#$3$NJQ?t$r@_Dj$9$k$H!"(B<strong>force-response-1.0</strong> + $B$,@_Dj$5$l$?$3$H$K$J$j$^$9!#(B</p> + + <h2>force-response-1.0</h2> + + <p>$B$3$l$,@_Dj$5$l$F$$$k$H!">o$K(B HTTP/1.0 $B$G$N1~Ez$K$J$j$^$9!#$3$N5!G=$O!"(B + $B85!9$O(B AOL $B$N%W%m%-%7$NLdBj$N$?$a$K<BAu$5$l$^$7$?!#%/%i%$%"%s%H$NCf$K$O!"(B + HTTP/1.1 $B$N1~Ez$rJV$5$l$k$H@5$7$/F0:n$7$J$$$b$N$,$"$k$+$b$7$l$^$;$s!#(B + $B$3$N5!G=$r;HMQ$9$k$3$H$G!"$=$N$h$&$J%/%i%$%"%s%H$H$N4V$N8_49@-LdBj$r2r7h$G$-$^$9!#(B</p> + + <h2>nokeepalive</h2> + + <p>$B$3$l$,@_Dj$5$l$F$$$k>l9g$O!"(B<a href="mod/core.html#keepalive" + >KeepAlive</a> $B$r;HMQ$7$J$$$h$&$K$7$^$9!#(B</p> + <hr /> + + <h2><a id="examples" name="examples">$BNc(B</a></h2> + + <h3>$B$*$+$7$J5sF0$r$9$k%/%i%$%"%s%H$KBP$7$F%W%m%H%3%k$NF0:n$rJQ99$9$k(B</h3> + + <p>$B%/%i%$%"%s%H$K4X$9$k4{CN$NLdBj$KBP=h$9$k$?$a$K!"0J2<$N9T$r(B + httpd.conf $B$KF~$l$k$3$H$r?d>)$7$F$$$^$9!#(B</p> +<pre> +# +# The following directives modify normal HTTP response behavior. +# The first directive disables keepalive for Netscape 2.x and browsers that +# spoof it. There are known problems with these browser implementations. +# The second directive is for Microsoft Internet Explorer 4.0b2 +# which has a broken HTTP/1.1 implementation and does not properly +# support keepalive when it is used on 301 or 302 (redirect) responses. +# +BrowserMatch "Mozilla/2" nokeepalive +BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 + +# +# The following directive disables HTTP/1.1 responses to browsers which +# are in violation of the HTTP/1.0 spec by not being able to grok a +# basic 1.1 response. +# +BrowserMatch "RealPlayer 4\.0" force-response-1.0 +BrowserMatch "Java/1\.0" force-response-1.0 +BrowserMatch "JDK/1\.0" force-response-1.0 +</pre> + + <h3>$B2hA|$X$N%j%/%(%9%H$r%"%/%;%9%m%0$K5-O?$7$J$$(B</h3> + + <p>$B$3$NNc$G$O!"2hA|$X$N%j%/%(%9%H$,%"%/%;%9%m%0$K8=$l$J$$$h$&$K$7$^$9!#(B + $B$3$l$rJQ99$9$k$3$H$G!"FCDj$N%G%#%l%/%H%j$N%m%0<}=8$r$d$a$?$j!"(B + $BFCDj$N%[%9%H$+$i$N%j%/%(%9%H$N%m%0<}=8$r$d$a$?$j$9$k$3$H$,4JC1$K$G$-$^$9!#(B + </p> +<pre> + SetEnvIf Request_URI \.gif image-request + SetEnvIf Request_URI \.jpg image-request + SetEnvIf Request_URI \.png image-request + CustomLog logs/access_log env=!image-request +</pre> + + <h3>$B!V2hA|$NEpMQ!W$rKI$0(B</h3> + + <p>$B$3$NNc$O!"JL$N%5!<%P$K$$$k?M$,!"$"$J$?$N%5!<%P$K$"$k2hA|$r(B + inline $B2hA|$H$7$F;HMQ$9$k$3$H$rKI$.$^$9!#(B + $B$3$l$O?d>)$5$l$F$$$k@_Dj$G$O$"$j$^$;$s$,!"$"$k8BDj$5$l$?>u67$G$OM-8z$G$9!#(B + $B$3$3$G$O!"$9$Y$F$N2hA|$O(B /web/images $B$H$$$&%G%#%l%/%H%j$K$"$k$H2>Dj$7$^$9!#(B + </p> +<pre> + SetEnvIf Referer "^http://www.example.com/" local_referal + # Allow browsers that do not send Referer info + SetEnvIf Referer "^$" local_referal + <Directory /web/images> + Order Deny,Allow + Deny from all + Allow from env=local_referal + </Directory> +</pre> + + <p><em>$BCm(B:</em> 'referer' $B$H(B 'referal' $B$NDV$j$O0U?^E*$J$b$N$G$9(B ($BLuCm(B: + $B@5$7$$DV$j$O(B referrer $B$H(B referral)$B!#(B</p> + + <p>$B$3$N<jK!$K4X$9$k>\$7$$>pJs$O(B ApacheToday $B$N%A%e!<%H%j%"%k(B "<a + href="http://apachetoday.com/news_story.php3?ltsn=2000-06-14-002-01-ps" + >Keeping Your Images from Adorning Other Sites</a>" + $B$r;2>H$7$F$/$@$5$$!#(B</p> + <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + </body> +</html> diff --git a/usr.sbin/httpd/htdocs/manual/howto/auth.html b/usr.sbin/httpd/htdocs/manual/howto/auth.html new file mode 100644 index 00000000000..44372fd6982 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/howto/auth.html @@ -0,0 +1,1196 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <title>Authentication, Authorization, and Access Control</title> + </head> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + + + +<h1 align="center">Authentication, Authorization, and Access +Control</h1> + + <a name="TOC"></a> + + <ul> + <li><a href="#intro">Introduction</a></li> + <li> + <a href="#basic">Basic authentication</a> + + <ul> + <li><a href="#basicworks">How basic + authentication works</a></li> + + <li> + <a href="#basicconfig">Configuration: + Protecting content with basic authentication</a> + + </li> + + <li> + <a href="#basicfaq">Frequently asked + questions about basic auth</a> + </li> + + <li><a href="#basiccaveat">Security + caveat</a></li> + </ul> + <br /> + </li> + + <li> + <a href="#digest">Digest authentication</a> + + <ul> + <li><a href="#digestworks">How digest auth + works</a></li> + + <li> + <a href="#digestconfig">Configuration: + Protecting content with digest authentication</a> + </li> + + <li><a href="#digestcaveat">Caveats</a></li> + </ul> + <br /> + </li> + + <li> + <a href="#database">Database authentication + modules</a> + + <ul> + <li><a href="#modauthdb">mod_auth_db and + mod_auth_dbm</a></li> + + <li><a href="#dbfiles">Berkeley DB files</a></li> + + <li><a href="#installauthdb">Installing mod_auth_db</a></li> + + <li> + <a href="#authdbconfig">Protecting a + directory with mod_auth_db</a> + </li> + </ul> + <br /> + </li> + + <li> + <a href="#access">Access control</a> + + <ul> + <li><a href="#allowdeny">Allow and Deny</a></li> + + <li><a href="#satisfy">Satisfy</a></li> + </ul> + <br /> + </li> + + <li><a href="#summary">Summary</a></li> + </ul> + <!--End of Table of Child-Links--> + <hr /> + + <h1><a name="auth"></a><br /> + Authentication, Authorization, and Access Control</h1> + + <h1><a name="intro">Introduction</a></h1> + + <p>Apache has three distinct ways of dealing with the question + of whether a particular request for a resource will result in + that resource actually be returned. These criteria are called + <i>Authorization</i>, <i>Authentication</i>, and <i>Access + control</i>.</p> + + <p>Authentication is any process by which you verify that + someone is who they claim they are. This usually involves a + username and a password, but can include any other method of + demonstrating identity, such as a smart card, retina scan, + voice recognition, or fingerprints. Authentication is + equivalent to showing your drivers license at the ticket + counter at the airport.</p> + + <p>Authorization is finding out if the person, once identified, + is permitted to have the resource. This is usually determined + by finding out if that person is a part of a particular group, + if that person has paid admission, or has a particular level of + security clearance. Authorization is equivalent to checking the + guest list at an exclusive party, or checking for your ticket + when you go to the opera.</p> + + <p>Finally, access control is a much more general way of + talking about controlling access to a web resource. Access can + be granted or denied based on a wide variety of criteria, such + as the network address of the client, the time of day, the + phase of the moon, or the browser which the visitor is using. + Access control is analogous to locking the gate at closing + time, or only letting people onto the ride who are more than 48 + inches tall - it's controlling entrance by some arbitrary + condition which may or may not have anything to do with the + attributes of the particular visitor.</p> + + <p>Because these three techniques are so closely related in + most real applications, it is difficult to talk about them + separate from one another. In particular, authentication and + authorization are, in most actual implementations, + inextricable.</p> + + <p>If you have information on your web site that is sensitive, + or intended for only a small group of people, the techniques in + this tutorial will help you make sure that the people that see + those pages are the people that you wanted to see them.</p> + + <h1><a name="basic"></a>Basic authentication</h1> + + <p>As the name implies, basic authentication is the simplest + method of authentication, and for a long time was the most + common authentication method used. However, other methods of + authentication have recently passed basic in common usage, due + to usability issues that will be discussed in a minute.</p> + + <h2><a name="basicworks"></a><br /> + How basic authentication works</h2> + + <p>When a particular resource has been protected using basic + authentication, Apache sends a <tt>401 Authentication + Required</tt> header with the response to the request, in order + to notify the client that user credentials must be supplied in + order for the resource to be returned as requested.</p> + + <p>Upon receiving a <tt>401</tt> response header, the client's + browser, if it supports basic authentication, will ask the user + to supply a username and password to be sent to the server. If + you are using a graphical browser, such as Netscape or Internet + Explorer, what you will see is a box which pops up and gives + you a place to type in your username and password, to be sent + back to the server. If the username is in the approved list, + and if the password supplied is correct, the resource will be + returned to the client.</p> + + <p>Because the HTTP protocol is stateless, each request will be + treated in the same way, even though they are from the same + client. That is, every resource which is requested from the + server will have to supply authentication credentials over + again in order to receive the resource.</p> + + <p>Fortunately, the browser takes care of the details here, so + that you only have to type in your username and password one + time per browser session - that is, you might have to type it + in again the next time you open up your browser and visit the + same web site.</p> + + <p>Along with the <tt>401</tt> response, certain other + information will be passed back to the client. In particular, + it sends a name which is associated with the protected area of + the web site. This is called the <i>realm</i><a id="11257" + name="11257"></a>, or just the authentication name. The client + browser caches the username and password that you supplied, and + stores it along with the authentication realm, so that if other + resources are requested from the same realm, the same username + and password can be returned to authenticate that request + without requiring the user to type them in again. This caching + is usually just for the current browser session, but some + browsers allow you to store them permanently, so that you never + have to type in your password again.</p> + + <p>The authentication name, or realm, will appear in the pop-up + box, in order to identify what the username and password are + being requested for.</p> + + <h2><a name="basicconfig"></a> + Configuration: Protecting content with basic + authentication</h2> + + <p>There are two configuration steps which you must complete in + order to protect a resource using basic authentication. Or + three, depending on what you are trying to do.</p> + + <ol> + <li>Create a password file</li> + + <li>Set the configuration to use this password file</li> + + <li>Optionally, create a group file</li> + </ol> + + <h3><a name="htpasswd"></a><br /> + Create a password file</h3> + + <p>In order to determine whether a particular username/password + combination is valid, the username and password supplied by the + user will need to be compared to some authoritative listing of + usernames and password. This is the password file, which you + will need to create on the server side, and populate with valid + users and their passwords.</p> + + <p>Because this file contains sensitive information, it should + be stored outside of the document directory. Although, as you + will see in a moment, the passwords are encrypted in the file, + if a cracker were to gain access to the file, it would be an + aid in their attempt to figure out the passwords. And, because + people tend to be sloppy with the passwords that they choose, + and use the same password for web site authentication as for + their bank account, this potentially be a very serious breach + of security, even if the content on your web site is not + particularly sensitive.</p> + + <p><b>Caution:</b> Encourage your users to use a different + password for your web site than for other more essential + things. For example, many people tend to use two passwords - + one for all of their extremely important things, such as the + login to their desktop computer, and for their bank account, + and another for less sensitive things, the compromise of which + would be less serious.</p> + + <p>To create the password file, use the <tt>htpasswd</tt> + utility that came with Apache. This will be located in the + <tt>bin</tt> directory of wherever you installed Apache. For + example, it will probably be located at + <tt>/usr/local/apache/bin/htpasswd</tt> if you installed Apache + from source.</p> + + <p>To create the file, type:</p> +<pre> +htpasswd -c /usr/local/apache/passwd/password username +</pre> + + <p><tt>htpasswd</tt> will ask you for the password, and then + ask you to type it again to confirm it:</p> +<pre> +# htpasswd -c /usr/local/apache/passwd/passwords rbowen +New password: mypassword +Re-type new password: mypassword +Adding password for user rbowen +</pre> + + <p>Note that in the example shown, a password file is being + created containing a user called <tt>rbowen</tt>, and this + password file is being placed in the location + <tt>/usr/local/apache/passwd/passwords</tt>. You will + substitute the location, and the username, which you want to + use to start your password file.</p> + + <p>If <tt>htpasswd</tt> is not in your path, you will have to + type the full path to the file to get it to run. That is, in + the example above, you would replace <tt>htpasswd</tt> with + <tt>/usr/local/apache/bin/htpasswd</tt></p> + + <p>The <tt>-c</tt> flag is used only when you are creating a + new file. After the first time, you will omit the <tt>-c</tt> + flag, when you are adding new users to an already-existing + password file.</p> +<pre> +htpasswd /usr/local/apache/passwd/passwords sungo +</pre> + + <p>The example just shown will add a user named <tt>sungo</tt> + to a password file which has already been created earlier. As + before, you will be asked for the password at the command line, + and then will be asked to confirm the password by typing it + again.</p> + + <p><b>Caution:</b> Be very careful when you add new users to an + existing password file that you don't use the <tt>-c</tt> flag + by mistake. Using the <tt>-c</tt> flag will create a new + password file, even if you already have an existing file of + that name. That is, it will remove the contents of the file + that is there, and replace it with a new file containing only + the one username which you were adding.</p> + + <p>The password is stored in the password file in encrypted + form, so that users on the system will not be able to read the + file and immediately determine the passwords of all the users. + Nevertheless, you should store the file in as secure a location + as possible, with whatever minimum permissions on the file so + that the web server itself can read the file. For example, if + your server is configured to run as user <tt>nobody</tt> and + group <tt>nogroup</tt>, then you should set permissions on the + file so that only that user can read the file:</p> +<pre> +chown nobody.nogroup /usr/local/apache/passwd/passwords +chmod 640 /usr/local/apache/passwd/passwords +</pre> + + <p>On Windows, a similar precaution should be taken, changing + the ownership of the password file to the web server user, so + that other users cannot read the file.</p> + + <h3><a name="htpasswdconfig"></a><br /> + Set the configuration to use this password file</h3> + + <p>Once you have created the password file, you need to tell + Apache about it, and tell Apache to use this file in order to + require user credentials for admission. This configuration is + done with the following directives:</p> + + <table cellpadding="3"> + <tr> + <td align="left">AuthType</td> + + <td align="left" valign="top" width="360">Authentication + type being used. In this case, it will be set to + <tt>Basic</tt></td> + </tr> + + <tr> + <td align="left">AuthName</td> + + <td align="left" valign="top" width="360">The + authentication realm or name</td> + </tr> + + <tr> + <td align="left">AuthUserFile</td> + + <td align="left" valign="top" width="360">The location of + the password file</td> + </tr> + + <tr> + <td align="left">AuthGroupFile</td> + + <td align="left" valign="top" width="360">The location of + the group file, if any</td> + </tr> + + <tr> + <td align="left">Require</td> + + <td align="left" valign="top" width="360">The + requirement(s) which must be satisfied in order to grant + admission</td> + </tr> + </table> + + <p>These directives may be placed in a <tt>.htaccess</tt> file + in the particular directory being protected, or may go in the + main server configuration file, in a <tt><Directory></tt> + section, or other scope container.</p> + + <p>The example shown below defines an authentication realm + called ``By Invitation Only''. The password file located at + <tt>/usr/local/apache/passwd/passwords</tt> will be used to + verify the user's identity. Only users named <tt>rbowen</tt> or + <tt>sungo</tt> will be granted access, and even then only if + they provide a password which matches the password stored in + the password file.</p> +<pre> +AuthType Basic +AuthName "By Invitation Only" +AuthUserFile /usr/local/apache/passwd/passwords +Require user rbowen sungo +</pre> + + <p>The phrase ``By Invitation Only'' will be displayed in the + password pop-up box, where the user will have to type their + credentials.</p> + + <p>You will need to restart your Apache server in order for the + new configuration to take effect, if these directives were put + in the main server configuration file. Directives placed in + <tt>.htaccess</tt> files take effect immediately, since + <tt>.htaccess</tt> files are parsed each time files are + served.</p> + + <p>The next time that you load a file from that directory, you + will see the familiar username/password dialog box pop up, + requiring that you type the username and password before you + are permitted to proceed.</p> + + <p>Note that in addition to specifically listing the users to + whom you want to grant access, you can specify that any valid + user should be let in. This is done with the + <tt>valid-user</tt> keyword:</p> +<pre> +Require valid-user +</pre> + + <h3><a name="basicgroupfile"></a><br /> + Optionally, create a group file</h3> + + <p>Most of the time, you will want more than one, or two, or + even a dozen, people to have access to a resource. You want to + be able to define a group of people that have access to that + resource, and be able to manage that group of people, adding + and removing members, without having to edit the server + configuration file, and restart Apache, each time.</p> + + <p>This is handled using authentication groups. An + authentication group is, as you would expect, a group name + associated with a list of members. This list is stored in a + group file, which should be stored in the same location as the + password file, so that you are able to keep track of these + things.</p> + + <p>The format of the group file is exceedingly simple. A group + name appears first on a line, followed by a colon, and then a + list of the members of the group, separated by spaces. For + example:</p> +<pre> +authors: rich daniel allan +</pre> + + <p>Once this file has been created, you can <tt>Require</tt> + that someone be in a particular group in order to get the + requested resource. This is done with the + <tt>AuthGroupFile</tt> directive, as shown in the following + example.</p> +<pre> +AuthType Basic +AuthName "Apache Admin Guide Authors" +AuthUserFile /usr/local/apache/passwd/passwords +AuthGroupFile /usr/local/apache/passwd/groups +Require group authors +</pre> + + <p>The authentication process is now one step more involved. + When a request is received, and the requested username and + password are supplied, the group file is first checked to see + if the supplied username is even in the required group. If it + is, then the password file will be checked to see if the + username is in there, and if the supplied password matches the + password stored in that file. If any of these steps fail, + access will be forbidden.</p> + + <h2><a name="basicfaq"></a><br /> + Frequently asked questions about basic auth</h2> + + <p>The following questions tend to get asked very frequently + with regard to basic authentication. It should be understood + that basic authentication is very basic, and so is limited to + the set of features that has been presented above. Most of the + more interesting things that people tend to want, need to be + implemented using some alternate authentication scheme.</p> + + <h3><a name="logout"></a><br /> + How do I log out?</h3> + + <p>Since browsers first started implementing basic + authentication, website administrators have wanted to know how + to let the user log out. Since the browser caches the username + and password with the authentication realm, as described + earlier in this tutorial, this is not a function of the server + configuration, but is a question of getting the browser to + forget the credential information, so that the next time the + resource is requested, the username and password must be + supplied again. There are numerous situations in which this is + desirable, such as when using a browser in a public location, + and not wishing to leave the browser logged in, so that the + next person can get into your bank account.</p> + + <p>However, although this is perhaps the most frequently asked + question about basic authentication, thus far none of the major + browser manufacturers have seen this as being a desirable + feature to put into their products.</p> + + <p>Consequently, the answer to this question is, you can't. + Sorry.</p> + + <h3><a name="passworddialog"></a><br /> + How can I change what the password box looks like?</h3> + + <p>The dialog that pops up for the user to enter their username + and password is ugly. It contains text that you did not + indicate that you wanted in there. It looks different in + Internet Explorer and Netscape, and contains different text. + And it asks for fields that the user might not understand - + for example, Netscape asks the user to type in their ``User + ID'', and they might not know what that means. Or, you might + want to provide additional explanatory text so that the user + has a better idea what is going on.</p> + + <p>Unfortunately, these things are features of the browser, and + cannot be controlled from the server side. If you want the + login to look different, then you will need to implement your + own authentication scheme. There is no way to change what this + login box looks like if you are using basic authentication.</p> + + <h3><a name="persistpass"></a><br /> + How to I make it not ask me for my password the next + time?</h3> + + <p>Because most browsers store your password information only + for the current browser session, when you close your browser it + forgets your username and password. So, when you visit the same + web site again, you will need to re-enter your username and + password.</p> + + <p>There is nothing that can be done about this on the server + side.</p> + + <p>However, the most recent versions of the major browsers + contain the ability to remember your password forever, so that + you never have to log in again. While it is debatable whether + this is a good idea, since it effectively overrides the entire + point of having security in the first place, it is certainly + convenient for the user, and simplifies the user + experience.</p> + + <h3><a name="passwordtwice"></a><br /> + Why does it sometimes ask me for my password twice?</h3> + + <p>When entering a password-protected web site for the first + time, you will occasionally notice that you are asked for your + password twice. This may happen immediately after you entered + the password the first time, or it may happen when you click on + the first link after authenticating the first time.</p> + + <p>This happens for a very simple, but nonetheless confusing, + reason, again having to do with the way that the browser caches + the login information.</p> + + <p>Login information is stored on the browser based on the + authentication realm, specified by the <tt>AuthName</tt> + directive, and by the server name. In this way, the browser can + distinguish between the <tt>Private</tt> authentication realm + on one site and on another. So, if you go to a site using one + name for the server, and internal links on the server refer to + that server by a different name, the browser has no way to know + that they are in fact the same server.</p> + + <p>For example, if you were to visit the URL + <tt>http://example.com/private/</tt>, which required + authentication, your browser would remember the supplied + username and password, associated with the hostname + <tt>example.com</tt>. If, by virtue of an internal redirect, or + fully-qualified HTML links in pages, you are then sent to the + URL <tt>http://www.example.com/private/</tt>, even though this + is really exactly the same URL, the browser does not know this + for sure, and is forced to request the authentication + information again, since <tt>example.com</tt> and + <tt>www.example.com</tt> are not exactly the same hostname. + Your browser has no particular way to know that these are the + same web site.</p> + + <h2><a name="basiccaveat"></a><br /> + Security caveat</h2> + + <p>Basic authentication should not be considered secure for any + particularly rigorous definition of secure.</p> + + <p>Although the password is stored on the server in encrypted + format, it is passed from the client to the server in plain + text across the network. Anyone listening with any variety of + packet sniffer will be able to read the username and password + in the clear as it goes across.</p> + + <p>Not only that, but remember that the username and password + are passed with every request, not just when the user first + types them in. So the packet sniffer need not be listening at a + particularly strategic time, but just for long enough to see + any single request come across the wire.</p> + + <p>And, in addition to that, the content itself is also going + across the network in the clear, and so if the web site + contains sensitive information, the same packet sniffer would + have access to that information as it went past, even if the + username and password were not used to gain direct access to + the web site.</p> + + <p>Don't use basic authentication for anything that requires + real security. It is a detriment for most users, since very few + people will take the trouble, or have the necessary software + and/or equipment, to find out passwords. However, if someone + had a desire to get in, it would take very little for them to + do so.</p> + + <h1><a name="digest"></a>Digest authentication</h1> + + <p>Addressing one of the security caveats of basic + authentication, digest authentication provides an alternate + method for protecting your web content. However, it to has a + few caveats.</p> + + <h2><a name="digestworks">How digest auth works</a></h2> + + <p>Digest authentication is implemented by the module + <tt>mod_auth_digest</tt>. There is an older module, + <tt>mod_digest</tt>, which implemented an older version of the + digest authentication specification, but which will probably + not work with newer browsers.</p> + + <p>Using digest authentication, your password is never sent + across the network in the clear, but is always transmitted as + an MD5 digest of the user's password. In this way, the password + cannot be determined by sniffing network traffic.</p> + + <p>The full specification of digest authentication can be seen + in the internet standards document RFC 2617, which you can see + at <tt>http://www1.ics.uci.edu/pub/ietf/http/rfc2617.txt</tt>. + Additional information and resources about MD5 can be found at + <tt>http://userpages.umbc.edu/ mabzug1/cs/md5/md5.html</tt></p> + + <h2><a name="digestconfig"></a>Configuration: + Protecting content with digest authentication</h2> + + <p>The steps for configuring your server for digest + authentication are very similar for those for basic + authentication.</p> + + <ol> + <li>Create the password file</li> + + <li>Set the configuration to use this password file</li> + + <li>Optionally, create a group file</li> + </ol> + + <h3><a name="htdigest"></a>Creating a password file</h3> + + <p>As with basic authentication, a simple utility is provided + to create and maintain the password file which will be used to + determine whether a particular user's name and password are + valid. This utility is called <tt>htdigest</tt>, and will be + located in the <tt>bin</tt> directory of wherever you installed + Apache. If you installed Apache from some variety of package + manager, <tt>htdigest</tt> is likely to have been placed + somewhere in your path.</p> + + <p>To create a new digest password file, type:</p> +<pre> +htdigest -c /usr/local/apache/passwd/digest realm username +</pre> + + <p><tt>htdigest</tt> will ask you for the desired password, and + then ask you to type it again to confirm it.</p> + + <p>Note that the realm for which the authentication will be + required is part of the argument list.</p> + + <p>Once again, as with basic authentication, you are encouraged + to place the generated file somewhere outside of the document + directory.</p> + + <p>And, as with the <tt>htpasswd</tt> utility, the <tt>-c</tt> + flag creates a new file, or, if a file of that name already + exists, deletes the contents of that file and generates a new + file in its place. Omit the <tt>-c</tt> flag in order to add + new user information to an existing password file.</p> + + <h3><a name="htdigestconfig"></a>Set the configuration + to use this password file</h3> + + <p>Once you have created a password file, you need to tell + Apache about it in order to start using it as a source of + authenticated user information. This configuration is done with + the following directives:</p> + + <table cellpadding="3"> + <tr> + <td align="left">AuthType</td> + + <td align="left" valign="top" width="360">Authentication + type being used. In this case, it will be set to + <tt>Digest</tt></td> + </tr> + + <tr> + <td align="left">AuthName</td> + + <td align="left" valign="top" width="360">The + authentication realm or name</td> + </tr> + + <tr> + <td align="left">AuthDigestFile</td> + + <td align="left" valign="top" width="360">The location of + the password file</td> + </tr> + + <tr> + <td align="left">AuthDigestGroupFile</td> + + <td align="left" valign="top" width="360">Location of the + group file, if any</td> + </tr> + + <tr> + <td align="left">Require</td> + + <td align="left" valign="top" width="360">The + requirement(s) which must be satisfied in order to grant + admission</td> + </tr> + </table> + + <p>These directives may be places in a <tt>.htaccess</tt> file + in the particular directory being protected, or may go in the + main server configuration file, in a <tt><Directory></tt> + section, or another scope container.</p> + + <p>The following example defines an authentication realm called + "Private". The password file located at + <tt>/usr/local/apache/passwd/digest</tt> will be used to verify + the user's identity. Only users named <tt>drbacchus</tt> or + <tt>dorfl</tt> will be granted access, if they provide a + password that patches the password stored in the password + file.</p> +<pre> +AuthType Digest +AuthName "Private" +AuthDigestFile /usr/local/apache/passwd/digest +Require user drbacchus dorfl +</pre> + + <p>The phrase "Private" will be displayed in the password + pop-up box, where the user will have to type their + credentials.</p> + + <h3><a name="digestgroup"></a>Optionally, create a group file</h3> + + <p>As you have observed, there are not many differences between + this configuration process and that required by basic + authentication, described in the previous section. This is true + also of group functionality. The group file used for digest + authentication is exactly the same as that used for basic + authentication. That is to say, lines in the group file consist + the name of the group, a colon, and a list of the members of + that group. For example:</p> +<pre> +admins: jim roy ed anne +</pre> + + <p>Once this file has been created, you can <tt>Require</tt> + that someone be in a particular group in order to get the + requested resource. This is done with the + <tt>AuthDigestGroupFile</tt> directive, as shown in the + following example.</p> +<pre> +AuthType Digest +AuthName "Private" +AuthDigestFile /usr/local/apache/passwd/digest +AuthDigestGroupFile /usr/local/apache/passwd/digest.groups +Require group admins +</pre> + + <p>The authentication process is the same as that used by basic + authentication. It is first verified that the user is in the + required group, and, if this is true, then the password is + verified.</p> + + <h2><a name="digestcaveat">Caveats</a></h2> + + <p>Before you leap into using digest authentication instead of + basic authentication, there are a few things that you should + know about.</p> + + <p>Most importantly, you need to know that, although digest + authentication has this great advantage that you don't send + your password across the network in the clear, it is not + supported by all major browsers in use today, and so you should + not use it on a web site on which you cannot control the + browsers that people will be using, such as on your intranet + site. In particular, Opera 4.0 or later, Microsoft Internet + Explorer 5.0 or later, and Amaya support digest authentication, + while Netscape, Mozilla, and various other browsers do not.</p> + + <p>Next, with regard to security considerations, you should + understand two things. Although your password is not passed in + the clear, all of your data is, and so this is a rather small + measure of security. And, although your password is not really + sent at all, but a digest form of it, someone very familiar + with the workings of HTTP could use that information - just + your digested password - and use that to gain access to the + content, since that digested password is really all the + information required to access the web site.</p> + + <p>The moral of this is that if you have content that really + needs to be kept secure, use SSL.</p> + + <h1><a name="database">Database authentication + modules</a></h1> + + <p>Basic authentication and digest authentication both suffer + from the same major flaw. They use text files to store the + authentication information. The problem with this is that + looking something up in a text file is very slow. It's rather + like trying to find something in a book that has no index. You + have to start at the beginning, and work through it one page at + a time until you find what you are looking for. Now imagine + that the next time you need to find the same thing, you don't + remember where it was before, so you have to start at the + beginning again, and work through one page at a time until you + find it again. And the next time. And the time after that.</p> + + <p>Since HTTP is stateless, authentication has to be verified + every time that content is requested. And so every time a + document is accessed which is secured with basic or digest + authentication, Apache has to open up those text password files + and look through them one line at a time, until it finds the + user that is trying to log in, and verifies their password. In + the worst case, if the username supplied is not in there at + all, every line in the file will need to be checked. On + average, half of the file will need to be read before the user + is found. This is very slow.</p> + + <p>While this is not a big problem for small sets of users, + when you get into larger numbers of users (where "larger" means + a few hundred) this becomes prohibitively slow. In many cases, + in fact, valid username/password combinations will get rejected + because the authentication module just had to spend so much + time looking for the username in the file that Apache will just + get tired of waiting and return a failed authentication.</p> + + <p>In these cases, you need an alternative, and that + alternative is to use some variety of database. Databases are + optimized for looking for a particular piece of information in + a very large data set. It builds indexes in order to rapidly + locate a particular record, and they have query languages for + swiftly locating records that match particular criteria.</p> + + <p>There are numerous modules available for Apache to + authenticate using a variety of different databases. In this + section, we'll just look at two modules which ship with Apache. + </p> + + <h2><a name="modauthdb"></a>mod_auth_db and mod_auth_dbm</h2> + + <p><tt>mod_auth_db</tt> and <tt>mod_auth_dbm</tt> are modules + which lets you keep your usernames and passwords in DB or DBM + files. There are few practical differences between DB files and + DBM files. And, on some operating systems, such as various + BSDs, and Linux, they are exactly the same thing. You should + pick whichever of the two modules makes the most sense on your + particular platform of choice. If you do not have DB support on + your platform, you may need to install it. You download an + implementation of DB at <tt>http://www.sleepycat.com/</tt>. <a + id="11415" name="11415"></a></p> + + <h2><a name="dbfiles"></a>Berkeley DB files</h2> + + <p>DB files, also known as Berkeley database files, are the + simplest form of database, and are rather ideally suited for + the sort of data that needs to be stored for HTTP + authentication. DB files store key/value pairs. That is, the + name of a variable, and the value of that variable. While other + databases allow the storage of many fields in a given record, a + DB file allows only this pairing of key and value.<a + name="foot1_return" href="#foot1"><sup>21.1</sup></a> This is ideal for + authentication, which requires only the pair of a username and + password.</p> + + <h2><a name="installauthdb">Installing mod_auth_db</a></h2> + <tt>mod_auth_db!installing</tt> + + <p>For the purposes of this tutorial, we'll talk about + installing and configuring <tt>mod_auth_db</tt>. However, + everything that is said here can be directly applied to + <tt>mod_auth_dbm</tt> by simply replacing 'db' with 'dbm' and + 'DB' with 'DBM' in the various commands, file names, and + directives.</p> + + <p>Since <tt>mod_auth_db</tt> is not compiled in by default, + you will need to rebuild Apache in order to get the + functionality, unless you built in everything when we started. + Note that if you installed Apache with shared object + support, you may be able to just build the module and load it + in to Apache.</p> + + <p>To build Apache from scratch with <tt>mod_auth_db</tt> built + in, use the following <tt>./configure</tt> line in your apache + source code directory.</p> +<pre> +./configure --enable-module=auth_db +</pre> + + <p>Or, if you had a more complex <tt>configure</tt> command + line, you can just add the <tt>-enable-module=auth_db</tt> + option to that command line, and you'll get + <tt>mod_auth_db</tt> built into your server.</p> + + <h2><a name="authdbconfig">Protecting a directory with + mod_auth_db</a></h2> + + <p>Once you have compiled the <tt>mod_auth_db</tt> module, and + loaded it into your web server, you'll find that there's very + little difference between using regular authentication and + using <tt>mod_auth_db</tt> authentication. The procedure is the + same as that we went through with basic and digest + authentication:</p> + + <ol> + <li>Create the user file.</li> + + <li>Configure Apache to use that file for + authentication.</li> + + <li>Optionally, create a group file.</li> + </ol> + + <h3><a name="dbmmanage"></a>Create the user file</h3> + + <p>The user file for authentication is, this time, not a flat + text file, but is a DB file<a name="foot2_return" + href="#foot2"><sup>21.2</sup></a>. Fortunately, once again, + Apache provides us with a simple utility for the purpose of + managing this user file. This time, the utility is called + <tt>dbmmanage</tt>, and will be located in the <tt>bin</tt> + subdirectory of wherever you installed Apache.</p> + + <p><tt>dbmmanage</tt> is somewhat more complicated to use than + <tt>htpasswd</tt> or <tt>htdigest</tt>, but it is still fairly + simple. The syntax which you will usually be using is as + follows:</p> +<pre> +dbmmanage passwords.db adduser montressor +</pre> + + <p>As with <tt>htpasswd</tt>, you will at this point be + prompted for a password, and then asked to confirm that + password by typing it again. The main difference here is that + rather than a text file being created, you are creating a + binary file containing the information that you have + supplied.</p> + + <p>Type <tt>dbmmanage</tt> with no arguments to get the full + list of options available with this utility.</p> + + <h3><a name="perl_dbfile">Creating your user file with + Perl</a></h3> + + <p>Note that, if you are so inclined, you can manage your user + file with Perl, or any other language which has a DB-file + module, for interfacing with this type of database. This covers + a number of popular programming languages.</p> + + <p>The following Perl code, for example, will add a user + 'rbowen', with password 'mypassword', to your password + file:</p> +<pre> +use DB_File; +tie %database, 'DB_File', "passwords.dat" + or die "Can't initialize database: $!\n"; + +$username = 'rbowen'; +$password = 'mypassword'; +@chars=(0..9,'a'..'z'); +$salt = '', map { $chars[int rand @chars] } (0..1); + +$crypt = crypt($password, $salt); +$database{$username} = $crypt; + +untie %database; +</pre> + + <p>As you can imagine, this makes it very simple to write tools + to manage the user and password information stored in these + files.</p> + + <p>Passwords are stored in Unix <tt>crypt</tt> format, just as + they were in the "regular" password files. The 'salt' that is + created in the middle there is part of the process, generating + a random starting point for that encryption. The technique + being used is called a 'tied hash'. The idea is to tie a + built-in data structure to the contents of the file, such that + when the data structure is changed, the file is automatically + modified at the same time.</p> + + <h3><a name="authdbuserfile"></a>Configuration Apache + to use this password file</h3> + + <p>Once you have created the password file, you need to tell + Apache about it, and tell Apache to use this file to verify + user credentials. This configuration will look almost the same + as that for basic authentication. This configuration can go in + a <tt>.htaccess</tt> file in the directory to be protected, or + can go in the main server configuration, in a + <tt><Directory></tt> section, or other scope container + directive.</p> + + <p>The configuration will look something like the + following:</p> +<pre> +AuthName "Members Only" +AuthType Basic +AuthDBUserFile /usr/local/apache/passwd/passwords.dat +require user rbowen +</pre> + + <p>Now, users accessing the directory will be required to + authenticate against the list of valid users who are in + <tt>/usr/local/apache/passwd/passwords.dat</tt>.</p> + + <h3><a name="authdbgroupfile"></a><br /> + Optionally, create a group file</h3> + + <p>As mentioned earlier, DB files store a key/value pair. In + the case of group files, the key is the name of the user, and + the value is a comma-separated list of the groups to which the + user belongs.</p> + + <p>While this is the opposite of the way that group files are + stored elsewhere, note that we will primarily be looking up + records based on the username, so it is more efficient to index + the file by username, rather than by the group name.</p> + + <p>Groups can be added to your group file using + <tt>dbmmanage</tt> and the <tt>add</tt> command:</p> +<pre> +dbmmanage add groupfile rbowen one,two,three +</pre> + + <p>In the above example, <tt>groupfile</tt> is the literal name + of the group file, <tt>rbowen</tt> is the user being added, and + <tt>one</tt>, <tt>two</tt>, and <tt>three</tt> are names of + three groups to which this user belongs.</p> + + <p>Once you have your groups in the file, you can require a + group in the regular way:</p> +<pre> +AuthName "Members Only" +AuthType Basic +AuthDBUserFile /usr/local/apache/passwd/passwords.dat +AuthDBGroupFile /usr/local/apache/passwd/groups.dat +require group three +</pre> + + <p>Note that if you want to use the same file for both password + and group information, you can do so, but this is a little more + complicated to manage, as you have to encrypt the password + yourself before you feed it to the <tt>dbmmanage</tt> + utility.</p> + + <h1><a name="access"></a>Access control</h1> + + <p>Authentication by username and password is only part of the + story. Frequently you want to let people in based on something + other than who they are. Something such as where they are + coming from. Restricting access based on something other than + the identity of the user is generally referred to as <i>Access + Control</i>.</p> + + <h2><a name="allowdeny"></a>Allow and Deny</h2> + + <p>The <tt>Allow</tt> and <tt>Deny</tt> directives let you + allow and deny access based on the host name, or host address, + of the machine requesting a document. The directive goes + hand-in-hand with these is the <tt>Order</tt> directive, which + tells Apache in which order to apply the filters.</p> + + <p>The usage of these directives is:</p> +<pre> +allow from address +</pre> + + <p>where <i>address</i> is an IP address (or a partial IP + address) or a fully qualified domain name (or a partial domain + name); you may provide multiple addresses or domain names, if + desired.</p> + + <p>For example, if you have someone spamming your message + board, and you want to keep them out, you could do the + following: <a id="11494" name="11494"></a></p> +<pre> +deny from 205.252.46.165 +</pre> + + <p>Visitors coming from that address will not be able to see + the content behind this directive. If, instead, you have a + machine name, rather than an IP address, you can use that. <a + id="11497" name="11497"></a></p> +<pre> +deny from dc.numbersusa.com +</pre> + + <p>And, if you'd like to block access from an entire domain, + you can specify just part of an address or domain name:</p> +<pre> +deny from 192.101.205 +deny from cyberthugs.com moreidiots.com +deny from ke +</pre> + + <p>Using <tt>Order</tt> will let you be sure that you are + actually restricting things to the group that you want to let + in, by combining a <tt>deny</tt> and an <tt>allow</tt> + directive:</p> +<pre> +Order Deny,Allow +Deny from all +Allow from hostname.example.com +</pre> + + <p>Listing just the <tt>allow</tt> directive would not do what + you want, because it will let users from that host in, in + addition to letting everyone in. What you want is to let in + <i>only</i> users from that host.</p> + + <h2><a name="satisfy"></a>Satisfy</h2> + + <p>The <tt>Satisfy</tt> directive can be used to specify that + several criteria may be considered when trying to decide if a + particular user will be granted admission. <tt>Satisfy</tt> can + take as an argument one of two options - <tt>all</tt> or + <tt>any</tt>. By default, it is assumed that the value is + <tt>all</tt>. This means that if several criteria are + specified, then all of them must be met in order for someone to + get in. However, if set to <tt>any</tt>, then several criteria + may be specified, but if the user satisfies any of these, then + they will be granted entrance.</p> + + <p>A very good example of this is using access control to + assure that, although a resource is password protected from + outside your network, all hosts inside the network will be + given free access to the resource. This would be accomplished + by using the <tt>Satisfy</tt> directive, as shown below.</p> +<pre> +<Directory /usr/local/apache/htdocs/sekrit> + AuthType Basic + AuthName intranet + AuthUserFile /www/passwd/users + AuthGroupFile /www/passwd/groups + Require group customers + Allow from internal.com + Satisfy any +</Directory> +</pre> + + <p>In this scenario, users will be let in if they either have a + password, or if they are in the internal network.</p> + + <h1><a name="summary">Summary</a></h1> + + <p>The various authentication modules provide a number of ways + to restrict access to your host based on the identity of the + user. They offer a somewhat standard interface to this + functionality, but provide different back-end mechanisms for + actually authenticating the user.</p> + + <p>And the access control mechanism allows you to restrict + access based on criteria unrelated to the identity of the + user.<br /> + </p> + <hr /> + + <h4>Footnotes</h4> + + <dl> + <dt><a name="foot1">... value.</a><a + href="#foot1_return"><sup>21.1</sup></a></dt> + + <dd>There are actually a number of implementations that get + around this limitation. MLDBM is one of them, for example. + However, for the purposes of this discussion, we'll just deal + with standard Berkeley DB, which is likely to have shipped + with whatever operating system you are already running.</dd> + + <dt><a name="foot2">... file</a><a + href="#foot2_return"><sup>21.2</sup></a></dt> + + <dd>Or, if you are using mod_auth_dbm, a DBM file.</dd> + </dl> + <hr /> + + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/install.html.es b/usr.sbin/httpd/htdocs/manual/install.html.es new file mode 100644 index 00000000000..693010262a3 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/install.html.es @@ -0,0 +1,243 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!-- translation 1.31 --> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + <meta http-equiv="Content-Type" + content="text/html; charset=iso-8859-1" /> + + <title>Compilación e Instalación de + Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="CENTER">Compilación e Instalación de + Apache 1.3</h1> + + <p>Este documento cubre la compilación e + instalación de Apache en sistemas Unix, usando el + método manual de construcción e + instalación. Si desea usar la interfaz estilo autoconf, + deberá leer el fichero <code>INSTALL</code> en el + directorio raíz de la distribución fuente de + Apache. Para la compilación e instalación en + plataformas específicas, consulte</p> + + <ul> + <li><a href="windows.html">Usar Apache con Microsoft + Windows</a></li> + + <li><a href="cygwin.html">Usar Apache con Cygwin</a></li> + + <li><a href="netware.html">Usar Apache con Novell Netware + 5</a></li> + + <li><a href="mpeix.html">Usar Apache con HP MPE/iX</a></li> + + <li><a href="unixware.html">Compilación de Apache bajo + UnixWare</a></li> + + <li><a href="readme-tpf.html">Vistazo general de la + versión TPF de Apache</a></li> + </ul> + + <h2>Bajarse Apache</h2> + + <p>La información de la última versión de + Apache puede encontrarla en <a + href="http://www.apache.org/">http://www.apache.org/</a>. En + esta web podrá encontrar las versiones finales, + versiones beta e información de sitios y réplicas + en la web y por ftp anónimo.</p> + + <p>Si se ha bajado la distribución binaria, vaya a <a + href="#install">Instalación de Apache</a>. Si no es + así lea la siguiente sección como compilar el + servidor.</p> + + <h2>Compilación de Apache</h2> + + <p>La compilación de Apache consiste en tres pasos. + Primero seleccionar qué <strong>módulos</strong> + de Apache quiere incluir en el servidor. Segundo crear una + configuración para su sistema operativo. Tercero + compilar el ejecutable.</p> + + <p>Toda la configuración de Apache está en el + directorio <code>src</code> de la distribución. Vaya al + directorio <code>src</code>.</p> + + <ol> + <li> + <p>Seleccione módulos para compilar, en el fichero + de <code>configuración</code> de Apache. Descomente + las líneas correspondientes a los módulos + opcionales que desee incluir (entre las líneas + <code>AddModule</code> al final del fichero), o escriba + nuevas líneas correspondientes a módulos + adicionales que haya bajado o programado. (Vea <a + href="misc/API.html">API.html</a> para ver la + documentación preliminar de cómo escribir + módulos Apache). Los usuarios avanzados pueden + comentar los módulos por defecto si están + seguros de que no los necesitan (tenga cuidado, ya que + algunos de estos módulos son necesarios para el buen + funcionamiento y una correcta seguridad del servidor).</p> + + <p>Debería leer también las instrucciones del + fichero de <code>Configuración</code> para comprobar + si necesita configurar unas <code>líneas</code> u + otras.</p> + </li> + + <li> + <p>Configure Apache para su sistema operativo. Usted puede + ejecutar un script como el mostrado más abajo. + Aunque si esto falla o usted tiene algún + requerimiento especial (<i>por ejemplo</i> incluir una + librería adicional exigida por un módulo + opcional) puede editarlo para utilizar en el fichero de + <code>Configuración</code> las siguientes opciones: + <code>EXTRA_CFLAGS, LIBS, LDFLAGS,INCLUDES.</code></p> + + <p>Ejecute el script de + <code>configuración</code>:</p> + + <blockquote> +<pre> + % Configure + Using 'Configuration' as config file + + configured for <whatever> platform + + setting C compiler to <whatever> * + + setting C compiler optimization-level to <whatever> * + + Adding selected modules + + doing sanity check on compiler and options + Creating Makefile in support + Creating Makefile in main + Creating Makefile in os/unix + Creating Makefile in modules/standard +</pre> + </blockquote> + + <p>(*: Dependiendo de la configuración y de su + sistema. El resultado podría no coincidir con el + mostrado; no hay problema).</p> + + <p>Esto genera un fichero <code>Makefile</code> a ser usado + en el tercer paso. También crea un + <code>Makefile</code> en el directorio + <code>support</code>, para la compilación de + programas de soporte.</p> + + <p>(Si quiere mantener varias configuraciones, puede + indicarle a <code>Configure</code> una de las opciones en + un fichero, como <code>Configure -fichero + configuración.ai</code>).</p> + </li> + + <li>Escriba <code>make</code>.</li> + </ol> + + <p>Los módulos de la distribución de Apache son + aquellos que hemos probado y utilizado regularmente varios + miembros del grupo de desarrollo de Apache. Los módulos + adicionales (creados por miembros del grupo o por terceras + personas) para necesidades o funciones específicas + están disponibles en <<a + href="http://www.apache.org/dist/httpd/contrib/modules/">http://www.apache.org/dist/httpd/contrib/modules/</a>>. + Hay instrucciones en esa página para añadir estos + módulos en el núcleo de Apache.</p> + + <h2><a id="install" name="install">Instalación de + Apache</a></h2> + + <p>Tendrá un fichero binario llamado <code>hhtpd</code> + en el directorio <code>src</code>. Una distribución + binaria de Apache ya traerá este fichero.</p> + + <p>El próximo paso es instalar el programa y + configurarlo. Apache esta diseñado para ser configurado + y ejecutado desde los directorios donde fue compilado. Si + quiere ejecutarlo desde otro lugar, cree un directorio y copie + los directorios <code>conf</code>, <code>logs</code> e + <code>icons</code>. En cualquier caso debería leer las + <a href="misc/security_tips.html#serverroot">sugerencias de + seguridad</a> que describen cómo poner los permisos del + directorio raíz.</p> + + <p>El paso siguiente es editar los ficheros de + configuración del servidor. Consiste en configurar + varias <strong>directivas</strong> en los tres ficheros + principales. Por defecto, estos ficheros están en el + directorio <code>conf</code> y se llaman <code>srm.conf</code>, + <code>access.conf</code> y <code>httpd.conf</code>. Para + ayudarle a comenzar, hay ejemplos de estos ficheros en el + directorio de la distribución, llamados + <code>srm.conf-dist</code>, <code>access.conf-dist</code> y + <code>httpd.conf-dist</code>. Copie o renombre estos ficheros a + los correspondientes nombres sin la terminación + <code>-dist</code>. Edite cada uno de ellos. Lea los + comentarios cuidadosamente. Un error en la configuración + de estos ficheros podría provocar fallos en el servidor + o volverlo inseguro. Tendrá también un fichero + adicional en el directorio <code>conf</code> llamado + <code>mime.conf</code>. Este fichero normalmente no tiene que + ser editado.</p> + + <p>Primero edite el fichero <code>http.conf</code>. Este + configura atributos generales del servidor: el número de + puerto, el usuario que lo ejecuta, <i>etc.</i> El siguiente a + editar es <code>srm.conf</code>; este fichero configura la + raíz del árbol de los documentos, funciones + especiales como HTML analizado sintácticamente por el + servidor, mapa de imagen, <i>etc.</i> Finalmente, edite + <code>access.conf</code> que configura los accesos.</p> + + <p>Además de estos tres ficheros, el comportamiento del + servidor puede ser modificado directorio a directorio usando + los ficheros <code>.htaccess</code> para los directorios en los + que acceda el servidor.</p> + + <h3>¡Configure el sistema de tiempo correctamente!</h3> + + <p>Una operación de un servidor web requiere un tiempo + concreto, ya que algunos elementos del protocolo HTTP se + expresan en función de la hora y el día. Por eso, + es hora de investigar la configuración de NTP o de otro + sistema de sincronización de su Unix o lo que haga de + equivalente en NT.</p> + + <h2>Programas de soporte para la compilación</h2> + + <p>Además del servidor principal <code>httpd</code> que + se compila y configura como hemos visto, Apache incluye + programas de soporte. Estos no son compilados por defecto. Los + programas de soporte están en el directorio + <code>support</code>. Para compilar esos programas, entre en el + directorio indicado y ejecute el comando:</p> + + <blockquote> +<pre> + make +</pre> + </blockquote> + <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/invoking.html.en b/usr.sbin/httpd/htdocs/manual/invoking.html.en new file mode 100644 index 00000000000..715f8a048fa --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/invoking.html.en @@ -0,0 +1,155 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Starting Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="CENTER">Starting Apache</h1> + + <ul> + <li><a href="#windows">Starting Apache on Windows</a></li> + + <li> + <a href="#unix">Starting Apache on Unix</a> + + <ul> + <li><a href="#errors">Errors During Start-up</a></li> + + <li><a href="#boot">Starting at Boot-Time</a></li> + + <li><a href="#info">Additional Information</a></li> + </ul> + </li> + </ul> + <hr /> + + <h2><a id="windows" name="windows">Starting Apache On + Windows</a></h2> + + <p>On Windows, Apache is normally run as a service on Windows + NT, or as a console application on Windows 95. This does not + apply in its full extend for the Cygwin platform. For details, + see <a href="windows.html#run">running Apache for + Windows</a>.</p> + + <h2><a id="unix" name="unix">Starting Apache on Unix</a></h2> + + <p>On Unix, the <a href="programs/httpd.html">httpd</a> program + is run as a daemon which executes continuously in the + background to handle requests. It is possible to have Apache + invoked by the Internet daemon <code>inetd</code> each time a + connection to the HTTP service is made using the <a + href="mod/core.html#servertype">ServerType</a> directive, but + this is not recommended.</p> + + <p>If the <a href="mod/core.html#port">Port</a> specified in + the configuration file is the default of 80 (or any other port + below 1024), then it is necessary to have root privileges in + order to start Apache, so that it can bind to this privileged + port. Once the server has started and completed a few + preliminary activities such as opening its log files, it will + launch several <em>child</em> processes which do the work of + listening for and answering requests from clients. The main + <code>httpd</code> process continues to run as the root user, + but the child processes run as a less privileged user. This is + controlled by Apache's <a + href="server-wide.html#process">process creation + directives</a>.</p> + + <p>The first thing that <code>httpd</code> does when it is + invoked is to locate and read the <a + href="configuring.html">configuration file</a> + <code>httpd.conf</code>. The location of this file is set at + compile-time, but it is possible to specify its location at run + time using the <code>-f</code> command-line option as in</p> + + <blockquote> + <code>/usr/local/apache/bin/httpd -f + /usr/local/apache/conf/httpd.conf</code> + </blockquote> + + <p>As an alternative to invoking the <code>httpd</code> binary + directly, a shell script called <a + href="programs/apachectl.html">apachectl</a> is provided which + can be used to control the daemon process with simple commands + such as <code>apachectl start</code> and <code>apachectl + stop</code>.</p> + + <p>If all goes well during startup, the server will detach from + the terminal and the command prompt will return almost + immediately. This indicates that the server is up and running. + You can then use your browser to connect to the server and view + the test page in the <a + href="mod/core.html#documentroot">DocumentRoot</a> directory + and the local copy of the documentation linked from that + page.</p> + + <h3><a id="errors" name="errors">Errors During + Start-up</a></h3> + + <p>If Apache suffers a fatal problem during startup, it will + write a message describing the problem either to the console or + to the <a href="mod/core.html#errorlog">ErrorLog</a> before + exiting. One of the most common error messages is "<code>Unable + to bind to Port ...</code>". This message is usually caused by + either:</p> + + <ul> + <li>Trying to start the server on a privileged port when not + logged in as the root user; or</li> + + <li>Trying to start the server when there is another instance + of Apache or some other web server already bound to the same + port.</li> + </ul> + + <p>For further trouble-shooting instructions, consult the + Apache <a href="misc/FAQ.html">FAQ</a>.</p> + + <h3><a id="boot" name="boot">Starting at Boot-Time</a></h3> + + <p>If you want your server to continue running after a system + reboot, you should add a call to <code>httpd</code> or + <code>apachectl</code> to your system startup files (typically + <code>rc.local</code> or a file in an <code>rc.N</code> + directory). This will start Apache as root. Before doing this + ensure that your server is properly configured for security and + access restrictions. The <code>apachectl</code> script is + designed so that it can often be linked directly as an init + script, but be sure to check the exact requirements of your + system.</p> + + <h3><a id="info" name="info">Additional Information</a></h3> + + <p>Additional information about the command-line options of <a + href="programs/httpd.html">httpd</a> and <a + href="programs/apachectl.html">apachectl</a> as well as other + support programs included with the server is available on the + <a href="programs/">Server and Supporting Programs</a> page. + There is also documentation on all the <a + href="mod/">modules</a> included with the Apache distribution + and the <a href="mod/directives.html">directives</a> that they + provide.</p> + <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/invoking.html.html b/usr.sbin/httpd/htdocs/manual/invoking.html.html new file mode 100644 index 00000000000..3102e09eac1 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/invoking.html.html @@ -0,0 +1,159 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Starting Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="CENTER">Starting Apache</h1> + + <ul> + <li><a href="#windows">Starting Apache on Windows</a></li> + + <li> + <a href="#unix">Starting Apache on Unix</a> + + <ul> + <li><a href="#errors">Errors During Start-up</a></li> + + <li><a href="#boot">Starting at Boot-Time</a></li> + + <li><a href="#info">Additional Information</a></li> + </ul> + </li> + </ul> + <hr /> + + <h2><a id="windows" name="windows">Starting Apache On + Windows</a></h2> + + <p>On Windows, Apache is normally run as a service on Windows + NT, or as a console application on Windows 95. This does not + apply in its full extend for the Cygwin platform. For details, + see <a href="windows.html#run">running Apache for + Windows</a>.</p> + + <h2><a id="unix" name="unix">Starting Apache on Unix</a></h2> + + <p>On Unix, the <a href="programs/httpd.html">httpd</a> program + is run as a daemon which executes continuously in the + background to handle requests. It is possible to have Apache + invoked by the Internet daemon <code>inetd</code> each time a + connection to the HTTP service is made using the <a + href="mod/core.html#servertype">ServerType</a> directive, but + this is not recommended.</p> + + <p>If the <a href="mod/core.html#port">Port</a> specified in + the configuration file is the default of 80 (or any other port + below 1024), then it is necessary to have root privileges in + order to start Apache, so that it can bind to this privileged + port. Once the server has started and completed a few + preliminary activities such as opening its log files, it will + launch several <em>child</em> processes which do the work of + listening for and answering requests from clients. The main + <code>httpd</code> process continues to run as the root user, + but the child processes run as a less privileged user. This is + controlled by Apache's <a + href="server-wide.html#process">process creation + directives</a>.</p> + + <p>The first thing that <code>httpd</code> does when it is + invoked is to locate and read the <a + href="configuring.html">configuration file</a> + <code>httpd.conf</code>. The location of this file is set at + compile-time, but it is possible to specify its location at run + time using the <code>-f</code> command-line option as in</p> + + <blockquote> + <code>/usr/local/apache/bin/httpd -f + /usr/local/apache/conf/httpd.conf</code> + </blockquote> + + <p>As an alternative to invoking the <code>httpd</code> binary + directly, a shell script called <a + href="programs/apachectl.html">apachectl</a> is provided which + can be used to control the daemon process with simple commands + such as <code>apachectl start</code> and <code>apachectl + stop</code>.</p> + + <p>If all goes well during startup, the server will detach from + the terminal and the command prompt will return almost + immediately. This indicates that the server is up and running. + You can then use your browser to connect to the server and view + the test page in the <a + href="mod/core.html#documentroot">DocumentRoot</a> directory + and the local copy of the documentation linked from that + page.</p> + + <h3><a id="errors" name="errors">Errors During + Start-up</a></h3> + + <p>If Apache suffers a fatal problem during startup, it will + write a message describing the problem either to the console or + to the <a href="mod/core.html#errorlog">ErrorLog</a> before + exiting. One of the most common error messages is "<code>Unable + to bind to Port ...</code>". This message is usually caused by + either:</p> + + <ul> + <li>Trying to start the server on a privileged port when not + logged in as the root user; or</li> + + <li>Trying to start the server when there is another instance + of Apache or some other web server already bound to the same + port.</li> + </ul> + + <p>For further trouble-shooting instructions, consult the + Apache <a href="misc/FAQ.html">FAQ</a>.</p> + + <h3><a id="boot" name="boot">Starting at Boot-Time</a></h3> + + <p>If you want your server to continue running after a system + reboot, you should add a call to <code>httpd</code> or + <code>apachectl</code> to your system startup files (typically + <code>rc.local</code> or a file in an <code>rc.N</code> + directory). This will start Apache as root. Before doing this + ensure that your server is properly configured for security and + access restrictions. The <code>apachectl</code> script is + designed so that it can often be linked directly as an init + script, but be sure to check the exact requirements of your + system.</p> + + <h3><a id="info" name="info">Additional Information</a></h3> + + <p>Additional information about the command-line options of <a + href="programs/httpd.html">httpd</a> and <a + href="programs/apachectl.html">apachectl</a> as well as other + support programs included with the server is available on the + <a href="programs/">Server and Supporting Programs</a> page. + There is also documentation on all the <a + href="mod/">modules</a> included with the Apache distribution + and the <a href="mod/directives.html">directives</a> that they + provide.</p> + <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + </body> +</html> + + + diff --git a/usr.sbin/httpd/htdocs/manual/keepalive.html.en b/usr.sbin/httpd/htdocs/manual/keepalive.html.en new file mode 100644 index 00000000000..92674fdfbab --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/keepalive.html.en @@ -0,0 +1,103 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache Keep-Alive Support</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="CENTER">Apache Keep-Alive Support</h1> + <hr /> + + <h2>What is Keep-Alive?</h2> + The Keep-Alive extension to HTTP, as defined by the + <code>HTTP/1.1</code> draft, allows persistent connections. + These long-lived HTTP sessions allow multiple requests to be + send over the same TCP connection, and in some cases have been + shown to result in an almost 50% speedup in latency times for + HTML documents with lots of images. + + <h2>Enabling Keep-Alive Support</h2> + Apache 1.1 comes with Keep-Alive support on by default, however + there are some directives you can use to modify Apache's + behavior: + + <p><strong>Note</strong>: Apache 1.2 uses a different syntax + for the <a href="mod/core.html#keepalive">KeepAlive</a> + directive.</p> + + <h3>KeepAlive</h3> + <a href="mod/directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> KeepAlive + <em>max-requests</em><br /> + <a href="mod/directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>KeepAlive + 5</code><br /> + <a href="mod/directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="mod/directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core + + <p>This directive enables Keep-Alive support. Set + <em>max-requests</em> to the maximum number of requests you + want Apache to entertain per connection. A limit is imposed to + prevent a client from hogging your server resources. Set this + to <code>0</code> to disable support.</p> + + <h3>KeepAliveTimeout</h3> + <a href="mod/directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> KeepAliveTimeout + <em>seconds</em><br /> + <a href="mod/directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>KeepAliveTimeout + 15</code><br /> + <a href="mod/directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="mod/directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core + + <p>The number of seconds Apache will wait for a subsequent + request before closing the connection. Once a request has been + received, the timeout value specified by the <a + href="mod/core.html#timeout"><code>Timeout</code></a> directive + applies.</p> + + <h2>When Keep-Alive Is Used</h2> + In order for Keep-Alive support to be used, first the browser + must support it. Many current browsers, including Netscape + Navigator 2.0, and Spyglass Mosaic-based browsers (including + Microsoft Internet Explorer) do. Note, however, that some + Windows 95-based browsers misbehave with Keep-Alive-supporting + servers; they may occasionally hang on a connect. This has been + observed with several Windows browsers, and occurs when + connecting to any Keep-Alive server, not just Apache. Netscape + 3.0b5 and later versions are known to work around this problem. + + + <p>However, Keep-Alive support only is active with files where + the length is known beforehand. This means that most CGI + scripts, server-side included files and directory listings will + not use the Keep-Alive protocol. While this should be + completely transparent to the end user, it is something the + web-master may want to keep in mind.</p> + <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/keepalive.html.html b/usr.sbin/httpd/htdocs/manual/keepalive.html.html new file mode 100644 index 00000000000..f00e2b1f1a0 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/keepalive.html.html @@ -0,0 +1,97 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache Keep-Alive Support</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Apache Keep-Alive Support</h1> + <hr /> + + <h2>What is Keep-Alive?</h2> + The Keep-Alive extension to HTTP, as defined by the + <code>HTTP/1.1</code> draft, allows persistent connections. + These long-lived HTTP sessions allow multiple requests to be + send over the same TCP connection, and in some cases have been + shown to result in an almost 50% speedup in latency times for + HTML documents with lots of images. + + <h2>Enabling Keep-Alive Support</h2> + Apache 1.1 comes with Keep-Alive support on by default, however + there are some directives you can use to modify Apache's + behavior: + + <p><strong>Note</strong>: Apache 1.2 uses a different syntax + for the <a href="mod/core.html#keepalive">KeepAlive</a> + directive.</p> + + <h3>KeepAlive</h3> + <a href="mod/directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> KeepAlive + <em>max-requests</em><br /> + <a href="mod/directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>KeepAlive + 5</code><br /> + <a href="mod/directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="mod/directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core + + <p>This directive enables Keep-Alive support. Set + <em>max-requests</em> to the maximum number of requests you + want Apache to entertain per connection. A limit is imposed to + prevent a client from hogging your server resources. Set this + to <code>0</code> to disable support.</p> + + <h3>KeepAliveTimeout</h3> + <a href="mod/directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> KeepAliveTimeout + <em>seconds</em><br /> + <a href="mod/directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>KeepAliveTimeout + 15</code><br /> + <a href="mod/directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="mod/directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core + + <p>The number of seconds Apache will wait for a subsequent + request before closing the connection. Once a request has been + received, the timeout value specified by the <a + href="mod/core.html#timeout"><code>Timeout</code></a> directive + applies.</p> + + <h2>When Keep-Alive Is Used</h2> + In order for Keep-Alive support to be used, first the browser + must support it. Many current browsers, including Netscape + Navigator 2.0, and Spyglass Mosaic-based browsers (including + Microsoft Internet Explorer) do. Note, however, that some + Windows 95-based browsers misbehave with Keep-Alive-supporting + servers; they may occasionally hang on a connect. This has been + observed with several Windows browsers, and occurs when + connecting to any Keep-Alive server, not just Apache. Netscape + 3.0b5 and later versions are known to work around this problem. + + + <p>However, Keep-Alive support only is active with files where + the length is known beforehand. This means that most CGI + scripts, server-side included files and directory listings will + not use the Keep-Alive protocol. While this should be + completely transparent to the end user, it is something the + web-master may want to keep in mind.</p> + <!--#include virtual="footer.html" --> + </body> +</html> + + + diff --git a/usr.sbin/httpd/htdocs/manual/keepalive.html.ja.jis b/usr.sbin/httpd/htdocs/manual/keepalive.html.ja.jis new file mode 100644 index 00000000000..380b81531b9 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/keepalive.html.ja.jis @@ -0,0 +1,103 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>Apache $B$N(B keep-alive $B%5%]!<%H(B</title> + <!-- English revision:1.12 --> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="center">Apache $B$G%5%]!<%H$9$k(B keep-alive</h1> + <hr /> + + <h2>keep-alive $B$H$O(B</h2> + <code>HTTP/1.1</code> $B%I%i%U%H$KDj5A$5$l$F$$$k$h$&$K!"(BHTTP + $B$N3HD%5!G=$G$"$k(B keep-alive $B$K$h$C$F;}B3E*$J%3%M%/%7%g%s$,2DG=$K$J$j$^$9!#(B + $B$3$l$i$N;}B3E*$J(B HTTP $B%;%C%7%g%s$N$*$+$2$G!"J#?t$N%j%/%(%9%H$rF10l$N(B + TCP $B%3%M%/%7%g%s$r7PM3$7$FAw?.$9$k$3$H$,2DG=$H$J$j$^$9!#(B + $BB??t$N%$%a!<%8$rE=$jIU$1$F$"$k(B HTML $B%I%-%e%a%s%H$rAw?.$9$k$H$-$K!"(B + $B>l9g$K$h$C$F$O!"BT$A;~4V$,$[$\(B 50% $B$H$J$k$[$IB.$/$J$k$3$H$,<($5$l$F$$$^$9!#(B + + <h2>Keep-Alive $B$N%5%]!<%H$rM-8z$K$9$k(B</h2> + Apache 1.1 $B$G$O%G%U%)%k%H$G(B keep-alive $B$N%5%]!<%H$OM-8z$K$J$C$F$$$^$9!#(B + $B$3$l$@$1$G$O$J$/!"(BApache $B$NF0:n$rJQ99$G$-$k%G%#%l%/%F%#%V$,(B + $B0J2<$N$h$&$K$$$/$D$+$"$j$^$9!#(B + + <p><strong>$BCm0U(B</strong>: Apache 1.2 $B$G$O(B <a + href="mod/core.html#keepalive">KeepAlive</a> + $B%G%#%l%/%F%#%V$N9=J8$O0[$J$j$^$9!#(B</p> + + <h3>KeepAlive</h3> + <a href="mod/directive-dict.html#syntax" + rel="help"><strong>$B9=J8(B:</strong></a> KeepAlive + <em>max-requests</em><br /> + <a href="mod/directive-dict.html#default" + rel="help"><strong>$B%G%U%)%k%H(B:</strong></a> <code>KeepAlive + 5</code><br /> + <a href="mod/directive-dict.html#context" + rel="help"><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k(B<br /> + <a href="mod/directive-dict.html#status" + rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Core + + <p>$B$3$N%G%#%l%/%F%#%V$G(B keep-alive $B$N%5%]!<%H$rM-8z$K$7$^$9!#(B + <em>max-requests</em> $B$K$D$$$F$O(B Apache $B$K<u$1F~$l$5$;$?$$(B + 1 $B%3%M%/%7%g%sEv$?$j$N%j%/%(%9%H$N:GBg?t$r@_Dj$7$F$/$@$5$$!#(B + $B@)8B$r@_$1$F%/%i%$%"%s%H$K%5!<%P$N;q8;$rO2Hq$5$;$J$$$h$&$K$7$^$9!#(B + $B%5%]!<%H$rL58z$K$9$k$K$O$3$N9`L\$K(B <code>0</code> $B$r@_Dj$7$F$/$@$5$$!#(B</p> + + <h3>KeepAliveTimeout</h3> + <a href="mod/directive-dict.html#syntax" + rel="help"><strong>$B9=J8(B:</strong></a> KeepAliveTimeout + <em>seconds</em><br /> + <a href="mod/directive-dict.html#default" + rel="help"><strong>$B%G%U%)%k%H(B:</strong></a> <code>KeepAliveTimeout + 15</code><br /> + <a href="mod/directive-dict.html#context" + rel="help"><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k(B<br /> + <a href="mod/directive-dict.html#status" + rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Core + + <p>Apache $B$K8eB3$N%j%/%(%9%H$,E~Ce$9$k$N$r(B <em>seconds</em> + $BIC$@$1BT$?$;$?8e!"(B($B%j%/%(%9%H$,E~Ce$7$J$$>l9g$K$O(B) + $B%3%M%/%7%g%s$r%/%m!<%:$7$^$9!#%j%/%(%9%H$r<u?.$7$?>l9g$K$O!"(B + <a href="mod/core.html#timeout"><code>Timeout</code></a> + $B%G%#%l%/%F%#%V$G;XDj$7$?(B timeout $BCM$rE,MQ$7$^$9!#(B</p> + + <h2>keep-alive $B$,;HMQ$5$l$k>l9g(B</h2> + keep-alive $B%5%]!<%H$r;HMQ$9$k$K$O!"$^$:!"%V%i%&%6$,(B keep-alive $B$r%5%]!<%H(B + $B$7$F$$$J$1$l$P$J$j$^$;$s!#8=:_$NB?$/$N%V%i%&%6!"Nc$($P(B Netscape Navigator + 2.0 $B$d(B (Microsoft Internet Explorer $B$J$I$N(B) Spyglass Mosaic + $B$K4p$E$/%V%i%&%6$O$3$N5!G=$r%5%]!<%H$7$F$$$^$9!#$7$+$7!"(BWindows 95 + $B%Y!<%9$N$$$/$D$+$N%V%i%&%6$O!"(Bkeep-alive $B$r%5%]!<%H$7$F$$$k%5!<%P$K(B + $BBP$7$F8mF0:n$9$k$3$H$KCm0U$7$F$/$@$5$$!#$3$l$i$N%V%i%&%6$O%3%M%/%H(B + $B;~$K%O%s%0$9$k$3$H$,$"$j$^$9!#$3$N8mF0:n$O$$$/$D$+$N(B Windows + $B$N%V%i%&%6$K8+$i$l!"(BApache $B$@$1$G$O$J$/(B keep-alive $B$r%5%]!<%H$9$k(B + $B$9$Y$F$N%5!<%P$H%3%M%/%H$9$k$H$-$KH/@8$7$^$9!#(BNetscape 3.0b5 + $B0J9_$N%P!<%8%g%s$K$D$$$F$O$3$NLdBj$X$NBP=h$,$J$5$l$F$$$^$9!#(B + + <p>$B$?$@$7!"(B keep-alive $B%5%]!<%H$,M-8z$K$J$k$N$O!"(B + $B$"$i$+$8$aD9$5$,H=L@$7$F$$$k%U%!%$%k$KBP$7$F$N$_$G$9!#(B + $B$=$N$?$a!"BgItJ,$N(B CGI $B%9%/%j%W%H!"%5!<%P%5%$%I%$%s%/%k!<%I%U%!%$%k!"(B + $B%G%#%l%/%H%j%j%9%H$G$O!"(Bkeep-alive $B%W%m%H%3%k$r;HMQ$7$J$$$3$H$K$J$j$^$9!#(B + $B$3$l$O%(%s%I%f!<%6$K$O40A4$KF)2aE*$K$J$C$F$$$k$Y$-$b$N$G$9$,!"(B + $B%&%'%V%^%9%?$OCN$C$F$*$$$?J}$,NI$$$3$H$G$7$g$&!#(B</p> + <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + </body> +</html> diff --git a/usr.sbin/httpd/htdocs/manual/logs.html b/usr.sbin/httpd/htdocs/manual/logs.html new file mode 100644 index 00000000000..f84d81e60a5 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/logs.html @@ -0,0 +1,677 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Log Files - Apache HTTP Server</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="center">Log Files</h1> + + <p>In order to effectively manage a web server, it is necessary + to get feedback about the activity and performance of the + server as well as any problems that may be occuring. The Apache + HTTP Server provides very comprehensive and flexible logging + capabilities. This document describes how to configure its + logging capabilities, and how to understand what the logs + contain.</p> + + <ul> + <li><a href="#security">Security Warning</a></li> + + <li><a href="#errorlog">Error Log</a></li> + + <li> + <a href="#accesslog">Access Log</a> + + <ul> + <li><a href="#common">Common Log Format</a></li> + + <li><a href="#combined">Combined Log Format</a></li> + + <li><a href="#multiple">Multiple Access Logs</a></li> + + <li><a href="#conditional">Conditional Logging</a></li> + </ul> + </li> + + <li><a href="#rotation">Log Rotation</a></li> + + <li><a href="#piped">Piped Logs</a></li> + + <li><a href="#virtualhosts">VirtualHosts</a></li> + + <li> + <a href="#other">Other Log Files</a> + + <ul> + <li><a href="#pidfile">PID File</a></li> + + <li><a href="#scriptlog">Script Log</a></li> + + <li><a href="#rewritelog">Rewrite Log</a></li> + </ul> + </li> + </ul> + <hr /> + + <h2><a id="security" name="security">Security Warning</a></h2> + + <p>Anyone who can write to the directory where Apache is + writing a log file can almost certainly gain access to the uid + that the server is started as, which is normally root. Do + <em>NOT</em> give people write access to the directory the logs + are stored in without being aware of the consequences; see the + <a href="misc/security_tips.html">security tips</a> document + for details.</p> + + <p>In addition, log files may contain information supplied + directly by the client, without escaping. Therefore, it is + possible for malicious clients to insert control-characters in + the log files, so care must be taken in dealing with raw + logs.</p> + <hr /> + + <h2><a id="errorlog" name="errorlog">Error Log</a></h2> + + <table border="1"> + <tr> + <td valign="top"><strong>Related Directives</strong><br /> + <br /> + <a href="mod/core.html#errorlog">ErrorLog</a><br /> + <a href="mod/core.html#loglevel">LogLevel</a> </td> + </tr> + </table> + + <p>The server error log, whose name and location is set by the + <a href="mod/core.html#errorlog">ErrorLog</a> directive, is the + most important log file. This is the place where Apache httpd + will send diagnostic information and record any errors that it + encounters in processing requests. It is the first place to + look when a problem occurs with starting the server or with the + operation of the server, since it will often contain details of + what went wrong and how to fix it.</p> + + <p>The error log is usually written to a file (typically + <code>error_log</code> on unix systems and + <code>error.log</code> on Windows and OS/2). On unix systems it + is also possible to have the server send errors to + <code>syslog</code> or <a href="#pipe">pipe them to a + program</a>.</p> + + <p>The format of the error log is relatively free-form and + descriptive. But there is certain information that is contained + in most error log entries. For example, here is a typical + message.</p> + + <blockquote> + <code>[Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] + client denied by server configuration: + /export/home/live/ap/htdocs/test</code> + </blockquote> + + <p>The first item in the log entry is the date and time of the + message. The second entry lists the severity of the error being + reported. The <a href="mod/core.html#loglevel">LogLevel</a> + directive is used to control the types of errors that are sent + to the error log by restricting the severity level. The third + entry gives the IP address of the client that generated the + error. Beyond that is the message itself, which in this case + indicates that the server has been configured to deny the + client access. The server reports the file-system path (as + opposed to the web path) of the requested document.</p> + + <p>A very wide variety of different messages can appear in the + error log. Most look similar to the example above. The error + log will also contain debugging output from CGI scripts. Any + information written to <code>stderr</code> by a CGI script will + be copied directly to the error log.</p> + + <p>It is not possible to customize the error log by adding or + removing information. However, error log entries dealing with + particular requests have corresponding entries in the <a + href="#accesslog">access log</a>. For example, the above example + entry corresponds to an access log entry with status code 403. + Since it is possible to customize the access log, you can + obtain more information about error conditions using that log + file.</p> + + <p>During testing, it is often useful to continuously monitor + the error log for any problems. On unix systems, you can + accomplish this using:</p> + + <blockquote> + <code>tail -f error_log</code> + </blockquote> + <hr /> + + <h2><a id="accesslog" name="accesslog">Access Log</a></h2> + + <table border="1"> + <tr> + <td valign="top"><strong>Related Modules</strong><br /> + <br /> + <a href="mod/mod_log_config.html">mod_log_config</a><br /> + </td> + + <td valign="top"><strong>Related Directives</strong><br /> + <br /> + <a + href="mod/mod_log_config.html#customlog">CustomLog</a><br /> + <a + href="mod/mod_log_config.html#logformat">LogFormat</a><br /> + <a href="mod/mod_setenvif.html#setenvif">SetEnvIf</a> + </td> + </tr> + </table> + + <p>The server access log records all requests processed by the + server. The location and content of the access log are + controlled by the <a + href="mod/mod_log_config.html#customlog">CustomLog</a> + directive. The <a + href="mod/mod_log_config.html#logformat">LogFormat</a> + directive can be used to simplify the selection of the contents + of the logs. This section describes how to configure the server + to record information in the access log.</p> + + <p>Of course, storing the information in the access log is only + the start of log management. The next step is to analyze this + information to produce useful statistics. Log analysis in + general is beyond the scope of this document, and not really + part of the job of the web server itself. For more information + about this topic, and for applications which perform log + analysis, check the <a + href="http://dmoz.org/Computers/Software/Internet/Site_Management/Log_analysis/"> + Open Directory</a> or <a + href="http://dir.yahoo.com/Computers_and_Internet/Software/Internet/World_Wide_Web/Servers/Log_Analysis_Tools/"> + Yahoo</a>.</p> + + <p>Various versions of Apache httpd have used other modules and + directives to control access logging, including + mod_log_referer, mod_log_agent, and the + <code>TransferLog</code> directive. The <code>CustomLog</code> + directive now subsumes the functionality of all the older + directives.</p> + + <p>The format of the access log is highly configurable. The + format is specified using a <a + href="mod/mod_log_config.html#format">format string</a> that + looks much like a C-style printf(1) format string. Some + examples are presented in the next sections. For a complete + list of the possible contents of the format string, see the <a + href="mod/mod_log_config.html">mod_log_config + documentation</a>.</p> + + <h3><a id="common" name="common">Common Log Format</a></h3> + + <p>A typical configuration for the access log might look as + follows.</p> + + <blockquote> + <code>LogFormat "%h %l %u %t \"%r\" %>s %b" common<br /> + CustomLog logs/access_log common</code> + </blockquote> + + <p>This defines the <em>nickname</em> <code>common</code> and + associates it with a particular log format string. The format + string consists of percent directives, each of which tell the + server to log a particular piece of information. Literal + characters may also be placed in the format string and will be + copied directly into the log output. The quote character + (<code>"</code>) must be escaped by placing a back-slash before + it to prevent it from being interpreted as the end of the + format string. The format string may also contain the special + control characters "<code>\n</code>" for new-line and + "<code>\t</code>" for tab.</p> + + <p>The <code>CustomLog</code> directive sets up a new log file + using the defined <em>nickname</em>. The filename for the + access log is relative to the <a + href="mod/core.html#serverroot">ServerRoot</a> unless it begins + with a slash.</p> + + <p>The above configuration will write log entries in a format + known as the Common Log Format (CLF). This standard format can + be produced by many different web servers and read by many log + analysis programs. The log file entries produced in CLF will + look something like this:</p> + + <blockquote> + <code>127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET + /apache_pb.gif HTTP/1.0" 200 2326</code> + </blockquote> + + <p>Each part of this log entry is described below.</p> + + <dl> + <dt><code>127.0.0.1</code> (<code>%h</code>)</dt> + + <dd>This is the IP address of the client (remote host) which + made the request to the server. If <a + href="mod/core.html#hostnamelookups">HostnameLookups</a> is + set to <code>On</code>, then the server will try to determine + the hostname and log it in place of the IP address. However, + this configuration is not recommended since it can + significantly slow the server. Instead, it is best to use a + log post-processor such as <a + href="programs/logresolve.html">logresolve</a> to determine + the hostnames. The IP address reported here is not + necessarily the address of the machine at which the user is + sitting. If a proxy server exists between the user and the + server, this address will be the address of the proxy, rather + than the originating machine.</dd> + + <dt><code>-</code> (<code>%l</code>)</dt> + + <dd>The "hyphen" in the output indicates that the requested + piece of information is not available. In this case, the + information that is not available is the RFC 1413 identity of + the client determined by <code>identd</code> on the clients + machine. This information is highly unreliable and should + almost never be used except on tightly controlled internal + networks. Apache httpd will not even attempt to determine + this information unless <a + href="mod/core.html#identitycheck">IdentityCheck</a> is set + to <code>On</code>.</dd> + + <dt><code>frank</code> (<code>%u</code>)</dt> + + <dd>This is the userid of the person requesting the document + as determined by HTTP authentication. The same value is + typically provided to CGI scripts in the + <code>REMOTE_USER</code> environment variable. If the status + code for the request (see below) is 401, then this value + should not be trusted because the user is not yet + authenticated. If the document is not password protected, + this entry will be "<code>-</code>" just like the previous + one.</dd> + + <dt><code>[10/Oct/2000:13:55:36 -0700]</code> + (<code>%t</code>)</dt> + + <dd> + The time that the server finished processing the request. + The format is: + + <blockquote> + <code>[day/month/year:hour:minute:second zone]<br /> + day = 2*digit<br /> + month = 3*letter<br /> + year = 4*digit<br /> + hour = 2*digit<br /> + minute = 2*digit<br /> + second = 2*digit<br /> + zone = (`+' | `-') 4*digit</code> + </blockquote> + It is possible to have the time displayed in another format + by specifying <code>%{format}t</code> in the log format + string, where <code>format</code> is as in + <code>strftime(3)</code> from the C standard library. + </dd> + + <dt><code>"GET /apache_pb.gif HTTP/1.0"</code> + (<code>\"%r\"</code>)</dt> + + <dd>The request line from the client is given in double + quotes. The request line contains a great deal of useful + information. First, the method used by the client is + <code>GET</code>. Second, the client requested the resource + <code>/apache_pb.gif</code>, and third, the client used the + protocol <code>HTTP/1.0</code>. It is also possible to log + one or more parts of the request line independently. For + example, the format string "<code>%m %U%q %H</code>" will log + the method, path, query-string, and protocol, resulting in + exactly the same output as "<code>%r</code>".</dd> + + <dt><code>200</code> (<code>%>s</code>)</dt> + + <dd>This is the status code that the server sends back to the + client. This information is very valuable, because it reveals + whether the request resulted in a successful response (codes + beginning in 2), a redirection (codes beginning in 3), an + error caused by the client (codes beginning in 4), or an + error in the server (codes beginning in 5). The full list of + possible status codes can be found in the <a + href="http://www.w3.org/Protocols/rfc2616/rfc2616.txt">HTTP + specification</a> (RFC2616 section 10).</dd> + + <dt><code>2326</code> (<code>%b</code>)</dt> + + <dd>The last entry indicates the size of the object returned + to the client, not including the response headers. If no + content was returned to the client, this value will be + "<code>-</code>". To log "<code>0</code>" for no content, use + <code>%B</code> instead.</dd> + </dl> + + <h4><a id="combined" name="combined">Combined Log + Format</a></h4> + + <p>Another commonly used format string is called the Combined + Log Format. It can be used as follows.</p> + + <blockquote> + <code>LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" + \"%{User-agent}i\"" combined<br /> + CustomLog log/acces_log combined</code> + </blockquote> + + <p>This format is exactly the same as the Common Log Format, + with the addition of two more fields. Each of the additional + fields uses the percent-directive + <code>%{<em>header</em>}i</code>, where <em>header</em> can be + any HTTP request header. The access log under this format will + look like:</p> + + <blockquote> + <code>127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET + /apache_pb.gif HTTP/1.0" 200 2326 + "http://www.example.com/start.html" "Mozilla/4.08 [en] + (Win98; I ;Nav)"</code> + </blockquote> + + <p>The additional fields are:</p> + + <dl> + <dt><code>"http://www.example.com/start.html"</code> + (<code>\"%{Referer}i\"</code>)</dt> + + <dd>The "Referer" (sic) HTTP request header. This gives the + site that the client reports having been referred from. (This + should be the page that links to or includes + <code>/apache_pb.gif</code>).</dd> + + <dt><code>"Mozilla/4.08 [en] (Win98; I ;Nav)"</code> + (<code>\"%{User-agent}i\"</code>)</dt> + + <dd>The User-Agent HTTP request header. This is the + identifying information that the client browser reports about + itself.</dd> + </dl> + + <h3><a id="multiple" name="multiple">Multiple Access + Logs</a></h3> + + <p>Multiple access logs can be created simply by specifying + multiple <code>CustomLog</code> directives in the configuration + file. For example, the following directives will create three + access logs. The first contains the basic CLF information, + while the second and third contain referer and browser + information. The last two <code>CustomLog</code> lines show how + to mimic the effects of the <code>ReferLog</code> and + <code>AgentLog</code> directives.</p> + + <blockquote> + <code>LogFormat "%h %l %u %t \"%r\" %>s %b" common<br /> + CustomLog logs/access_log common<br /> + CustomLog logs/referer_log "%{Referer}i -> %U"<br /> + CustomLog logs/agent_log "%{User-agent}i"</code> + </blockquote> + + <p>This example also shows that it is not necessary to define a + nickname with the <code>LogFormat</code> directive. Instead, + the log format can be specified directly in the + <code>CustomLog</code> directive.</p> + + <h3><a id="conditional" name="conditional">Conditional + Logging</a></h3> + + <p>There are times when it is convenient to exclude certain + entries from the access logs based on characteristics of the + client request. This is easily accomplished with the help of <a + href="env.html">environment variables</a>. First, an + environment variable must be set to indicate that the request + meets certain conditions. This is usually accomplished with <a + href="mod/mod_setenvif.html#setenvif">SetEnvIf</a>. Then the + <code>env=</code> clause of the <code>CustomLog</code> + directive is used to include or exclude requests where the + environment variable is set. Some examples:</p> + + <blockquote> + <code># Mark requests from the loop-back interface<br /> + SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog<br /> + # Mark requests for the robots.txt file<br /> + SetEnvIf Request_URI "^/robots\.txt$" dontlog<br /> + # Log what remains<br /> + CustomLog logs/access_log common env=!dontlog</code> + </blockquote> + + <p>As another example, consider logging requests from + english-speakers to one log file, and non-english speakers to a + different log file.</p> + + <blockquote> + <code>SetEnvIf Accept-Language "en" english<br /> + CustomLog logs/english_log common env=english<br /> + CustomLog logs/non_english_log common env=!english</code> + </blockquote> + + <p>Although we have just shown that conditional logging is very + powerful and flexibly, it is not the only way to control the + contents of the logs. Log files are more useful when they + contain a complete record of server activity. It is often + easier to simply post-process the log files to remove requests + that you do not want to consider.</p> + <hr /> + + <h2><a id="rotation" name="rotation">Log Rotation</a></h2> + + <p>On even a moderately busy server, the quantity of + information stored in the log files is very large. The access + log file typically grows 1 MB or more per 10,000 requests. It + will consequently be necessary to periodically rotate the log + files by moving or deleting the existing logs. This cannot be + done while the server is running, because Apache will continue + writing to the old log file as long as it holds the file open. + Instead, the server must be <a + href="stopping.html">restarted</a> after the log files are + moved or deleted so that it will open new log files.</p> + + <p>By using a <em>graceful</em> restart, the server can be + instructed to open new log files without losing any existing or + pending connections from clients. However, in order to + accomplish this, the server must continue to write to the old + log files while it finishes serving old requests. It is + therefore necessary to wait for some time after the restart + before doing any processing on the log files. A typical + scenario that simply rotates the logs and compresses the old + logs to save space is:</p> + + <blockquote> + <code>mv access_log access_log.old<br /> + mv error_log error_log.old<br /> + apachectl graceful<br /> + sleep 600<br /> + gzip access_log.old error_log.old</code> + </blockquote> + + <p>Another way to perform log rotation is using <a + href="#piped">piped logs</a> as discussed in the next + section.</p> + <hr /> + + <h2><a id="piped" name="piped">Piped Logs</a></h2> + + <p>Apache httpd is capable of writing error and access log + files through a pipe to another process, rather than directly + to a file. This capability dramatically increases the + flexibility of logging, without adding code to the main server. + In order to write logs to a pipe, simply replace the filename + with the pipe character "<code>|</code>", followed by the name + of the executable which should accept log entries on its + standard input. Apache will start the piped-log process when + the server starts, and will restart it if it crashes while the + server is running. (This last feature is why we can refer to + this technique as "reliable piped logging".)</p> + + <p>Piped log processes are spawned by the parent Apache httpd + process, and inherit the userid of that process. This means + that piped log programs usually run as root. It is therefore + very important to keep the programs simple and secure.</p> + + <p>Some simple examples using piped logs:</p> + + <blockquote> + <code># compressed logs<br /> + CustomLog "|/usr/bin/gzip -c >> + /var/log/access_log.gz" common<br /> + # almost-real-time name resolution<br /> + CustomLog "|/usr/local/apache/bin/logresolve >> + /var/log/access_log" common</code> + </blockquote> + + <p>Notice that quotes are used to enclose the entire command + that will be called for the pipe. Although these examples are + for the access log, the same technique can be used for the + error log.</p> + + <p>One important use of piped logs is to allow log rotation + without having to restart the server. The Apache HTTP Server + includes a simple program called <a + href="programs/rotatelogs.html">rotatelogs</a> for this + purpose. For example, to rotate the logs every 24 hours, you + can use:</p> + + <blockquote> + <code>CustomLog "|/usr/local/apache/bin/rotatelogs + /var/log/access_log 86400" common</code> + </blockquote> + + <p>A similar, but much more flexible log rotation program + called <a + href="http://www.ford-mason.co.uk/resources/cronolog/">cronolog</a> + is available at an external site.</p> + + <p>As with conditional logging, piped logs are a very powerful + tool, but they should not be used where a simpler solution like + off-line post-processing is available.</p> + <hr /> + + <h2><a id="virtualhosts" name="virtualhosts">Virtual + Hosts</a></h2> + + <p>When running a server with many <a href="vhosts/">virtual + hosts</a>, there are several options for dealing with log + files. First, it is possible to use logs exactly as in a + single-host server. Simply by placing the logging directives + outside the <code><VirtualHost></code> sections in the + main server context, it is possible to log all requests in the + same access log and error log. This technique does not allow + for easy collection of statistics on individual virtual + hosts.</p> + + <p>If <code>CustomLog</code> or <code>ErrorLog</code> + directives are placed inside a <code><VirtualHost></code> + section, all requests or errors for that virtual host will be + logged only to the specified file. Any virtual host which does + not have logging directives will still have its requests sent + to the main server logs. This technique is very useful for a + small number of virtual hosts, but if the number of hosts is + very large, it can be complicated to manage. In addition, it + can often create problems with <a + href="vhosts/fd-limits.html">insufficient file + descriptors</a>.</p> + + <p>For the access log, there is a very good compromise. By + adding information on the virtual host to the log format + string, it is possible to log all hosts to the same log, and + later split the log into individual files. For example, + consider the following directives.</p> + + <blockquote> + <code>LogFormat "%v %l %u %t \"%r\" %>s %b" + comonvhost<br /> + CustomLog logs/access_log comonvhost</code> + </blockquote> + + <p>The <code>%v</code> is used to log the name of the virtual + host that is serving the request. Then a program like <a + href="programs/other.html">split-logfile</a> can be used to + post-process the access log in order to split it into one file + per virtual host.</p> + + <p>Unfortunately, no similar technique is available for the + error log, so you must choose between mixing all virtual hosts + in the same error log and using one error log per virtual + host.</p> + <hr /> + + <h2><a id="other" name="other">Other Log Files</a></h2> + + <table border="1"> + <tr> + <td valign="top"><strong>Related Modules</strong><br /> + <br /> + <a href="mod/mod_cgi.html">mod_cgi</a><br /> + <a href="mod/mod_rewrite.html">mod_rewrite</a> </td> + + <td valign="top"><strong>Related Directives</strong><br /> + <br /> + <a href="mod/core.html#pidfile">PidFile</a><br /> + <a + href="mod/mod_rewrite.html#RewriteLog">RewriteLog</a><br /> + <a + href="mod/mod_rewrite.html#RewriteLogLevel">RewriteLogLevel</a><br /> + <a href="mod/mod_cgi.html#scriptlog">ScriptLog</a><br /> + <a + href="mod/mod_cgi.html#scriptloglength">ScriptLogLength</a><br /> + <a + href="mod/mod_cgi.html#scriptlogbuffer">ScriptLogBuffer</a> + </td> + </tr> + </table> + + <h3><a id="pidfile" name="pidfile">PID File</a></h3> + + <p>On startup, Apache httpd saves the process id of the parent + httpd process to the file <code>logs/httpd.pid</code>. This + filename can be changed with the <a + href="mod/core.html#pidfile">PidFile</a> directive. The + process-id is for use by the administrator in restarting and + terminating the daemon by sending signals to the parent + process; on Windows, use the -k command line option instead. + For more information see the <a href="stopping.html">Stopping + and Restarting</a> page.</p> + + <h3><a id="scriptlog" name="scriptlog">Script Log</a></h3> + + <p>In order to aid in debugging, the <a + href="mod/mod_cgi.html#scriptlog">ScriptLog</a> directive + allows you to record the input to and output from CGI scripts. + This should only be used in testing - not for live servers. + More information is available in the <a + href="mod/mod_cgi.html">mod_cgi documentation</a>.</p> + + <h3><a id="rewritelog" name="rewritelog">Rewrite Log</a></h3> + + <p>When using the powerful and complex features of <a + href="mod/mod_rewrite.html">mod_rewrite</a>, it is almost + always necessary to use the <a + href="mod/mod_rewrite.html#RewriteLog">RewriteLog</a> to help + in debugging. This log file produces a detailed analysis of how + the rewriting engine transforms requests. The level of detail + is controlled by the <a + href="mod/mod_rewrite.html#RewriteLogLevel">RewriteLogLevel</a> + directive.</p> + <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/mod/core.html.en b/usr.sbin/httpd/htdocs/manual/mod/core.html.en new file mode 100644 index 00000000000..0701c88ed4e --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/mod/core.html.en @@ -0,0 +1,3758 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache Core Features</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + + + <h1 align="CENTER">Apache Core Features</h1> + + <p>These configuration parameters control the core Apache + features, and are always available.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#acceptfilter">AcceptFilter</a></li> + + <li><a href="#acceptmutex">AcceptMutex</a></li> + + <li><a href="#accessconfig">AccessConfig</a></li> + + <li><a href="#accessfilename">AccessFileName</a></li> + + <li><a href="#adddefaultcharset">AddDefaultCharset</a></li> + + <li><a href="#addmodule">AddModule</a></li> + + <li><a href="#allowoverride">AllowOverride</a></li> + + <li><a href="#authname">AuthName</a></li> + + <li><a href="#authtype">AuthType</a></li> + + <li><a href="#bindaddress">BindAddress</a></li> + + <li><a href="#bs2000account">BS2000Account</a></li> + + <li><a href="#clearmodulelist">ClearModuleList</a></li> + + <li><a href="#contentdigest">ContentDigest</a></li> + + <li><a href="#coredumpdirectory">CoreDumpDirectory</a></li> + + <li><a href="#defaulttype">DefaultType</a></li> + + <li><a href="#directory"><Directory></a></li> + + <li><a href="#directorymatch"><DirectoryMatch></a></li> + + <li><a href="#documentroot">DocumentRoot</a></li> + + <li><a href="#ebcdicconvert">EBCDICConvert</a></li> + + <li><a + href="#ebcdicconvertbytype">EBCDICConvertByType</a></li> + + <li><a href="#ebcdickludge">EBCDICKludge</a></li> + + <li><a href="#errordocument">ErrorDocument</a></li> + + <li><a href="#errorlog">ErrorLog</a></li> + + <li><a href="#files"><Files></a></li> + + <li><a href="#fileetag"><FileETag></a></li> + + <li><a href="#filesmatch"><FilesMatch></a></li> + + <li><a href="#group">Group</a></li> + + <li><a href="#hostnamelookups">HostnameLookups</a></li> + + <li><a href="#identitycheck">IdentityCheck</a></li> + + <li><a href="#ifdefine"><IfDefine></a></li> + + <li><a href="#ifmodule"><IfModule></a></li> + + <li><a href="#include">Include</a></li> + + <li><a href="#keepalive">KeepAlive</a></li> + + <li><a href="#keepalivetimeout">KeepAliveTimeout</a></li> + + <li><a href="#limit"><Limit></a></li> + + <li><a href="#limitexcept"><LimitExcept></a></li> + + <li><a href="#limitrequestbody">LimitRequestBody</a></li> + + <li><a href="#limitrequestfields">LimitRequestFields</a></li> + + <li><a + href="#limitrequestfieldsize">LimitRequestFieldsize</a></li> + + <li><a href="#limitrequestline">LimitRequestLine</a></li> + + <li><a href="#listen">Listen</a></li> + + <li><a href="#listenbacklog">ListenBacklog</a></li> + + <li><a href="#location"><Location></a></li> + + <li><a href="#locationmatch"><LocationMatch></a></li> + + <li><a href="#lockfile">LockFile</a></li> + + <li><a href="#loglevel">LogLevel</a></li> + + <li><a href="#maxclients">MaxClients</a></li> + + <li><a + href="#maxkeepaliverequests">MaxKeepAliveRequests</a></li> + + <li><a + href="#maxrequestsperchild">MaxRequestsPerChild</a></li> + + <li><a href="#maxspareservers">MaxSpareServers</a></li> + + <li><a href="#minspareservers">MinSpareServers</a></li> + + <li><a href="#namevirtualhost">NameVirtualHost</a></li> + + <li><a href="#options">Options</a></li> + + <li><a href="#pidfile">PidFile</a></li> + + <li><a href="#port">Port</a></li> + + <li><a href="#require">Require</a></li> + + <li><a href="#resourceconfig">ResourceConfig</a></li> + + <li><a href="#rlimitcpu">RLimitCPU</a></li> + + <li><a href="#rlimitmem">RLimitMEM</a></li> + + <li><a href="#rlimitnproc">RLimitNPROC</a></li> + + <li><a href="#satisfy">Satisfy</a></li> + + <li><a href="#scoreboardfile">ScoreBoardFile</a></li> + + <li><a + href="#scriptinterpretersource">ScriptInterpreterSource</a></li> + + <li><a href="#sendbuffersize">SendBufferSize</a></li> + + <li><a href="#serveradmin">ServerAdmin</a></li> + + <li><a href="#serveralias">ServerAlias</a></li> + + <li><a href="#servername">ServerName</a></li> + + <li><a href="#serverpath">ServerPath</a></li> + + <li><a href="#serverroot">ServerRoot</a></li> + + <li><a href="#serversignature">ServerSignature</a></li> + + <li><a href="#servertokens">ServerTokens</a></li> + + <li><a href="#servertype">ServerType</a></li> + + <li><a href="#startservers">StartServers</a></li> + + <li><a href="#threadsperchild">ThreadsPerChild</a></li> + + <li><a href="#threadstacksize">ThreadStackSize</a></li> + + <li><a href="#timeout">TimeOut</a></li> + + <li><a href="#usecanonicalname">UseCanonicalName</a></li> + + <li><a href="#user">User</a></li> + + <li><a href="#virtualhost"><VirtualHost></a></li> + </ul> + <hr /> + + <h2><a id="acceptfilter" name="acceptfilter">AcceptFilter + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AcceptFilter + on|off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>AcceptFilter + on</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server configt<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> AcceptFilter is + available in Apache 1.3.22 and later + + <p><code>AcceptFilter</code> controls a BSD specific filter + optimization. It is compiled in by default - and switched on by + default if your system supports it (setsocketopt() option + SO_ACCEPTFILTER). Currently only FreeBSD supports this.</p> + + <p>See the filter section on <a + href="misc/perf-bsd44.html">performance hints</a> for more + information.</p> + + <p>The compile time flag <code>AP_ACCEPTFILTER_OFF</code> can + be used to change the default to 'off'. <code>httpd -V</code> + and <code>httpd -L</code> will show compile time defaults and + whether or not SO_ACCEPTFILTER was defined during the + compile.</p> + + <h2><a id="acceptmutex" name="acceptmutex">AcceptMutex + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AcceptMutex + uslock|pthread|sysvsem|fcntl|flock|os2sem|tpfcore|none|default<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>AcceptMutex + default</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p><code>AcceptMutex</code> controls which accept() mutex + method Apache will use. Not all methods are available on all + platforms, since the suite of methods is determined at + compile-time. For a list of which methods are available for + your particular build, the <code>httpd -L</code> command line + option will list them out.</p> + + <p>The compile time flags <code>-D + HAVE_METHOD_SERIALIZED_ACCEPT</code> can be used to add + different methods to your build, or one can edit the + <code>include/ap_config.h</code> file for your particular + platform.</p> + + <p>See the <a href="../misc/perf-tuning.html">performance tuning + guide</a> for more information.</p> + + <h2><a id="accessconfig" name="accessconfig">AccessConfig + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AccessConfig + <em>file-path</em>|<em>directory-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>AccessConfig + conf/access.conf</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core <br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> The ability to + specify a directory, rather than a file name, is only available in + Apache 1.3.13 and later. + + <p>The server will read this file for more directives after + reading the <a href="#resourceconfig">ResourceConfig</a> file. + <em>File-path</em> is relative to the <a + href="#serverroot">ServerRoot</a>. This feature can be disabled + using:</p> + + <blockquote> + <code>AccessConfig /dev/null</code> + </blockquote> + Or, on Win32 servers, + + <blockquote> + <code>AccessConfig nul</code> + </blockquote> + Historically, this file only contained <a + href="#directory"><Directory></a> sections; in fact it + can now contain any server directive allowed in the <em>server + config</em> context. However, since Apache version 1.3.4, + the default <code>access.conf</code> file which ships with + Apache contains only comments, and all directives are placed + in the main server configuration file, <code>httpd.conf</code>. + + <p>If <code>AccessConfig</code> points to a directory, rather than a + file, Apache will read all files in that directory, and any + subdirectory, and parse those as configuration files. Note that + <emph>any</emph> file in the specified directory will be loaded as a + configuration file, so make sure that you don't have stray files in + this directory by mistake, such as temporary files created by your + editor, for example.</p> + + <p>See also <a href="#resourceconfig">ResourceConfig</a>.</p> + <hr /> + + <h2><a id="accessfilename" name="accessfilename">AccessFileName + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AccessFileName + <em>filename</em> [<em>filename</em>] ...<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>AccessFileName + .htaccess</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> AccessFileName + can accept more than one filename only in Apache 1.3 and later + + <p>When returning a document to the client the server looks for + the first existing access control file from this list of names + in every directory of the path to the document, if access + control files are enabled for that directory. For example:</p> + + <blockquote> + <code>AccessFileName .acl</code> + </blockquote> + before returning the document /usr/local/web/index.html, the + server will read /.acl, /usr/.acl, /usr/local/.acl and + /usr/local/web/.acl for directives, unless they have been + disabled with + + <blockquote> + <code><Directory /><br /> + AllowOverride None<br /> + </Directory></code> + </blockquote> + + <p><strong>See Also:</strong> <a + href="#allowoverride">AllowOverride</a></p> + <hr /> + + <h2><a id="adddefaultcharset" + name="adddefaultcharset">AddDefaultCharset directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AddDefaultCharset + On|Off|<em>charset</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> all<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> + <code>AddDefaultCharset Off</code><br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> + AddDefaultCharset is only available in Apache 1.3.12 and later + + <p>This directive specifies the name of the character set that + will be added to any response that does not have any parameter + on the content type in the HTTP headers. This will override any + character set specified in the body of the document via a + <code>META</code> tag. A setting of <code>AddDefaultCharset + Off</code> disables this functionality. <code>AddDefaultCharset + On</code> enables Apache's internal default charset of + <code>iso-8859-1</code> as required by the directive. You can + also specify an alternate <em>charset</em> to be used; e.g. + <code>AddDefaultCharset utf-8</code>.</p> + <hr /> + + <h2><a id="addmodule" name="addmodule">AddModule + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AddModule + <em>module</em> [<em>module</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config <br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> AddModule is + only available in Apache 1.2 and later + + <p>The server can have modules compiled in which are not + actively in use. This directive can be used to enable the use + of those modules. The server comes with a pre-loaded list of + active modules; this list can be cleared with the <a + href="#clearmodulelist">ClearModuleList</a> directive.</p> + <hr /> + + <h2><a id="allowoverride" name="allowoverride">AllowOverride + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AllowOverride + All|None|<em>directive-type</em> [<em>directive-type</em>] + ...<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>AllowOverride + All</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>When the server finds an .htaccess file (as specified by <a + href="#accessfilename">AccessFileName</a>) it needs to know + which directives declared in that file can override earlier + access information.</p> + + <p>When this directive is set to <code>None</code>, then + .htaccess files are completely ignored. In this case, the + server will not even attempt to read .htaccess files in the + filesystem.</p> + + <p>When this directive is set to <code>All</code>, then any + directive which has the .htaccess <a + href="directive-dict.html#Context">Context</a> is allowed in + .htaccess files.</p> + + <p>The <em>directive-type</em> can be one of the following + groupings of directives.</p> + + <dl> + <dt>AuthConfig</dt> + + <dd> + + Allow use of the authorization directives (<a + href="mod_auth_dbm.html#authdbmgroupfile">AuthDBMGroupFile</a>, + <a + href="mod_auth_dbm.html#authdbmuserfile">AuthDBMUserFile</a>, + <a href="mod_auth.html#authgroupfile">AuthGroupFile</a>, <a + href="#authname">AuthName</a>, <a + href="#authtype">AuthType</a>, <a + href="mod_auth.html#authuserfile">AuthUserFile</a>, <a + href="#require">Require</a>, <em>etc.</em>).</dd> + + <dt>FileInfo</dt> + + <dd> + Allow use of the directives controlling document types (<a + href="mod_mime.html#addencoding">AddEncoding</a>, <a + href="mod_mime.html#addlanguage">AddLanguage</a>, <a + href="mod_mime.html#addtype">AddType</a>, <a + href="#defaulttype">DefaultType</a>, <a + href="#errordocument">ErrorDocument</a>, <a + href="mod_negotiation.html#languagepriority">LanguagePriority</a>, + <em>etc.</em>).</dd> + + <dt>Indexes</dt> + + <dd> + Allow use of the directives controlling directory indexing + (<a + href="mod_autoindex.html#adddescription">AddDescription</a>, + <a href="mod_autoindex.html#addicon">AddIcon</a>, <a + href="mod_autoindex.html#addiconbyencoding">AddIconByEncoding</a>, + <a href="mod_autoindex.html#addiconbytype">AddIconByType</a>, + <a href="mod_autoindex.html#defaulticon">DefaultIcon</a>, <a + href="mod_dir.html#directoryindex">DirectoryIndex</a>, <a + href="mod_autoindex.html#fancyindexing">FancyIndexing</a>, <a + href="mod_autoindex.html#headername">HeaderName</a>, <a + href="mod_autoindex.html#indexignore">IndexIgnore</a>, <a + href="mod_autoindex.html#indexoptions">IndexOptions</a>, <a + href="mod_autoindex.html#readmename">ReadmeName</a>, + <em>etc.</em>).</dd> + + <dt>Limit</dt> + + <dd> + Allow use of the directives controlling host access (Allow, + Deny and Order).</dd> + + <dt>Options</dt> + + <dd> + Allow use of the directives controlling specific directory + features (<a href="#options">Options</a> and <a + href="mod_include.html#xbithack">XBitHack</a>).</dd> + </dl> + + <p><strong>See Also:</strong> <a + href="#accessfilename">AccessFileName</a></p> + <hr /> + + <h2><a id="authname" name="authname">AuthName + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AuthName + <em>auth-domain</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> AuthConfig<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>This directive sets the name of the authorization realm for + a directory. This realm is given to the client so that the user + knows which username and password to send. + <samp>AuthName</samp> takes a single argument; if the realm + name contains spaces, it must be enclosed in quotation marks. + It must be accompanied by <a href="#authtype">AuthType</a> and + <a href="#require">Require</a> directives, and directives such + as <a href="mod_auth.html#authuserfile">AuthUserFile</a> and <a + href="mod_auth.html#authgroupfile">AuthGroupFile</a> to + work.</p> + <hr /> + + <h2><a id="authtype" name="authtype">AuthType + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AuthType + Basic|Digest<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> AuthConfig<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>This directive selects the type of user authentication for a + directory. Only <code>Basic</code> and <code>Digest</code> are + currently implemented. + + It must be accompanied by <a href="#authname">AuthName</a> and + <a href="#require">Require</a> directives, and directives such + as <a href="mod_auth.html#authuserfile">AuthUserFile</a> and <a + href="mod_auth.html#authgroupfile">AuthGroupFile</a> to + work.</p> + <hr /> + + <h2><a id="bindaddress" name="bindaddress">BindAddress + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> BindAddress + *|<em>IP-address</em>|<em>domain-name</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>BindAddress + *</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>A Unix® http server can either listen for connections to + every IP address of the server machine, or just one IP address + of the server machine. If the argument to this directive is *, + then the server will listen for connections on every IP + address. Otherwise, the server can listen to only a specific + <em>IP-address</em> or a fully-qualified Internet + <em>domain-name</em>.</p> + + <p>Only one <code>BindAddress</code> directive can be used. For + more control over which address and ports Apache listens to, + use the <code><a href="#listen">Listen</a></code> directive + instead of <code>BindAddress</code>.</p> + + <p><code>BindAddress</code> can be used as an alternative + method for supporting <a href="../vhosts/">virtual hosts</a> + using multiple independent servers, instead of using <code><a + href="#virtualhost"><VirtualHost></a></code> + sections.</p> + + <p><strong>See Also:</strong> <a href="../dns-caveats.html">DNS + Issues</a><br /> + <strong>See Also:</strong> <a href="../bind.html">Setting + which addresses and ports Apache uses</a></p> + <hr /> + + <h2><a id="bs2000account" name="bs2000account">BS2000Account + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> BS2000Account + <em>account</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>none</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> BS2000Account is + only available for BS2000 machines, as of Apache 1.3 and later. + + + <p>The <code>BS2000Account</code> directive is available for + BS2000 hosts only. It must be used to define the account number + for the non-privileged apache server user (which was configured + using the <a href="#user">User</a> directive). This is required + by the BS2000 POSIX subsystem (to change the underlying BS2000 + task environment by performing a sub-LOGON) to prevent CGI + scripts from accessing resources of the privileged account + which started the server, usually <samp>SYSROOT</samp>.<br /> + Only one <code>BS2000Account</code> directive can be used.</p> + + <p><strong>See Also:</strong> <a href="../ebcdic.html">Apache + EBCDIC port</a></p> + <hr /> + + <h2><a id="clearmodulelist" + name="clearmodulelist">ClearModuleList directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ClearModuleList<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ClearModuleList + is only available in Apache 1.2 and later + + <p>The server comes with a built-in list of active modules. + This directive clears the list. It is assumed that the list + will then be re-populated using the <a + href="#addmodule">AddModule</a> directive.</p> + <hr /> + + <h2><a id="contentdigest" name="contentdigest">ContentDigest + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ContentDigest + on|off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ContentDigest + off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> Options<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> experimental<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ContentDigest is + only available in Apache 1.1 and later + + <p>This directive enables the generation of + <code>Content-MD5</code> headers as defined in RFC1864 + respectively RFC2068.</p> + + <p>MD5 is an algorithm for computing a "message digest" + (sometimes called "fingerprint") of arbitrary-length data, with + a high degree of confidence that any alterations in the data + will be reflected in alterations in the message digest.</p> + + <p>The <code>Content-MD5</code> header provides an end-to-end + message integrity check (MIC) of the entity-body. A proxy or + client may check this header for detecting accidental + modification of the entity-body in transit. Example header:</p> +<pre> + Content-MD5: AuLb7Dp1rqtRtxz2m9kRpA== +</pre> + + <p>Note that this can cause performance problems on your server + since the message digest is computed on every request (the + values are not cached).</p> + + <p><code>Content-MD5</code> is only sent for documents served + by the core, and not by any module. For example, SSI documents, + output from CGI scripts, and byte range responses do not have + this header.</p> + <hr /> + + <h2><a id="coredumpdirectory" + name="coredumpdirectory">CoreDumpDirectory directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> CoreDumpDirectory + <em>directory-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> the same location as + ServerRoot<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>This controls the directory to which Apache attempts to + switch before dumping core. The default is in the <a + href="#serverroot">ServerRoot</a> directory, however since this + should not be writable by the user the server runs as, core + dumps won't normally get written. If you want a core dump for + debugging, you can use this directive to place it in a + different location.</p> + <hr /> + + <h2><a id="defaulttype" name="defaulttype">DefaultType + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> DefaultType + <em>MIME-type</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>DefaultType + text/html</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>There will be times when the server is asked to provide a + document whose type cannot be determined by its MIME types + mappings.</p> + + <p>The server must inform the client of the content-type of the + document, so in the event of an unknown type it uses the + <code>DefaultType</code>. For example:</p> + + <blockquote> + <code>DefaultType image/gif</code> + </blockquote> + would be appropriate for a directory which contained many gif + images with filenames missing the .gif extension. + <hr /> + + <h2><a id="directory" name="directory"><Directory> + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <Directory + <em>directory-path</em>> ... </Directory> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core. + + <p><Directory> and </Directory> are used to enclose + a group of directives which will apply only to the named + directory and sub-directories of that directory. Any directive + which is allowed in a directory context may be used. + <em>Directory-path</em> is either the full path to a directory, + or a wild-card string. In a wild-card string, `?' matches any + single character, and `*' matches any sequences of characters. + As of Apache 1.3, you may also use `[]' character ranges like + in the shell. Also as of Apache 1.3 none of the wildcards match + a `/' character, which more closely mimics the behavior of + Unix shells. Example:</p> +<pre> + <Directory /usr/local/httpd/htdocs> + Options Indexes FollowSymLinks + </Directory> +</pre> + + <p><strong>Apache 1.2 and above:</strong> Extended regular + expressions can also be used, with the addition of the + <code>~</code> character. For example:</p> +<pre> + <Directory ~ "^/www/.*/[0-9]{3}"> +</pre> + would match directories in /www/ that consisted of three + numbers. + + <p>If multiple (non-regular expression) directory sections + match the directory (or its parents) containing a document, + then the directives are applied in the order of shortest match + first, interspersed with the directives from the <a + href="#accessfilename">.htaccess</a> files. For example, + with</p> + + <blockquote> + <code><Directory /><br /> + AllowOverride None<br /> + </Directory><br /> + <br /> + <Directory /home/*><br /> + AllowOverride FileInfo<br /> + </Directory></code> + </blockquote> + for access to the document <code>/home/web/dir/doc.html</code> + the steps are: + + <ul> + <li>Apply directive <code>AllowOverride None</code> + (disabling <code>.htaccess</code> files).</li> + + <li>Apply directive <code>AllowOverride FileInfo</code> (for + directory <code>/home/web</code>).</li> + + <li>Apply any FileInfo directives in + <code>/home/web/.htaccess</code></li> + </ul> + + <p>Regular expression directory sections are handled slightly + differently by Apache 1.2 and 1.3. In Apache 1.2 they are + interspersed with the normal directory sections and applied in + the order they appear in the configuration file. They are + applied only once, and apply when the shortest match possible + occurs. In Apache 1.3 regular expressions are not considered + until after all of the normal sections have been applied. Then + all of the regular expressions are tested in the order they + appeared in the configuration file. For example, with</p> + + <blockquote> + <code><Directory ~ abc$><br /> + ... directives here ...<br /> + </Directory><br /> + </code> + </blockquote> + Suppose that the filename being accessed is + <code>/home/abc/public_html/abc/index.html</code>. The server + considers each of <code>/</code>, <code>/home</code>, + <code>/home/abc</code>, <code>/home/abc/public_html</code>, and + <code>/home/abc/public_html/abc</code> in that order. In Apache + 1.2, when <code>/home/abc</code> is considered, the regular + expression will match and be applied. In Apache 1.3 the regular + expression isn't considered at all at that point in the tree. + It won't be considered until after all normal + <Directory>s and <code>.htaccess</code> files have been + applied. Then the regular expression will match on + <code>/home/abc/public_html/abc</code> and be applied. + + <p><strong>Note that the default Apache access for + <Directory /> is <samp>Allow from All</samp>. This means + that Apache will serve any file mapped from an URL. It is + recommended that you change this with a block such + as</strong></p> +<pre> + <Directory /> + Order Deny,Allow + Deny from All + </Directory> +</pre> + + <p><strong>and then override this for directories you + <em>want</em> accessible. See the <a + href="../misc/security_tips.html">Security Tips</a> page for + more details.</strong></p> + The directory sections typically occur in the access.conf file, + but they may appear in any configuration file. + <Directory> directives cannot nest, and cannot appear in + a <a href="#limit"><Limit></a> or <a + href="#limitexcept"><LimitExcept></a> section. + + <p><strong>See also</strong>: <a href="../sections.html">How + Directory, Location and Files sections work</a> for an + explanation of how these different sections are combined when a + request is received</p> + <hr /> + + <h2><a id="directorymatch" + name="directorymatch"><DirectoryMatch></a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <DirectoryMatch + <em>regex</em>> ... </DirectoryMatch> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core.<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in + Apache 1.3 and later + + <p><DirectoryMatch> and </DirectoryMatch> are used + to enclose a group of directives which will apply only to the + named directory and sub-directories of that directory, the same + as <a href="#directory"><Directory></a>. However, it + takes as an argument a regular expression. For example:</p> +<pre> + <DirectoryMatch "^/www/.*/[0-9]{3}"> +</pre> + + <p>would match directories in /www/ that consisted of three + numbers.</p> + + <p><strong>See Also:</strong> <a + href="#directory"><Directory></a> for a description of + how regular expressions are mixed in with normal + <Directory>s.<br /> + <strong>See also</strong>: <a href="../sections.html">How + Directory, Location and Files sections work</a> for an + explanation of how these different sections are combined when a + request is received</p> + <hr /> + + <h2><a id="documentroot" name="documentroot">DocumentRoot + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> DocumentRoot + <em>directory-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>DocumentRoot + /usr/local/apache/htdocs</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>This directive sets the directory from which httpd will + serve files. Unless matched by a directive like Alias, the + server appends the path from the requested URL to the document + root to make the path to the document. Example:</p> + + <blockquote> + <code>DocumentRoot /usr/web</code> + </blockquote> + then an access to + <code>http://www.my.host.com/index.html</code> refers to + <code>/usr/web/index.html</code>. + + <p>There appears to be a bug in mod_dir which causes problems + when the DocumentRoot has a trailing slash (<em>i.e.</em>, + "DocumentRoot /usr/web/") so please avoid that.</p> + <hr /> + + <h2><a id="ebcdicconvert" + name="ebcdicconvert">EBCDICConvert</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> EBCDICConvert + On|Off[=<em>direction</em>] <em>extension</em> + [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> The configurable + EBCDIC conversion is only available in Apache 1.3.19 and later, + and on EBCDIC based platforms. + + <p>The EBCDICConvert directive maps the given filename + extensions to the specified conversion setting (<samp>On</samp> + or <samp>Off</samp>). File extensions may be specified with or + without a leading dot.</p> + + <p>If the optional format <samp>On=<i>direction</i></samp> (or + <samp>Off=<i>direction</i></samp>) is used, where + <i>direction</i> is one of <samp>In</samp>, <samp>Out</samp> or + <samp>InOut</samp>, then the directive only applies to the + specified transfer direction (<samp>In</samp>: uploaded content + in a PUT or POST request, <samp>Out</samp>: returned content in + a GET or POST request, and <samp>InOut</samp>: conversion in + both directions).<br /> + Otherwise, <samp>InOut</samp> (conversion in both directions) + is implied.</p> + + <p>Conversion configuration based on file extension is tested + prior to configuration based on MIME type, to allow for generic + MIME based rules to be overridden by a more specific file + extension (several file extensions may exist for the same MIME + type).</p> + + <p><strong>Example</strong>:<br /> + With a configuration like the following, the normal + <samp>*.html</samp> files contain HTML text in EBCDIC encoding, + while <samp>*.ahtml</samp> files contain HTML text in ASCII + encoding:</p> +<pre> + # *.html and *.ahtml contain HTML text: + AddType text/html .html .ahtml + + # *.ahtml is not converted (contains ASCII text already): + EBCDICConvert Off .ahtml + + # All other text/html files presumably contain EBCDIC text: + EBCDICConvertByType On text/html +</pre> + <br /> + <br /> + + + <p><strong>See also</strong>: <a + href="#ebcdicconvertbytype">EBCDICConvertByType</a> and <a + href="../ebcdic.html#ebcdic">Overview of the EBCDIC Conversion + Functions</a></p> + <hr /> + + <h2><a id="ebcdicconvertbytype" + name="ebcdicconvertbytype">EBCDICConvertByType</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> EBCDICConvertByType + On|Off[=<em>direction</em>] <em>mimetype</em> + [<em>mimetype</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> The configurable + EBCDIC conversion is only available in Apache 1.3.19 and later, + and on EBCDIC based platforms. + + <p>The EBCDICConvertByType directive maps the given MIME type + (optionally containing wildcards) to the specified conversion + setting (<samp>On</samp> or <samp>Off</samp>).</p> + + <p>If the optional format <samp>On=<i>direction</i></samp> (or + <samp>Off=<i>direction</i></samp>) is used, where + <i>direction</i> is one of <samp>In</samp>, <samp>Out</samp> or + <samp>InOut</samp>, then the directive only applies to the + specified transfer direction (<samp>In</samp>: uploaded content + in a PUT or POST request, <samp>Out</samp>: returned content in + a GET or POST request, and <samp>InOut</samp>: conversion in + both directions).<br /> + Otherwise, <samp>InOut</samp> (conversion in both directions) + is implied.</p> + + <p><strong>Example</strong>:<br /> + A useful standard configuration should at least contain the + following defaults:</p> +<pre> + # All text documents are stored as EBCDIC files: + EBCDICConvertByType On text/* message/* multipart/* + EBCDICConvertByType On application/x-www-form-urlencoded \ + model/vrml application/postscript + # All other files are assumed to be binary: + EBCDICConvertByType Off */* +</pre> + If you serve ASCII documents only, for example from an NFS + mounted unix server, use: +<pre> + # All documents are ASCII already: + EBCDICConvertByType Off */* +</pre> + + <p><strong>See also</strong>: <a + href="#ebcdicconvert">EBCDICConvert</a> and <a + href="../ebcdic.html#ebcdic">Overview of the EBCDIC Conversion + Functions</a></p> + <hr /> + + <h2><a id="ebcdickludge" + name="ebcdickludge">EBCDICKludge</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> EBCDICKludge + On|Off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>EBCDICKludge + Off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> EBCDICKludge is + only available in Apache 1.3.19 and later, and on EBCDIC based + platforms. It is deprecated and will be withdrawn in a future + version.<br /> + + + <p>The EBCDICKludge is provided for the backward compatible + behavior with apache versions 1.3.0 through 1.3.18. In these + versions, all files with MIME types starting with "text/", + "message/" or "multipart/" or with type + "application/x-www-form-urlencoded" would be converted by + default, all other documents were returned unconverted. Only if + a MIME type "<samp>text/<b>x-ascii-</b><i>subtype</i></samp>" + was configured for a certain document, the document was assumed + to be in ASCII format already, and was not converted again. + Instead, the "<samp><b>x-ascii-</b></samp>" was removed from + the type, resulting in the MIME type + "<samp>text/<i>subtype</i></samp>" being returned for the + document.</p> + + <p>If the EBCDICKludge directive is set to <samp>On</samp>, and + if none of the file extensions configured with the <a + href="#ebcdicconvert">EBCDICConvert</a> directive matches in + the current context, then the server tests for a MIME type of + the format + <samp><i>type/</i><b>x-ascii-</b><i>subtype</i></samp>. If the + document has such a type, then the + "<samp><b>x-ascii-</b></samp>" substring is removed and the + conversion set to <samp>Off</samp>. This allows for overriding + the implicit assumption that all text files are stored in + EBCDIC format, for example when serving documents from an NFS + mounted directory with ASCII documents.<br /> + By using the EBCDICKludge, there is no way to force one of the + other MIME types (<em>e.g.</em>, model/vrml) to be treated as + an EBCDIC text file. Use of the <a + href="#ebcdicconvertbytype">EBCDICConvertByType</a> directive + mentioned above is the preferred way to configure such a + conversion. (Before Apache version 1.3.19, there was no way at + all to force these binary documents to be treated as EBCDIC + text files.)</p> + + <p><strong>See also</strong>: <a + href="#ebcdicconvert">EBCDICConvert</a>, <a + href="#ebcdicconvertbytype">EBCDICConvertByType</a> and <a + href="../ebcdic.html#ebcdic">Overview of the EBCDIC Conversion + Functions</a></p> + <hr /> + + <h2><a id="errordocument" name="errordocument">ErrorDocument + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ErrorDocument + <em>error-code document</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> The directory + and .htaccess contexts are only available in Apache 1.1 and + later. + + <p>In the event of a problem or error, Apache can be configured + to do one of four things,</p> + + <ol> + <li>output a simple hardcoded error message</li> + + <li>output a customized message</li> + + <li>redirect to a local <em>URL-path</em> to handle the + problem/error</li> + + <li>redirect to an external <em>URL</em> to handle the + problem/error</li> + </ol> + + <p>The first option is the default, while options 2-4 are + configured using the <code>ErrorDocument</code> directive, + which is followed by the HTTP response code and a message or + URL.</p> + + <p><em>Messages</em> in this context begin with a single + double-quote character (<code>"</code>), which does not form + part of the message itself. Apache will sometimes offer + additional information regarding the problem/error.</p> + + <p>URLs can begin with a slash (/) for local URLs, or be a full + URL which the client can resolve. Examples:</p> + + <blockquote> + <code>ErrorDocument 500 + http://foo.example.com/cgi-bin/tester<br /> + ErrorDocument 404 /cgi-bin/bad_urls.pl<br /> + ErrorDocument 401 /subscription_info.html<br /> + ErrorDocument 403 "Sorry can't allow you access today</code> + </blockquote> + + <p>Note that when you specify an <code>ErrorDocument</code> + that points to a remote URL (ie. anything with a method such as + "http" in front of it), Apache will send a redirect to the + client to tell it where to find the document, even if the + document ends up being on the same server. This has several + implications, the most important being that the client will not + receive the original error status code, but instead will + receive a redirect status code. This in turn can confuse web + robots and other clients which try to determine if a URL is + valid using the status code. In addition, if you use a remote + URL in an <code>ErrorDocument 401</code>, the client will not + know to prompt the user for a password since it will not + receive the 401 status code. Therefore, <strong>if you use an + "ErrorDocument 401" directive then it must refer to a local + document.</strong></p> + + <p>See Also: <a href="../custom-error.html">documentation of + customizable responses.</a></p> + <hr /> + + <h2><a id="errorlog" name="errorlog">ErrorLog + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ErrorLog + <em>file-path</em>|syslog[:<em>facility</em>] <br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ErrorLog + logs/error_log</code> (Unix)<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ErrorLog + logs/error.log</code> (Windows and OS/2)<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The error log directive sets the name of the file to which + the server will log any errors it encounters. If the + <em>file-path</em> does not begin with a slash (/) then it is + assumed to be relative to the <a + href="#serverroot">ServerRoot</a>. If the <em>file-path</em> + begins with a pipe (|) then it is assumed to be a command to + spawn to handle the error log.</p> + + <p><strong>Apache 1.3 and above:</strong> Using + <code>syslog</code> instead of a filename enables logging via + syslogd(8) if the system supports it. The default is to use + syslog facility <code>local7</code>, but you can override this + by using the <code>syslog:</code><em>facility</em> syntax where + <em>facility</em> can be one of the names usually documented in + syslog(1).</p> + + <p>SECURITY: See the <a + href="../misc/security_tips.html#serverroot">security tips</a> + document for details on why your security could be compromised + if the directory where logfiles are stored is writable by + anyone other than the user that starts the server.</p> + + <p><strong>See also:</strong> <a href="#loglevel">LogLevel</a> + and <a href="../logs.html">Apache Log Files</a></p> + <hr /> + + <h2><a id="fileetag" name="fileetag"><FileETag> directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> FileETag + <i>component</i> ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> only available + in Apache 1.3.23 versions and later. + + <p> + The FileETag directive configures the file attributes that are + used to create the ETag (entity tag) response header field + when the document is based on a file. + (The ETag value is used in cache management to save network + bandwidth.) In Apache 1.3.22 and earlier, the ETag value was + <i>always</i> formed from the file's inode, size, and last-modified + time (mtime). The FileETag directive allows you to choose + which of these -- if any -- should be used. The recognised + keywords are: + </p> + <dl compact="compact"> + <dt><b>INode</b></dt> + <dd>The file's i-node number will be included in the calculation</dd> + <dt><b>MTime</b></dt> + <dd>The date and time the file was last modified will be included</dd> + <dt><b>Size</b></dt> + <dd>The number of bytes in the file will be included</dd> + <dt><b>All</b></dt> + <dd>All available fields will be used (equivalent to + '<code>FileETag INode MTime Size</code>')</dd> + <dt><b>None</b></dt> + <dd>If a document is file-based, no ETag field will be included in the + response</dd> + </dl> + <p> + The INode, MTime, and Size keywords may be prefixed with either '+' + or '-', which allow changes to be made to the default setting + inherited from a broader scope. Any keyword appearing without + such a prefix immediatey and completely cancels the inherited + setting. + </p> + <p> + If a directory's configuration includes + '<code>FileETag INode MTime Size</code>', and a + subdirectory's includes '<code>FileETag -INode</code>', + the setting for that subdirectory (which will be inherited by + any sub-subdirectories that don't override it) will be equivalent to + '<code>FileETag MTime Size</code>'. + </p> + <hr /> + + <h2><a id="files" name="files"><Files> directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <Files + <em>filename</em>> ... </Files><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> only available + in Apache 1.2 and above. + + <p>The <Files> directive provides for access control by + filename. It is comparable to the <a + href="#directory"><Directory></a> directive and <a + href="#location"><Location></a> directives. It should be + matched with a </Files> directive. The directives given + within this section will be applied to any object with a + basename (last component of filename) matching the specified + filename. <code><Files></code> sections are processed in + the order they appear in the configuration file, after the + <Directory> sections and <code>.htaccess</code> files are + read, but before <Location> sections. Note that + <Files> can be nested inside <Directory> sections + to restrict the portion of the filesystem they apply to.</p> + + <p>The <em>filename</em> argument should include a filename, or + a wild-card string, where `?' matches any single character, and + `*' matches any sequences of characters. Extended regular + expressions can also be used, with the addition of the + <code>~</code> character. For example:</p> +<pre> + <Files ~ "\.(gif|jpe?g|png)$"> +</pre> + would match most common Internet graphics formats. In Apache + 1.3 and later, <a href="#filesmatch"><FilesMatch></a> is + preferred, however. + + <p>Note that unlike <a + href="#directory"><code><Directory></code></a> and <a + href="#location"><code><Location></code></a> sections, + <code><Files></code> sections can be used inside + .htaccess files. This allows users to control access to their + own files, at a file-by-file level.</p> + + <p><strong>See also</strong>: <a href="../sections.html">How + Directory, Location and Files sections work</a> for an + explanation of how these different sections are combined when a + request is received</p> + <hr /> + + <h2><a id="filesmatch" + name="filesmatch"><FilesMatch></a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <FilesMatch + <em>regex</em>> ... </FilesMatch><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> only available + in Apache 1.3 and above. + + <p>The <FilesMatch> directive provides for access control + by filename, just as the <a href="#files"><Files></a> + directive does. However, it accepts a regular expression. For + example:</p> +<pre> + <FilesMatch "\.(gif|jpe?g|png)$"> +</pre> + + <p>would match most common Internet graphics formats.</p> + <strong>See also</strong>: <a href="../sections.html">How + Directory, Location and Files sections work</a> for an + explanation of how these different sections are combined when a + request is received + <hr /> + + <h2><a id="group" name="group">Group directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> Group + <em>unix-group</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>Group + #-1</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The Group directive sets the group under which the server + will answer requests. In order to use this directive, the + stand-alone server must be run initially as root. + <em>Unix-group</em> is one of:</p> + + <dl> + <dt>A group name</dt> + + <dd>Refers to the given group by name.</dd> + + <dt># followed by a group number.</dt> + + <dd>Refers to a group by its number.</dd> + </dl> + It is recommended that you set up a new group specifically for + running the server. Some admins use user <code>nobody</code>, + but this is not always possible or desirable. + + <p>Note: if you start the server as a non-root user, it will + fail to change to the specified group, and will instead + continue to run as the group of the original user.</p> + + <p>Special note: Use of this directive in <VirtualHost> + requires a properly configured <a href="../suexec.html">suEXEC + wrapper</a>. When used inside a <VirtualHost> in this + manner, only the group that CGIs are run as is affected. + Non-CGI requests are still processed as the group specified in + the main Group directive.</p> + + <p>SECURITY: See <a href="#user">User</a> for a discussion of + the security considerations.</p> + <hr /> + + <h2><a id="hostnamelookups" + name="hostnamelookups">HostnameLookups directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> HostnameLookups + on|off|double<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>HostnameLookups + off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> + <code>double</code> available only in Apache 1.3 and + above.<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Default was + <code>on</code> prior to Apache 1.3. + + <p>This directive enables DNS lookups so that host names can be + logged (and passed to CGIs/SSIs in <code>REMOTE_HOST</code>). + The value <code>double</code> refers to doing double-reverse + DNS. That is, after a reverse lookup is performed, a forward + lookup is then performed on that result. At least one of the ip + addresses in the forward lookup must match the original + address. (In "tcpwrappers" terminology this is called + <code>PARANOID</code>.)</p> + + <p>Regardless of the setting, when <a + href="mod_access.html">mod_access</a> is used for controlling + access by hostname, a double reverse lookup will be performed. + This is necessary for security. Note that the result of this + double-reverse isn't generally available unless you set + <code>HostnameLookups double</code>. For example, if only + <code>HostnameLookups on</code> and a request is made to an + object that is protected by hostname restrictions, regardless + of whether the double-reverse fails or not, CGIs will still be + passed the single-reverse result in + <code>REMOTE_HOST</code>.</p> + + <p>The default for this directive was previously + <code>on</code> in versions of Apache prior to 1.3. It was + changed to <code>off</code> in order to save the network + traffic for those sites that don't truly need the reverse + lookups done. It is also better for the end users because they + don't have to suffer the extra latency that a lookup entails. + Heavily loaded sites should leave this directive + <code>off</code>, since DNS lookups can take considerable + amounts of time. The utility <a + href="../programs/logresolve.html">logresolve</a>, provided in + the <em>/support</em> directory, can be used to look up host + names from logged IP addresses offline.</p> + <hr /> + + <h2><a id="identitycheck" name="identitycheck">IdentityCheck + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> IdentityCheck + on|off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>IdentityCheck + off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>This directive enables RFC1413-compliant logging of the + remote user name for each connection, where the client machine + runs identd or something similar. This information is logged in + the access log. <em>Boolean</em> is either <code>on</code> or + <code>off</code>.</p> + + <p>The information should not be trusted in any way except for + rudimentary usage tracking.</p> + + <p>Note that this can cause serious latency problems accessing + your server 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 /> + + <h2><a id="ifdefine" name="ifdefine"><IfDefine> + directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <IfDefine + [!]<em>parameter-name</em>> <em>...</em> + </IfDefine><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> None<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> all<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> <IfDefine> + is only available in 1.3.1 and later. + + <p>The <IfDefine <em>test</em>>...</IfDefine> + section is used to mark directives that are conditional. The + directives within an IfDefine section are only processed if the + <em>test</em> is true. If <em>test</em> is false, everything + between the start and end markers is ignored.</p> + + <p>The <em>test</em> in the <IfDefine> section directive + can be one of two forms:</p> + + <ul> + <li><em>parameter-name</em></li> + + <li><code>!</code><em>parameter-name</em></li> + </ul> + + <p>In the former case, the directives between the start and end + markers are only processed if the parameter named + <em>parameter-name</em> is defined. The second format reverses + the test, and only processes the directives if + <em>parameter-name</em> is <strong>not</strong> defined.</p> + + <p>The <em>parameter-name</em> argument is a define as given on + the <code>httpd</code> command line via + <code>-D</code><em>parameter-</em>, at the time the server was + started.</p> + + <p><IfDefine> sections are nest-able, which can be used + to implement simple multiple-parameter tests. Example:</p> +<pre> + $ httpd -DReverseProxy ... + + # httpd.conf + <IfDefine ReverseProxy> + LoadModule rewrite_module libexec/mod_rewrite.so + LoadModule proxy_module libexec/libproxy.so + </IfDefine> +</pre> + <hr /> + + <h2><a id="ifmodule" name="ifmodule"><IfModule> + directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <IfModule + [!]<em>module-name</em>> <em>...</em> + </IfModule><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> None<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> all<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> IfModule is only + available in 1.2 and later. + + <p>The <IfModule <em>test</em>>...</IfModule> + section is used to mark directives that are conditional. The + directives within an IfModule section are only processed if the + <em>test</em> is true. If <em>test</em> is false, everything + between the start and end markers is ignored.</p> + + <p>The <em>test</em> in the <IfModule> section directive + can be one of two forms:</p> + + <ul> + <li><em>module name</em></li> + + <li>!<em>module name</em></li> + </ul> + + <p>In the former case, the directives between the start and end + markers are only processed if the module named <em>module + name</em> is compiled in to Apache. The second format reverses + the test, and only processes the directives if <em>module + name</em> is <strong>not</strong> compiled in.</p> + + <p>The <em>module name</em> argument is a module name as given + as the file name of the module, at the time it was compiled. + For example, <code>mod_rewrite.c</code>.</p> + + <p><IfModule> sections are nest-able, which can be used + to implement simple multiple-module tests.</p> + <hr /> + + <h2><a id="include" name="include">Include directive</a></h2> + <strong>Syntax:</strong> Include + <em>file-path</em>|<em>directory-path</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Include is only + available in Apache 1.3 and later. + + <p>This directive allows inclusion of other configuration files + from within the server configuration files.</p> + + <p>New in Apache 1.3.13 is the feature that if + <code>Include</code> points to a directory, rather than a file, + Apache will read all files in that directory, and any + subdirectory, and parse those as configuration files.</p> + <hr /> + + <h2><a id="keepalive" name="keepalive">KeepAlive + directive</a></h2> + <strong>Syntax: (Apache 1.1)</strong> KeepAlive + <em>max-requests</em><br /> + <strong>Default: (Apache 1.1)</strong> <code>KeepAlive + 5</code><br /> + <strong>Syntax: (Apache 1.2)</strong> KeepAlive on|off<br /> + <strong>Default: (Apache 1.2)</strong> <code>KeepAlive + On</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> KeepAlive is + only available in Apache 1.1 and later. + + <p>The Keep-Alive extension to HTTP/1.0 and the persistent + connection feature of HTTP/1.1 provide long-lived HTTP sessions + which allow multiple requests to be sent over the same TCP + connection. In some cases this has been shown to result in an + almost 50% speedup in latency times for HTML documents with + many images. To enable Keep-Alive connections in Apache 1.2 and + later, set <code>KeepAlive On</code>.</p> + + <p>For HTTP/1.0 clients, Keep-Alive connections will only be + used if they are specifically requested by a client. In + addition, a Keep-Alive connection with an HTTP/1.0 client can + only be used when the length of the content is known in + advance. This implies that dynamic content such as CGI output, + SSI pages, and server-generated directory listings will + generally not use Keep-Alive connections to HTTP/1.0 clients. + For HTTP/1.1 clients, persistent connections are the default + unless otherwise specified. If the client requests it, chunked + encoding will be used in order to send content of unknown + length over persistent connections.</p> + + <p><strong>Apache 1.1 only</strong>: Set <em>max-requests</em> + to the maximum number of requests you want Apache to entertain + per connection. A limit is imposed to prevent a client from + hogging your server resources. Set this to <code>0</code> to + disable support. In Apache 1.2 and 1.3, this is controlled + through the MaxKeepAliveRequests directive instead.</p> + + <p>See also <a + href="#maxkeepaliverequests">MaxKeepAliveRequests</a>.</p> + <hr /> + + <h2><a id="keepalivetimeout" + name="keepalivetimeout">KeepAliveTimeout directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> KeepAliveTimeout + <em>seconds</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>KeepAliveTimeout + 15</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> KeepAliveTimeout + is only available in Apache 1.1 and later. + + <p>The number of seconds Apache will wait for a subsequent + request before closing the connection. Once a request has been + received, the timeout value specified by the <a + href="#timeout"><code>Timeout</code></a> directive applies.</p> + + <p>Setting <code>KeepAliveTimeout</code> to a high value may + cause performance problems in heavily loaded servers. The + higher the timeout, the more server processes will be kept + occupied waiting on connections with idle clients.</p> + <hr /> + + <h2><a id="limit" name="limit"><Limit> directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <Limit + <em>method</em> [<em>method</em>] ... > ... + </Limit><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> any<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>Access controls are normally effective for + <strong>all</strong> access methods, and this is the usual + desired behavior. <strong>In the general case, access control + directives should not be placed within a + <code><limit></code> section.</strong></p> + + <p>The purpose of the <Limit> directive is to restrict + the effect of the access controls to the nominated HTTP + methods. For all other methods, the access restrictions that + are enclosed in the <Limit> bracket <strong>will have no + effect</strong>. The following example applies the access + control only to the methods POST, PUT, and DELETE, leaving all + other methods unprotected:</p> + + <blockquote> + <code><Limit POST PUT DELETE><br /> + Require valid-user<br /> + </Limit></code> + </blockquote> + The method names listed can be one or more of: GET, POST, PUT, + DELETE, CONNECT, OPTIONS, TRACE, PATCH, PROPFIND, PROPPATCH, + MKCOL, COPY, MOVE, LOCK, and UNLOCK. <strong>The method name is + case-sensitive.</strong> If GET is used it will also restrict + HEAD requests. + <hr /> + + <h2><a id="limitexcept" name="limitexcept"><LimitExcept> + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <LimitExcept + <em>method</em> [<em>method</em>] ... > ... + </LimitExcept><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> any<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in + Apache 1.3.5 and later + + <p><LimitExcept> and </LimitExcept> are used to + enclose a group of access control directives which will then + apply to any HTTP access method <strong>not</strong> listed in + the arguments; <em>i.e.</em>, it is the opposite of a <a + href="#limit"><Limit></a> section and can be used to + control both standard and nonstandard/unrecognized methods. See + the documentation for <a href="#limit"><Limit></a> for + more details.</p> + <hr /> + + <h2><a id="limitrequestbody" + name="limitrequestbody">LimitRequestBody directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> LimitRequestBody + <em>bytes</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>LimitRequestBody + 0</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> LimitRequestBody + is only available in Apache 1.3.2 and later. + + <p>This directive specifies the number of <em>bytes</em> from 0 + (meaning unlimited) to 2147483647 (2GB) that are allowed in a + request body. The default value is defined by the compile-time + constant <code>DEFAULT_LIMIT_REQUEST_BODY</code> (0 as + distributed).</p> + + <p>The LimitRequestBody directive allows the user to set a + limit on the allowed size of an HTTP request message body + within the context in which the directive is given (server, + per-directory, per-file or per-location). If the client request + exceeds that limit, the server will return an error response + instead of servicing the request. The size of a normal request + message body will vary greatly depending on the nature of the + resource and the methods allowed on that resource. CGI scripts + typically use the message body for passing form information to + the server. Implementations of the PUT method will require a + value at least as large as any representation that the server + wishes to accept for that resource.</p> + + <p>This directive gives the server administrator greater + control over abnormal client request behavior, which may be + useful for avoiding some forms of denial-of-service + attacks.</p> + <hr /> + + <h2><a id="limitrequestfields" + name="limitrequestfields">LimitRequestFields directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> LimitRequestFields + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> + <code>LimitRequestFields 100</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> + LimitRequestFields is only available in Apache 1.3.2 and later. + + + <p><em>Number</em> is an integer from 0 (meaning unlimited) to + 32767. The default value is defined by the compile-time + constant <code>DEFAULT_LIMIT_REQUEST_FIELDS</code> (100 as + distributed).</p> + + <p>The LimitRequestFields directive allows the server + administrator to modify the limit on the number of request + header fields allowed in an HTTP request. A server needs this + value to be larger than the number of fields that a normal + client request might include. The number of request header + fields used by a client rarely exceeds 20, but this may vary + among different client implementations, often depending upon + the extent to which a user has configured their browser to + support detailed content negotiation. Optional HTTP extensions + are often expressed using request header fields.</p> + + <p>This directive gives the server administrator greater + control over abnormal client request behavior, which may be + useful for avoiding some forms of denial-of-service attacks. + The value should be increased if normal clients see an error + response from the server that indicates too many fields were + sent in the request.</p> + <hr /> + + <h2><a id="limitrequestfieldsize" + name="limitrequestfieldsize">LimitRequestFieldsize + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> LimitRequestFieldsize + <em>bytes</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> + <code>LimitRequestFieldsize 8190</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> + LimitRequestFieldsize is only available in Apache 1.3.2 and + later. + + <p>This directive specifies the number of <em>bytes</em> from 0 + to the value of the compile-time constant + <code>DEFAULT_LIMIT_REQUEST_FIELDSIZE</code> (8190 as + distributed) that will be allowed in an HTTP request + header.</p> + + <p>The LimitRequestFieldsize directive allows the server + administrator to reduce the limit on the allowed size of an + HTTP request header field below the normal input buffer size + compiled with the server. A server needs this value to be large + enough to hold any one header field from a normal client + request. The size of a normal request header field will vary + greatly among different client implementations, often depending + upon the extent to which a user has configured their browser to + support detailed content negotiation.</p> + + <p>This directive gives the server administrator greater + control over abnormal client request behavior, which may be + useful for avoiding some forms of denial-of-service attacks. + Under normal conditions, the value should not be changed from + the default.</p> + <hr /> + + <h2><a id="limitrequestline" + name="limitrequestline">LimitRequestLine directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> LimitRequestLine + <em>bytes</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>LimitRequestLine + 8190</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> LimitRequestLine + is only available in Apache 1.3.2 and later. + + <p>This directive sets the number of <em>bytes</em> from 0 to + the value of the compile-time constant + <code>DEFAULT_LIMIT_REQUEST_LINE</code> (8190 as distributed) + that will be allowed on the HTTP request-line.</p> + + <p>The LimitRequestLine directive allows the server + administrator to reduce the limit on the allowed size of a + client's HTTP request-line below the normal input buffer size + compiled with the server. Since the request-line consists of + the HTTP method, URI, and protocol version, the + LimitRequestLine directive places a restriction on the length + of a request-URI allowed for a request on the server. A server + needs this value to be large enough to hold any of its resource + names, including any information that might be passed in the + query part of a GET request.</p> + + <p>This directive gives the server administrator greater + control over abnormal client request behavior, which may be + useful for avoiding some forms of denial-of-service attacks. + Under normal conditions, the value should not be changed from + the default.</p> + <hr /> + + <h2><a id="listen" name="listen">Listen directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> Listen + [<em>IP-address</em>:]<em>port</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Listen is only + available in Apache 1.1 and later. + + <p>The Listen directive instructs Apache to listen to more than + one IP address or port; by default it responds to requests on + all IP interfaces, but only on the port given by the <code><a + href="#port">Port</a></code> directive.</p> + <tt>Listen</tt> can be used instead of <tt><a + href="#bindaddress">BindAddress</a></tt> and <tt>Port</tt>. It + tells the server to accept incoming requests on the specified + port or address-and-port combination. If the first format is + used, with a port number only, the server listens to the given + port on all interfaces, instead of the port given by the + <tt>Port</tt> directive. If an IP address is given as well as a + port, the server will listen on the given port and interface. + + <p>Note that you may still require a <tt>Port</tt> directive so + that URLs that Apache generates that point to your server still + work.</p> + + <p>Multiple Listen directives may be used to specify a number + of addresses and ports to listen to. The server will respond to + requests from any of the listed addresses and ports.</p> + + <p>For example, to make the server accept connections on both + port 80 and port 8000, use:</p> +<pre> + Listen 80 + Listen 8000 +</pre> + To make the server accept connections on two specified + interfaces and port numbers, use +<pre> + Listen 192.170.2.1:80 + Listen 192.170.2.5:8000 +</pre> + + <p><strong>See Also:</strong> <a href="../dns-caveats.html">DNS + Issues</a><br /> + <strong>See Also:</strong> <a href="../bind.html">Setting + which addresses and ports Apache uses</a><br /> + <strong>See Also:</strong> <a + href="http://www.apache.org/info/known_bugs.html#listenbug">Known + Bugs</a></p> + <hr /> + + <h2><a id="listenbacklog" name="listenbacklog">ListenBacklog + directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ListenBacklog + <em>backlog</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ListenBacklog + 511</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ListenBacklog is + only available in Apache versions after 1.2.0. + + <p>The maximum length of the queue of pending connections. + Generally no tuning is needed or desired, however on some + systems it is desirable to increase this when under a TCP SYN + flood attack. See the backlog parameter to the + <code>listen(2)</code> system call.</p> + + <p>This will often be limited to a smaller number by the + operating system. This varies from OS to OS. Also note that + many OSes do not use exactly what is specified as the backlog, + but use a number based on (but normally larger than) what is + set.</p> + <hr /> + + <h2><a id="location" name="location"><Location> + directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <Location + <em>URL-path</em>|<em>URL</em>> ... </Location><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Location is only + available in Apache 1.1 and later. + + <p>The <Location> directive provides for access control + by URL. It is similar to the <a + href="#directory"><Directory></a> directive, and starts a + subsection which is terminated with a </Location> + directive. <code><Location></code> sections are processed + in the order they appear in the configuration file, after the + <Directory> sections and <code>.htaccess</code> files are + read, and after the <Files> sections.</p> + + <p>Note that URLs do not have to line up with the filesystem at + all, it should be emphasized that <Location> operates + completely outside the filesystem.</p> + + <p>For all origin (non-proxy) requests, the URL to be matched + is of the form <code>/path/</code>, and you should not include + any <code>http://servername</code> prefix. For proxy requests, + the URL to be matched is of the form + <code>scheme://servername/path</code>, and you must include the + prefix.</p> + + <p>The URL may use wildcards In a wild-card string, `?' matches + any single character, and `*' matches any sequences of + characters.</p> + + <p><strong>Apache 1.2 and above:</strong> Extended regular + expressions can also be used, with the addition of the + <code>~</code> character. For example:</p> +<pre> + <Location ~ "/(extra|special)/data"> +</pre> + + <p>would match URLs that contained the substring "/extra/data" + or "/special/data". In Apache 1.3 and above, a new directive <a + href="#locationmatch"><LocationMatch></a> exists which + behaves identical to the regex version of + <code><Location></code>.</p> + + <p>The <code>Location</code> functionality is especially useful + when combined with the <code><a + href="mod_mime.html#sethandler">SetHandler</a></code> + directive. For example, to enable status requests, but allow + them only from browsers at foo.com, you might use:</p> +<pre> + <Location /status> + SetHandler server-status + Order Deny,Allow + Deny from all + Allow from .foo.com + </Location> +</pre> + + <p><strong>Apache 1.3 and above note about / (slash)</strong>: + The slash character has special meaning depending on where in a + URL it appears. People may be used to its behavior in the + filesystem where multiple adjacent slashes are frequently + collapsed to a single slash (<em>i.e.</em>, + <code>/home///foo</code> is the same as + <code>/home/foo</code>). In URL-space this is not necessarily + true. The <code><LocationMatch></code> directive and the + regex version of <code><Location></code> require you to + explicitly specify multiple slashes if that is your intention. + For example, <code><LocationMatch ^/abc></code> would + match the request URL <code>/abc</code> but not the request URL + <code>//abc</code>. The (non-regex) + <code><Location></code> directive behaves similarly when + used for proxy requests. But when (non-regex) + <code><Location></code> is used for non-proxy requests it + will implicitly match multiple slashes with a single slash. For + example, if you specify <code><Location /abc/def></code> + and the request is to <code>/abc//def</code> then it will + match.</p> + + <p><strong>See also</strong>: <a href="../sections.html">How + Directory, Location and Files sections work</a> for an + explanation of how these different sections are combined when a + request is received</p> + <hr /> + + <h2><a id="locationmatch" + name="locationmatch"><LocationMatch></a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <LocationMatch + <em>regex</em>> ... </LocationMatch><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> LocationMatch is + only available in Apache 1.3 and later. + + <p>The <LocationMatch> directive provides for access + control by URL, in an identical manner to <a + href="#location"><Location></a>. However, it takes a + regular expression as an argument instead of a simple string. + For example:</p> +<pre> + <LocationMatch "/(extra|special)/data"> +</pre> + + <p>would match URLs that contained the substring "/extra/data" + or "/special/data".</p> + <strong>See also</strong>: <a href="../sections.html">How + Directory, Location and Files sections work</a> for an + explanation of how these different sections are combined when a + request is received + <hr /> + + <h2><a id="lockfile" name="lockfile">LockFile + directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> LockFile + <em>file-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>LockFile + logs/accept.lock</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The LockFile directive sets the path to the lockfile used + when Apache is compiled with either USE_FCNTL_SERIALIZED_ACCEPT + or USE_FLOCK_SERIALIZED_ACCEPT. This directive should normally + be left at its default value. The main reason for changing it + is if the <code>logs</code> directory is NFS mounted, since + <strong>the lockfile must be stored on a local disk</strong>. + The PID of the main server process is automatically appended to + the filename.</p> + + <p><strong>SECURITY:</strong> It is best to avoid putting this + file in a world writable directory such as + <code>/var/tmp</code> because someone could create a denial of + service attack and prevent the server from starting by creating + a lockfile with the same name as the one the server will try to + create.</p> + <hr /> + + <h2><a id="loglevel" name="loglevel">LogLevel + directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> LogLevel + <em>level</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>LogLevel + warn</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> LogLevel is only + available in 1.3 or later. + + <p>LogLevel adjusts the verbosity of the messages recorded in + the error logs (see <a href="#errorlog">ErrorLog</a> + directive). The following <em>level</em>s are available, in + order of decreasing significance:</p> + + <table> + <tr> + <th align="LEFT"><strong>Level</strong> </th> + + <th align="LEFT"><strong>Description</strong> </th> + </tr> + + <tr> + <th> + </th> + + <th align="LEFT"><strong>Example</strong> </th> + </tr> + + <tr> + <td><code>emerg</code> </td> + + <td>Emergencies - system is unusable.</td> + </tr> + + <tr> + <td> + </td> + + <td>"Child cannot open lock file. Exiting"</td> + </tr> + + <tr> + <td><code>alert</code> </td> + + <td>Action must be taken immediately.</td> + </tr> + + <tr> + <td> + </td> + + <td>"getpwuid: couldn't determine user name from uid"</td> + </tr> + + <tr> + <td><code>crit</code> </td> + + <td>Critical Conditions.</td> + </tr> + + <tr> + <td> + </td> + + <td>"socket: Failed to get a socket, exiting child"</td> + </tr> + + <tr> + <td><code>error</code> </td> + + <td>Error conditions.</td> + </tr> + + <tr> + <td> + </td> + + <td>"Premature end of script headers"</td> + </tr> + + <tr> + <td><code>warn</code> </td> + + <td>Warning conditions.</td> + </tr> + + <tr> + <td> + </td> + + <td>"child process 1234 did not exit, sending another + SIGHUP"</td> + </tr> + + <tr> + <td><code>notice</code> </td> + + <td>Normal but significant condition.</td> + </tr> + + <tr> + <td> + </td> + + <td>"httpd: caught SIGBUS, attempting to dump core in + ..."</td> + </tr> + + <tr> + <td><code>info</code> </td> + + <td>Informational.</td> + </tr> + + <tr> + <td> + </td> + + <td>"Server seems busy, (you may need to increase + StartServers, or Min/MaxSpareServers)..."</td> + </tr> + + <tr> + <td><code>debug</code> </td> + + <td>Debug-level messages</td> + </tr> + + <tr> + <td> + </td> + + <td>"Opening config file ..."</td> + </tr> + </table> + + <p>When a particular level is specified, messages from all + other levels of higher significance will be reported as well. + <em>E.g.</em>, when <code>LogLevel info</code> is specified, + then messages with log levels of <code>notice</code> and + <code>warn</code> will also be posted.</p> + + <p>Using a level of at least <code>crit</code> is + recommended.</p> + <hr /> + + <h2><a id="maxclients" name="maxclients">MaxClients + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> MaxClients + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>MaxClients + 256</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The MaxClients directive sets the limit on the number of + simultaneous requests that can be supported; not more than this + number of child server processes will be created. To configure + more than 256 clients, you must edit the HARD_SERVER_LIMIT + entry in httpd.h and recompile.</p> + + <p>Any connection attempts over the MaxClients limit will + normally be queued, up to a number based on the <a + href="#listenbacklog">ListenBacklog</a> directive. Once a child + process is freed at the end of a different request, the + connection will then be serviced.</p> + <hr /> + + <h2><a id="maxkeepaliverequests" + name="maxkeepaliverequests">MaxKeepAliveRequests + directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> MaxKeepAliveRequests + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> + <code>MaxKeepAliveRequests 100</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Only available + in Apache 1.2 and later. + + <p>The MaxKeepAliveRequests directive limits the number of + requests 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. In Apache 1.1, this is controlled through + an option to the KeepAlive directive.</p> + <hr /> + + <h2><a id="maxrequestsperchild" + name="maxrequestsperchild">MaxRequestsPerChild + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> MaxRequestsPerChild + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> + <code>MaxRequestsPerChild 0</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The MaxRequestsPerChild directive sets the limit on the + number of requests that an individual child server process will + handle. After MaxRequestsPerChild requests, the child process + will die. If MaxRequestsPerChild is 0, then the process will + never expire.</p> + + <p>Setting MaxRequestsPerChild to a non-zero limit has two + beneficial effects:</p> + + <ul> + <li>it limits the amount of memory that process can consume + by (accidental) memory leakage;</li> + + <li>by giving processes a finite lifetime, it helps reduce + the number of processes when the server load reduces.</li> + </ul> + + <p>However, on Win32, It is recommended that this be set to 0. + If it is set to a non-zero value, when the request count is + reached, the child process exits, and is respawned, at which + time it re-reads the configuration files. This can lead to + unexpected behavior if you have modified a configuration file, + but are not expecting the changes to be applied yet. See also + <a href="#threadsperchild">ThreadsPerChild</a>.</p> + + <p><strong>NOTE:</strong> For <em>KeepAlive</em> requests, only + the first request is counted towards this limit. In effect, it + changes the behavior to limit the number of + <em>connections</em> per child.</p> + <hr /> + + <h2><a id="maxspareservers" + name="maxspareservers">MaxSpareServers directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> MaxSpareServers + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>MaxSpareServers + 10</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The MaxSpareServers directive sets the desired maximum + number of <em>idle</em> child server processes. An idle process + is one which is not handling a request. If there are more than + MaxSpareServers idle, then the parent process will kill off the + excess processes.</p> + + <p>Tuning of this parameter should only be necessary on very + busy sites. Setting this parameter to a large number is almost + always a bad idea.</p> + + <p>Note that this is the maximum number of <em>spare</em> servers, + not the maximum total number of client requests that can be handled + at one time. If you wish to limit that number, see the <a + href="#maxclients">MaxClients</a> directive.</p> + + <p>This directive has no effect when used with the Apache Web + server on a Microsoft Windows platform.</p> + + <p>See also <a href="#minspareservers">MinSpareServers</a>, + <a href="#startservers">StartServers</a>, and <a + href="#maxclients">MaxClients</a>.</p> + <hr /> + + <h2><a id="minspareservers" + name="minspareservers">MinSpareServers directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> MinSpareServers + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>MinSpareServers + 5</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The MinSpareServers directive sets the desired minimum + number of <em>idle</em> child server processes. An idle process + is one which is not handling a request. If there are fewer than + MinSpareServers idle, then the parent process creates new + children at a maximum rate of 1 per second.</p> + + <p>Tuning of this parameter should only be necessary on very + busy sites. Setting this parameter to a large number is almost + always a bad idea.</p> + + <p>Note that setting this directive to some value <i>m</i> ensures + that you will always have at least <i>n + m</i> <code>httpd</code> + processes running when you have <i>n</i> active client requests.</p> + + <p>This directive has no effect on Microsoft Windows.</p> + + <p>See also <a href="#maxspareservers">MaxSpareServers</a>, + <a href="#startservers">StartServers</a>, and <a + href="#maxclients">MaxClients</a>.</p> + <hr /> + + <h2><a id="namevirtualhost" + name="namevirtualhost">NameVirtualHost directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> NameVirtualHost + <em>addr</em>[:<em>port</em>]<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> NameVirtualHost + is only available in Apache 1.3 and later + + <p>The NameVirtualHost directive is a required directive if you + want to configure <a href="../vhosts/">name-based virtual + hosts</a>.</p> + + <p>Although <em>addr</em> can be hostname it is recommended + that you always use an IP address or wildcard, + <em>e.g.</em></p> + + <blockquote> + <code>NameVirtualHost 111.22.33.44</code> + </blockquote> + With the NameVirtualHost directive you specify the IP address + on which the server will receive requests for the name-based + virtual hosts. This will usually be the address to which your + name-based virtual host names resolve. In cases where a + firewall or other proxy receives the requests and forwards them + on a different IP address to the server, you must specify the + IP address of the physical interface on the machine which will + be servicing the requests. If you have multiple name-based + hosts on multiple addresses, repeat the directive for each + address. + + <p>Note: the "main server" and any _default_ servers will + <strong>never</strong> be served for a request to a + NameVirtualHost IP Address (unless for some reason you specify + NameVirtualHost but then don't define any VirtualHosts for that + address).</p> + + <p>Optionally you can specify a port number on which the + name-based virtual hosts should be used, <em>e.g.</em></p> + + <blockquote> + <code>NameVirtualHost 111.22.33.44:8080</code> + </blockquote> + In Apache 1.3.13 and greater you can specify a <code>*</code> + for the <em>addr</em>. This creates a wildcard NameVirtualHost + which will match connections to any address that isn't + configured with a more specific NameVirtualHost directive or <a + href="#virtualhost"><VirtualHost></a> section. This is + useful if you want only name-based virtual hosts and you don't + want to hard-code the server's IP address into the + configuration file. + + <p><strong>See also:</strong> <a href="../vhosts/">Apache + Virtual Host documentation</a></p> + <hr /> + + <h2><a id="options" name="options">Options directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> Options + [+|-]<em>option</em> [[+|-]<em>option</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> Options<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The Options directive controls which server features are + available in a particular directory.</p> + + <p><em>option</em> can be set to <code>None</code>, in which + case none of the extra features are enabled, or one or more of + the following:</p> + + <dl> + <dt>All</dt> + + <dd>All options except for MultiViews. This is the default + setting.</dd> + + <dt>ExecCGI</dt> + + <dd> + Execution of CGI scripts is permitted.</dd> + + <dt>FollowSymLinks</dt> + + <dd> + + The server will follow symbolic links in this + directory.<br /> + <strong>Note</strong>: even though the server follows the + symlink it does <em>not</em> change the pathname used to + match against <code><Directory></code> sections.<br /> + <strong>Note</strong>: this option gets ignored if set + inside a <Location> section.</dd> + + <dt>Includes</dt> + + <dd> + Server-side includes are permitted.</dd> + + <dt>IncludesNOEXEC</dt> + + <dd> + + Server-side includes are permitted, but the #exec command and + #exec CGI are disabled. It is still possible to #include + virtual CGI scripts from ScriptAliase'd directories.</dd> + + <dt>Indexes</dt> + + <dd> + If a URL which maps to a directory is requested, and the + there is no DirectoryIndex (<em>e.g.</em>, index.html) in + that directory, then the server will return a formatted + listing of the directory.</dd> + + <dt>MultiViews</dt> + + <dd> + <a href="../content-negotiation.html">Content negotiated</a> + MultiViews are allowed.</dd> + + <dt>SymLinksIfOwnerMatch</dt> + + <dd> + + The server will only follow symbolic links for which the + target file or directory is owned by the same user id as the + link.<br /> + <strong>Note</strong>: this option gets ignored if set + inside a <Location> section.</dd> + </dl> + Normally, if multiple <code>Options</code> could apply to a + directory, then the most specific one is taken complete; the + options are not merged. However if <em>all</em> the options on + the <code>Options</code> directive are preceded by a + or - + symbol, the options are merged. Any options preceded by a + are + added to the options currently in force, and any options + preceded by a - are removed from the options currently in + force. + + <p>For example, without any + and - symbols:</p> + + <blockquote> + <code><Directory /web/docs><br /> + Options Indexes FollowSymLinks<br /> + </Directory><br /> + <Directory /web/docs/spec><br /> + Options Includes<br /> + </Directory></code> + </blockquote> + then only <code>Includes</code> will be set for the + /web/docs/spec directory. However if the second + <code>Options</code> directive uses the + and - symbols: + + <blockquote> + <code><Directory /web/docs><br /> + Options Indexes FollowSymLinks<br /> + </Directory><br /> + <Directory /web/docs/spec><br /> + Options +Includes -Indexes<br /> + </Directory></code> + </blockquote> + then the options <code>FollowSymLinks</code> and + <code>Includes</code> are set for the /web/docs/spec directory. + + + <p><strong>Note:</strong> Using <code>-IncludesNOEXEC</code> or + <code>-Includes</code> disables server-side includes completely + regardless of the previous setting.</p> + + <p>The default in the absence of any other settings is + <code>All</code>.</p> + <hr /> + + <h2><a id="pidfile" name="pidfile">PidFile directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> PidFile + <em>file-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>PidFile + logs/httpd.pid</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The PidFile directive sets the file to which the server + records the process id of the daemon. If the filename does not + begin with a slash (/) then it is assumed to be relative to the + <a href="#serverroot">ServerRoot</a>. The PidFile is only used + in <a href="#servertype">standalone</a> mode.</p> + + <p>It is often useful to be able to send the server a signal, + so that it closes and then reopens its <a + href="#errorlog">ErrorLog</a> and TransferLog, and re-reads its + configuration files. This is done by sending a SIGHUP (kill -1) + signal to the process id listed in the PidFile.</p> + + <p>The PidFile is subject to the same warnings about log file + placement and <a + href="../misc/security_tips.html#serverroot">security</a>.</p> + <hr /> + + <h2><a id="port" name="port">Port directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> Port + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>Port + 80</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p><em>Number</em> is a number from 0 to 65535; some port + numbers (especially below 1024) are reserved for particular + protocols. See <code>/etc/services</code> for a list of some + defined ports; the standard port for the http protocol is + 80.</p> + + <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> + + <ul> + <li>In the absence of any <a href="#listen">Listen</a> or <a + href="#bindaddress">BindAddress</a> directives specifying a + port number, a Port directive given in the "main server" + (<em>i.e.</em>, outside any <a + href="#virtualhost"><VirtualHost></a> section) sets the + network port on which the server listens. If there are any + Listen or BindAddress directives specifying + <code>:number</code> then Port has no effect on what address + the server listens at.</li> + + <li>The Port directive sets the <code>SERVER_PORT</code> + environment variable (for <a href="mod_cgi.html">CGI</a> and + <a href="mod_include.html">SSI</a>), and is used when the + server must generate a URL that refers to itself (for example + when creating an external redirect to itself). This behavior + is modified by <a + href="#usecanonicalname">UseCanonicalName</a>.</li> + </ul> + The primary behavior of Port should be considered to be + similar to that of the <a href="#servername">ServerName</a> + directive. The ServerName and Port together specify what you + consider to be the <em>canonical</em> address of the server. + (See also <a href="#usecanonicalname">UseCanonicalName</a>.) + + <p>Port 80 is one of Unix's special ports. All ports numbered + below 1024 are reserved for system use, <em>i.e.</em>, regular + (non-root) users cannot make use of them; instead they can only + use higher port numbers. To use port 80, you must start the + server from the root account. After binding to the port and + before accepting requests, Apache will change to a low + privileged user as set by the <a href="#user">User + directive</a>.</p> + + <p>If you cannot use port 80, choose any other unused port. + Non-root users will have to choose a port number higher than + 1023, such as 8000.</p> + + <p>SECURITY: if you do start the server as root, be sure not to + set <a href="#user">User</a> to root. If you run the server as + root whilst handling connections, your site may be open to a + major security attack.</p> + <hr /> + + <h2><a id="require" name="require">Require directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> Require + <em>entity-name</em> [<em>entity-name</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> AuthConfig<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>This directive selects which authenticated users can access + a directory. The allowed syntaxes are:</p> + + <ul> + <li> + Require user <em>userid</em> [<em>userid</em>] ... + + <p>Only the named users can access the directory.</p> + </li> + + <li> + Require group <em>group-name</em> [<em>group-name</em>] ... + + + <p>Only users in the named groups can access the + directory.</p> + </li> + + <li> + Require valid-user + + <p>All valid users can access the directory.</p> + </li> + </ul> + + <p>Require must be accompanied by <a + href="#authname">AuthName</a> and <a + href="#authtype">AuthType</a> directives, and directives such + as <a href="mod_auth.html#authuserfile">AuthUserFile</a> and <a + href="mod_auth.html#authgroupfile">AuthGroupFile</a> (to define + users and groups) in order to work correctly. Example:</p> + + <blockquote> + <code>AuthType Basic<br /> + AuthName "Restricted Directory"<br /> + AuthUserFile /web/users<br /> + AuthGroupFile /web/groups<br /> + Require group admin<br /> + </code> + </blockquote> + Access controls which are applied in this way are effective for + <strong>all</strong> methods. <strong>This is what is normally + desired.</strong> If you wish to apply access controls only to + specific methods, while leaving other methods unprotected, then + place the <code>Require</code> statement into a <a + href="#limit"><Limit></a> section + + <p>See also <a href="#satisfy">Satisfy</a> and <a + href="mod_access.html">mod_access</a>.</p> + <hr /> + + <h2><a id="resourceconfig" name="resourceconfig">ResourceConfig + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ResourceConfig + <em>file-path</em>|<em>directory-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ResourceConfig + conf/srm.conf</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core <br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> The ability to + specify a directory, rather than a file name, is only available in + Apache 1.3.13 and later. + + <p>The server will read this file for more directives after + reading the httpd.conf file. <em>File-path</em> is relative to + the <a href="#serverroot">ServerRoot</a>. This feature can be + disabled using:</p> + + <blockquote> + <code>ResourceConfig /dev/null</code> + </blockquote> + Or, on Win32 servers, + + <blockquote> + <code>ResourceConfig nul</code> + </blockquote> + <p>Historically, this file contained most directives except for + server configuration directives and <a + href="#directory"><Directory></a> sections; in fact it + can now contain any server directive allowed in the <em>server + config</em> context. However, since Apache version 1.3.4, the + default <code>srm.conf</code> file which ships with Apache contains + only comments, and all directives are placed in the main server + configuration file, <code>httpd.conf</code>.</p> + + <p>If <code>ResourceConfig</code> points to a directory, rather than + a file, Apache will read all files in that directory, and any + subdirectory, and parse those as configuration files. Note that + <emph>any</emph> file in the specified directory will be loaded as a + configuration file, so make sure that you don't have any stray files + in this directory by mistake, such as temporary files created by + your editor, for example.</p> + + <p>See also <a href="#accessconfig">AccessConfig</a>.</p> + <hr /> + + <h2><a id="rlimit" name="rlimit">RLimitCPU</a> <a + id="rlimitcpu" name="rlimitcpu">directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RLimitCPU + <em>number</em>|max [<em>number</em>|max] <br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>Unset; uses + operating system defaults</em> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> RLimitCPU is + only available in Apache 1.2 and later + + <p>Takes 1 or 2 parameters. The first parameter sets the soft + resource limit for all processes and the second parameter sets + the maximum resource limit. Either parameter can be a number, + or <code>max</code> to indicate to the server that the limit + should be set to the maximum allowed by the operating system + configuration. Raising the maximum resource limit requires that + the server is running as root, or in the initial startup + phase.</p> + + <p>This applies to processes forked off from Apache children + servicing requests, not the Apache children themselves. This + includes CGI scripts and SSI exec commands, but not any + processes forked off from the Apache parent such as piped + logs.</p> + + <p>CPU resource limits are expressed in seconds per + process.</p> + + <p>See also <a href="#rlimitmem">RLimitMEM</a> or <a + href="#rlimitnproc">RLimitNPROC</a>.</p> + <hr /> + + <h2><a id="rlimitmem" name="rlimitmem">RLimitMEM + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RLimitMEM + <em>number</em>|max [<em>number</em>|max]<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>Unset; uses + operating system defaults</em> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> RLimitMEM is + only available in Apache 1.2 and later + + <p>Takes 1 or 2 parameters. The first parameter sets the soft + resource limit for all processes and the second parameter sets + the maximum resource limit. Either parameter can be a number, + or <code>max</code> to indicate to the server that the limit + should be set to the maximum allowed by the operating system + configuration. Raising the maximum resource limit requires that + the server is running as root, or in the initial startup + phase.</p> + + <p>This applies to processes forked off from Apache children + servicing requests, not the Apache children themselves. This + includes CGI scripts and SSI exec commands, but not any + processes forked off from the Apache parent such as piped + logs.</p> + + <p>Memory resource limits are expressed in bytes per + process.</p> + + <p>See also <a href="#rlimitcpu">RLimitCPU</a> or <a + href="#rlimitnproc">RLimitNPROC</a>.</p> + <hr /> + + <h2><a id="rlimitnproc" name="rlimitnproc">RLimitNPROC + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RLimitNPROC + <em>number</em>|max [<em>number</em>|max]<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>Unset; uses + operating system defaults</em> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> RLimitNPROC is + only available in Apache 1.2 and later + + <p>Takes 1 or 2 parameters. The first parameter sets the soft + resource limit for all processes and the second parameter sets + the maximum resource limit. Either parameter can be a number, + or <code>max</code> to indicate to the server that the limit + should be set to the maximum allowed by the operating system + configuration. Raising the maximum resource limit requires that + the server is running as root, or in the initial startup + phase.</p> + + <p>This applies to processes forked off from Apache children + servicing requests, not the Apache children themselves. This + includes CGI scripts and SSI exec commands, but not any + processes forked off from the Apache parent such as piped + logs.</p> + + <p>Process limits control the number of processes per user.</p> + + <p>Note: If CGI processes are <strong>not</strong> running + under userids other than the web server userid, this directive + will limit the number of processes that the server itself can + create. Evidence of this situation will be indicated by + <strong><em>cannot fork</em></strong> messages in the + error_log.</p> + + <p>See also <a href="#rlimitmem">RLimitMEM</a> or <a + href="#rlimitcpu">RLimitCPU</a>.</p> + <hr /> + + <h2><a id="satisfy" name="satisfy">Satisfy directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> Satisfy any|all<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> Satisfy all<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Satisfy is only + available in Apache 1.2 and later + + <p>Access policy if both <code>Allow</code> and + <code>Require</code> used. The parameter can be either + <em>'all'</em> or <em>'any'</em>. This directive is only useful + if access to a particular area is being restricted by both + username/password <em>and</em> client host address. In this + case the default behavior ("all") is to require that the client + passes the address access restriction <em>and</em> enters a + valid username and password. With the "any" option the client + will be granted access if they either pass the host restriction + or enter a valid username and password. This can be used to + password restrict an area, but to let clients from particular + addresses in without prompting for a password.</p> + + <p>See also <a href="#require">Require</a> and <a + href="mod_access.html#allow">Allow</a>.</p> + <hr /> + + <h2><a id="scoreboardfile" name="scoreboardfile">ScoreBoardFile + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ScoreBoardFile + <em>file-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ScoreBoardFile + logs/apache_status</code> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The ScoreBoardFile directive is required on some + architectures to place a file that the server will use to + communicate between its children and the parent. The easiest + way to find out if your architecture requires a scoreboard file + is to run Apache and see if it creates the file named by the + directive. If your architecture requires it then you must + ensure that this file is not used at the same time by more than + one invocation of Apache.</p> + + <p>If you have to use a ScoreBoardFile then you may see + improved speed by placing it on a RAM disk. But be careful that + you heed the same warnings about log file placement and <a + href="../misc/security_tips.html">security</a>.</p> + + <p>Apache 1.2 and above:</p> + + <p>Linux 1.x users might be able to add <code>-DHAVE_SHMGET + -DUSE_SHMGET_SCOREBOARD</code> to the <code>EXTRA_CFLAGS</code> + in your <code>Configuration</code>. This might work with some + 1.x installations, but won't work with all of them. (Prior to + 1.3b4, <code>HAVE_SHMGET</code> would have sufficed.)</p> + + <p>SVR4 users should consider adding <code>-DHAVE_SHMGET + -DUSE_SHMGET_SCOREBOARD</code> to the <code>EXTRA_CFLAGS</code> + in your <code>Configuration</code>. This is believed to work, + but we were unable to test it in time for 1.2 release. (Prior + to 1.3b4, <code>HAVE_SHMGET</code> would have sufficed.)</p> + + <p><strong>See Also</strong>: <a + href="../stopping.html">Stopping and Restarting Apache</a></p> + <hr /> + + <h2><a id="scriptinterpretersource" + name="scriptinterpretersource">ScriptInterpreterSource + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ScriptInterpreterSource + registry|script<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> + <code>ScriptInterpreterSource script</code> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core (Windows only) + + <p>This directive is used to control how Apache 1.3.5 and later + finds the interpreter used to run CGI scripts. The default + technique is to use the interpreter pointed to by the #! line + in the script. Setting ScriptInterpreterSource registry will + cause the Windows Registry to be searched using the script file + extension (e.g., .pl) as a search key.</p> + <hr /> + + <h2><a id="sendbuffersize" name="sendbuffersize">SendBufferSize + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> SendBufferSize + <em>bytes</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The server will set the TCP buffer size to the number of + bytes specified. Very useful to increase past standard OS + defaults on high speed high latency (<em>i.e.</em>, 100ms or + so, such as transcontinental fast pipes)</p> + <hr /> + + <h2><a id="serveradmin" name="serveradmin">ServerAdmin + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ServerAdmin + <em>email-address</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The ServerAdmin sets the e-mail address that the server + includes in any error messages it returns to the client.</p> + + <p>It may be worth setting up a dedicated address for this, + <em>e.g.</em></p> + + <blockquote> + <code>ServerAdmin www-admin@foo.bar.com</code> + </blockquote> + as users do not always mention that they are talking about the + server! + <hr /> + + <h2><a id="serveralias" name="serveralias">ServerAlias + directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ServerAlias + <em>hostname</em> [<em>hostname</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> virtual host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ServerAlias is + only available in Apache 1.1 and later. + + <p>The ServerAlias directive sets the alternate names for a + host, for use with <a + href="../vhosts/name-based.html">name-based virtual + hosts</a>.</p> + + <p><strong>See also:</strong> <a href="../vhosts/">Apache + Virtual Host documentation</a></p> + <hr /> + + <h2><a id="servername" name="servername">ServerName + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ServerName + <em>fully-qualified-domain-name</em> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The ServerName directive sets the hostname of the server; + this is used when creating redirection URLs. If it is not + specified, then the server attempts to deduce it from its own + IP address; however this may not work reliably, or may not + return the preferred hostname. For example:</p> + + <blockquote> + <code>ServerName www.example.com</code> + </blockquote> + would be used if the canonical (main) name of the actual + machine were <code>simple.example.com</code>. + + <p>If you are using <a + href="../vhosts/name-based.html">name-based virtual hosts</a>, + the <code>ServerName</code> inside a <a + href="#virtualhost"><code><VirtualHost></code></a> + section specifies what hostname must appear in the request's + <code>Host:</code> header to match this virtual host.</p> + + <p><strong>See Also</strong>:<br /> + <a href="../dns-caveats.html">DNS Issues</a><br /> + <a href="../vhosts/">Apache virtual host + documentation</a><br /> + <a href="#usecanonicalname">UseCanonicalName</a><br /> + <a href="#namevirtualhost">NameVirtualHost</a><br /> + <a href="#serveralias">ServerAlias</a><br /> + </p> + <hr /> + + <h2><a id="serverpath" name="serverpath">ServerPath + directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ServerPath + <em>directory-path</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> virtual host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ServerPath is + only available in Apache 1.1 and later. + + <p>The ServerPath directive sets the legacy URL pathname for a + host, for use with <a href="../vhosts/">name-based virtual + hosts</a>.</p> + + <p><strong>See also:</strong> <a href="../vhosts/">Apache + Virtual Host documentation</a></p> + <hr /> + + <h2><a id="serverroot" name="serverroot">ServerRoot + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ServerRoot + <em>directory-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ServerRoot + /usr/local/apache</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The ServerRoot directive sets the directory in which the + server lives. Typically it will contain the subdirectories + <code>conf/</code> and <code>logs/</code>. Relative paths for + other configuration files are taken as relative to this + directory.</p> + + <p>See also <a href="../invoking.html">the <code>-d</code> + option to httpd</a>.</p> + + <p>See also <a href="../misc/security_tips.html#serverroot">the + security tips</a> for information on how to properly set + permissions on the ServerRoot.</p> + <hr /> + + <h2><a id="serversignature" + name="serversignature">ServerSignature directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ServerSignature + On|Off|EMail<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ServerSignature + Off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ServerSignature + is only available in Apache 1.3 and later. + + <p>The ServerSignature directive allows the configuration of a + trailing footer line under server-generated documents (error + messages, mod_proxy ftp directory listings, mod_info output, + ...). The reason why you would want to enable such a footer + line is that in a chain of proxies, the user often has no + possibility to tell which of the chained servers actually + produced a returned error message.<br /> + The <samp>Off</samp> setting, which is the default, suppresses + the error line (and is therefore compatible with the behavior + of Apache-1.2 and below). The <samp>On</samp> setting simply + adds a line with the server version number and <a + href="#servername">ServerName</a> of the serving virtual host, + and the <samp>EMail</samp> setting additionally creates a + "mailto:" reference to the <a + href="#serveradmin">ServerAdmin</a> of the referenced + document.</p> + <hr /> + + <h2><a id="servertokens" name="servertokens">ServerTokens + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ServerTokens + Minimal|ProductOnly|OS|Full<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ServerTokens + Full</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config <br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ServerTokens is + only available in Apache 1.3 and later; the + <code>ProductOnly</code> keyword is only available in versions + later than 1.3.12 + + <p>This directive controls whether <samp>Server</samp> response + header field which is sent back to clients includes a + description of the generic OS-type of the server as well as + information about compiled-in modules.</p> + + <dl> + <dt><code>ServerTokens Prod[uctOnly]</code></dt> + + <dd>Server sends (<em>e.g.</em>): <samp>Server: + Apache</samp></dd> + + <dt><code>ServerTokens Min[imal]</code></dt> + + <dd>Server sends (<em>e.g.</em>): <samp>Server: + Apache/1.3.0</samp></dd> + + <dt><code>ServerTokens OS</code></dt> + + <dd>Server sends (<em>e.g.</em>): <samp>Server: Apache/1.3.0 + (Unix)</samp></dd> + + <dt><code>ServerTokens Full</code> (or not specified)</dt> + + <dd>Server sends (<em>e.g.</em>): <samp>Server: Apache/1.3.0 + (Unix) PHP/3.0 MyMod/1.2</samp></dd> + </dl> + + <p>This setting applies to the entire server, and cannot be + enabled or disabled on a virtualhost-by-virtualhost basis.</p> + <hr /> + + <h2><a id="servertype" name="servertype">ServerType + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ServerType + <em>type</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ServerType + standalone</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The ServerType directive sets how the server is executed by + the system. <em>Type</em> is one of</p> + + <dl> + <dt>inetd</dt> + + <dd>The server will be run from the system process inetd; the + command to start the server is added to + <code>/etc/inetd.conf</code></dd> + + <dt>standalone</dt> + + <dd>The server will run as a daemon process; the command to + start the server is added to the system startup scripts. + (<code>/etc/rc.local</code> or + <code>/etc/rc3.d/...</code>.)</dd> + </dl> + Inetd is the lesser used of the two options. For each http + connection received, a new copy of the server is started from + scratch; after the connection is complete, this program exits. + There is a high price to pay per connection, but for security + reasons, some admins prefer this option. <font + color="red">Inetd mode is no longer recommended and does not + always work properly. Avoid it if at all possible.</font> + + <p>Standalone is the most common setting for ServerType since + it is far more efficient. The server is started once, and + services all subsequent connections. If you intend running + Apache to serve a busy site, standalone will probably be your + only option.</p> + <hr /> + + <h2><a id="startservers" name="startservers">StartServers + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> StartServers + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>StartServers + 5</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The StartServers directive sets the number of child server + processes created on startup. As the number of processes is + dynamically controlled depending on the load, there is usually + little reason to adjust this parameter.</p> + + <p>When running under Microsoft Windows, this directive has no + effect. There is always one child which handles all requests. + Within the child requests are handled by separate threads. The + <a href="#threadsperchild">ThreadsPerChild</a> directive + controls the maximum number of child threads handling requests, + which will have a similar effect to the setting of + <samp>StartServers</samp> on Unix.</p> + + <p>See also <a href="#minspareservers">MinSpareServers</a> and + <a href="#maxspareservers">MaxSpareServers</a>.</p> + <hr /> + + <h2><a id="threadsperchild" + name="threadsperchild">ThreadsPerChild</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ThreadsPerChild + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ThreadsPerChild + 50</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core (Windows, + NetWare)<br /> + <strong>Compatibility:</strong> Available only with Apache 1.3 + and later with Windows + + <p>This directive tells the server how many threads it should + use. This is the maximum number of connections the server can + handle at once; be sure and set this number high enough for + your site if you get a lot of hits.</p> + + <p>This directive has no effect on Unix systems. Unix users + should look at <a href="#startservers">StartServers</a> and <a + href="#maxrequestsperchild">MaxRequestsPerChild</a>.</p> + <hr /> + + <h2><a id="threadstacksize" + name="threadstacksize">ThreadStackSize</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ThreadStackSize + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ThreadStackSize + 65536</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core (NetWare)<br /> + <strong>Compatibility:</strong> Available only with Apache 1.3 + and later with NetWare + + <p>This directive tells the server what stack size to use for + each of the running threads. If you ever get a stack overflow + you will need to bump this number to a higher setting.</p> + + <p>This directive has no effect on other systems.</p> + <hr /> + + <h2><a id="timeout" name="timeout">TimeOut directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> TimeOut + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>TimeOut + 300</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The TimeOut directive currently defines the amount of time + Apache will wait for three things:</p> + + <ol> + <li>The total amount of time it takes to receive a GET + request.</li> + + <li>The amount of time between receipt of TCP packets on a + POST or PUT request.</li> + + <li>The amount of time between ACKs on transmissions of TCP + packets in responses.</li> + </ol> + We plan on making these separately configurable at some point + down the road. The timer used to default to 1200 before 1.2, + but has been lowered to 300 which is still far more than + necessary in most situations. It is not set any lower by + default because there may still be odd places in the code where + the timer is not reset when a packet is sent. + <hr /> + + <h2><a id="usecanonicalname" + name="usecanonicalname">UseCanonicalName directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> UseCanonicalName + on|off|dns<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>UseCanonicalName + on</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> Options<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> UseCanonicalName + is only available in Apache 1.3 and later + + <p>In many situations Apache has to construct a + <em>self-referential</em> URL. That is, a URL which refers back + to the same server. With <code>UseCanonicalName on</code> (and + in all versions prior to 1.3) Apache will use the <a + href="#servername">ServerName</a> and <a href="#port">Port</a> + directives to construct a canonical name for the server. This + name is used in all self-referential URLs, and for the values + of <code>SERVER_NAME</code> and <code>SERVER_PORT</code> in + CGIs.</p> + + <p>With <code>UseCanonicalName off</code> Apache will form + self-referential URLs using the hostname and port supplied by + the client if any are supplied (otherwise it will use the + canonical name). These values are the same that are used to + implement <a href="../vhosts/name-based.html">name based + virtual hosts</a>, and are available with the same clients. The + CGI variables <code>SERVER_NAME</code> and + <code>SERVER_PORT</code> will be constructed from the client + supplied values as well.</p> + + <p>An example where this may be useful is on an intranet server + where you have users connecting to the machine using short + names such as <code>www</code>. You'll notice that if the users + type a shortname, and a URL which is a directory, such as + <code>http://www/splat</code>, <em>without the trailing + slash</em> then Apache will redirect them to + <code>http://www.domain.com/splat/</code>. If you have + authentication enabled, this will cause the user to have to + reauthenticate twice (once for <code>www</code> and once again + for <code>www.domain.com</code>). But if + <code>UseCanonicalName</code> is set off, then Apache will + redirect to <code>http://www/splat/</code>.</p> + + <p>There is a third option, <code>UseCanonicalName DNS</code>, + which is intended for use with mass IP-based virtual hosting to + support ancient clients that do not provide a + <code>Host:</code> header. With this option Apache does a + reverse DNS lookup on the server IP address that the client + connected to in order to work out self-referential URLs.</p> + + <p><strong>Warning:</strong> if CGIs make assumptions about the + values of <code>SERVER_NAME</code> they may be broken by this + option. The client is essentially free to give whatever value + they want as a hostname. But if the CGI is only using + <code>SERVER_NAME</code> to construct self-referential URLs + then it should be just fine.</p> + + <p><strong>See also:</strong> <a + href="#servername">ServerName</a>, <a href="#port">Port</a></p> + <hr /> + + <h2><a id="user" name="user">User directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> User + <em>unix-userid</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>User + #-1</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The User directive sets the userid as which the server will + answer requests. In order to use this directive, the standalone + server must be run initially as root. <em>Unix-userid</em> is + one of:</p> + + <dl> + <dt>A username</dt> + + <dd>Refers to the given user by name.</dd> + + <dt># followed by a user number.</dt> + + <dd>Refers to a user by their number.</dd> + </dl> + The user should have no privileges which result in it being + able to access files which are not intended to be visible to + the outside world, and similarly, the user should not be able + to execute code which is not meant for httpd requests. It is + recommended that you set up a new user and group specifically + for running the server. Some admins use user + <code>nobody</code>, but this is not always possible or + desirable. For example mod_proxy's cache, when enabled, must be + accessible to this user (see the <a + href="mod_proxy.html#cacheroot"><code>CacheRoot</code> + directive</a>). + + <p>Notes: If you start the server as a non-root user, it will + fail to change to the lesser privileged user, and will instead + continue to run as that original user. If you do start the + server as root, then it is normal for the parent process to + remain running as root.</p> + + <p>Special note: Use of this directive in <VirtualHost> + requires a properly configured <a href="../suexec.html">suEXEC + wrapper</a>. When used inside a <VirtualHost> in this + manner, only the user that CGIs are run as is affected. Non-CGI + requests are still processed with the user specified in the + main User directive.</p> + + <p>SECURITY: Don't set User (or <a href="#group">Group</a>) to + <code>root</code> unless you know exactly what you are doing, + and what the dangers are.</p> + <hr /> + + <h2><a id="virtualhost" name="virtualhost"><VirtualHost> + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <VirtualHost + <em>addr</em>[:<em>port</em>] [<em>addr</em>[:<em>port</em>]] + ...> ... </VirtualHost> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core.<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Non-IP + address-based Virtual Hosting only available in Apache 1.1 and + later.<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Multiple address + support only available in Apache 1.2 and later. + + <p><VirtualHost> and </VirtualHost> are used to + enclose a group of directives which will apply only to a + particular virtual host. Any directive which is allowed in a + virtual host context may be used. When the server receives a + request for a document on a particular virtual host, it uses + the configuration directives enclosed in the + <VirtualHost> section. <em>Addr</em> can be</p> + + <ul> + <li>The IP address of the virtual host</li> + + <li>A fully qualified domain name for the IP address of the + virtual host.</li> + </ul> + Example: + + <blockquote> + <code><VirtualHost 10.1.2.3><br /> + ServerAdmin webmaster@host.foo.com<br /> + DocumentRoot /www/docs/host.foo.com<br /> + ServerName host.foo.com<br /> + ErrorLog logs/host.foo.com-error_log<br /> + TransferLog logs/host.foo.com-access_log<br /> + </VirtualHost></code> + </blockquote> + Each VirtualHost must correspond to a different IP address, + different port number or a different host name for the server, + in the former case the server machine must be configured to + accept IP packets for multiple addresses. (If the machine does + not have multiple network interfaces, then this can be + accomplished with the <code>ifconfig alias</code> command (if + your OS supports it), or with kernel patches like <a + href="../misc/vif-info.html">VIF</a> (for SunOS(TM) 4.1.x)). + + <p>You can specify more than one IP address. This is useful if + a machine responds to the same name on two different + interfaces. For example, if you have a VirtualHost that is + available to hosts on an internal (intranet) as well as + external (internet) network. Example:</p> + + <blockquote> + <code><VirtualHost 192.168.1.2 204.255.176.199><br /> + DocumentRoot /www/docs/host.foo.com<br /> + ServerName host.foo.com<br /> + ServerAlias host<br /> + </VirtualHost></code> + </blockquote> + 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>You can specify a <code>:port</code> to change the port that + is matched. If unspecified then it defaults to the same port as + the most recent <code><a href="#port">Port</a></code> statement + of the main server. You may also specify <code>:*</code> to + match all ports on that address. (This is recommended when used + with <code>_default_</code>.)</p> + + <p><strong>SECURITY</strong>: See the <a + href="../misc/security_tips.html">security tips</a> document + for details on why your security could be compromised if the + directory where logfiles are stored is writable by anyone other + than the user that starts the server.</p> + + <p><strong>NOTE</strong>: The use of <VirtualHost> does + <strong>not</strong> affect what addresses Apache listens on. + You may need to ensure that Apache is listening on the correct + addresses using either <a href="#bindaddress">BindAddress</a> + or <a href="#listen">Listen</a>.</p> + + <p><strong>See also:</strong> <a href="../vhosts/">Apache + Virtual Host documentation</a><br /> + <strong>See also:</strong> <a + href="../dns-caveats.html">Warnings about DNS and + Apache</a><br /> + <strong>See also:</strong> <a href="../bind.html">Setting + which addresses and ports Apache uses</a><br /> + <strong>See also</strong>: <a href="../sections.html">How + Directory, Location and Files sections work</a> for an + explanation of how these different sections are combined when a + request is received</p> + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/mod/core.html.fr b/usr.sbin/httpd/htdocs/manual/mod/core.html.fr new file mode 100644 index 00000000000..c7c3ebed50b --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/mod/core.html.fr @@ -0,0 +1,4115 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--Traduction anglais 1.190 --> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + <meta http-equiv="Content-Type" + content="text/html; charset=iso-8859-1" /> + + <title>Noyau d'Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + + + <h1 align="center">Noyau d'Apache</h1> + + <p>Ces paramètres de configuration contrôlent les + fonctionnalités premières d'Apache, et sont + toujours disponibles.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#acceptfilter">AcceptFilter</a></li> + + <li><a href="#accessconfig">AccessConfig</a></li> + + <li><a href="#accessfilename">AccessFileName</a></li> + + <li><a href="#adddefaultcharset">AddDefaultCharset</a></li> + + <li><a href="#addmodule">AddModule</a></li> + + <li><a href="#allowoverride">AllowOverride</a></li> + + <li><a href="#authname">AuthName</a></li> + + <li><a href="#authtype">AuthType</a></li> + + <li><a href="#bindaddress">BindAddress</a></li> + + <li><a href="#bs2000account">BS2000Account</a></li> + + <li><a href="#clearmodulelist">ClearModuleList</a></li> + + <li><a href="#contentdigest">ContentDigest</a></li> + + <li><a href="#coredumpdirectory">CoreDumpDirectory</a></li> + + <li><a href="#defaulttype">DefaultType</a></li> + + <li><a href="#directory"><Directory></a></li> + + <li><a href="#directorymatch"><DirectoryMatch></a></li> + + <li><a href="#documentroot">DocumentRoot</a></li> + + <li><a href="#ebcdicconvert">EBCDICConvert</a></li> + + <li><a + href="#ebcdicconvertbytype">EBCDICConvertByType</a></li> + + <li><a href="#ebcdickludge">EBCDICKludge</a></li> + + <li><a href="#errordocument">ErrorDocument</a></li> + + <li><a href="#errorlog">ErrorLog</a></li> + + <li><a href="#files"><Files></a></li> + + <li><a href="#filesmatch"><FilesMatch></a></li> + + <li><a href="#group">Group</a></li> + + <li><a href="#hostnamelookups">HostNameLookups</a></li> + + <li><a href="#identitycheck">IdentityCheck</a></li> + + <li><a href="#ifdefine"><IfDefine></a></li> + + <li><a href="#ifmodule"><IfModule></a></li> + + <li><a href="#include">Include</a></li> + + <li><a href="#keepalive">KeepAlive</a></li> + + <li><a href="#keepalivetimeout">KeepAliveTimeout</a></li> + + <li><a href="#limit"><Limit></a></li> + + <li><a href="#limitexcept"><LimitExcept></a></li> + + <li><a href="#limitrequestbody">LimitRequestBody</a></li> + + <li><a href="#limitrequestfields">LimitRequestFields</a></li> + + <li><a + href="#limitrequestfieldsize">LimitRequestFieldsize</a></li> + + <li><a href="#limitrequestline">LimitRequestLine</a></li> + + <li><a href="#listen">Listen</a></li> + + <li><a href="#listenbacklog">ListenBacklog</a></li> + + <li><a href="#location"><Location></a></li> + + <li><a href="#locationmatch"><LocationMatch></a></li> + + <li><a href="#lockfile">LockFile</a></li> + + <li><a href="#loglevel">LogLevel</a></li> + + <li><a href="#maxclients">MaxClients</a></li> + + <li><a + href="#maxkeepaliverequests">MaxKeepAliveRequests</a></li> + + <li><a + href="#maxrequestsperchild">MaxRequestsPerChild</a></li> + + <li><a href="#maxspareservers">MaxSpareServers</a></li> + + <li><a href="#minspareservers">MinSpareServers</a></li> + + <li><a href="#namevirtualhost">NameVirtualHost</a></li> + + <li><a href="#options">Options</a></li> + + <li><a href="#pidfile">PidFile</a></li> + + <li><a href="#port">Port</a></li> + + <li><a href="#require">require</a></li> + + <li><a href="#resourceconfig">ResourceConfig</a></li> + + <li><a href="#rlimitcpu">RLimitCPU</a></li> + + <li><a href="#rlimitmem">RLimitMEM</a></li> + + <li><a href="#rlimitnproc">RLimitNPROC</a></li> + + <li><a href="#satisfy">Satisfy</a></li> + + <li><a href="#scoreboardfile">ScoreBoardFile</a></li> + + <li><a + href="#scriptinterpretersource">ScriptInterpreterSource</a></li> + + <li><a href="#sendbuffersize">SendBufferSize</a></li> + + <li><a href="#serveradmin">ServerAdmin</a></li> + + <li><a href="#serveralias">ServerAlias</a></li> + + <li><a href="#servername">ServerName</a></li> + + <li><a href="#serverpath">ServerPath</a></li> + + <li><a href="#serverroot">ServerRoot</a></li> + + <li><a href="#serversignature">ServerSignature</a></li> + + <li><a href="#servertokens">ServerTokens</a></li> + + <li><a href="#servertype">ServerType</a></li> + + <li><a href="#startservers">StartServers</a></li> + + <li><a href="#threadsperchild">ThreadsPerChild</a></li> + + <li><a href="#threadstacksize">ThreadStackSize</a></li> + + <li><a href="#timeout">TimeOut</a></li> + + <li><a href="#usecanonicalname">UseCanonicalName</a></li> + + <li><a href="#user">User</a></li> + + <li><a href="#virtualhost"><VirtualHost></a></li> + </ul> + + <h2><a id="acceptfilter" name="acceptfilter">Directive + AcceptFilter</a></h2> + <!--%plaintext <?INDEX {\tt AcceptFilter} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> AcceptFilter on|off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>AccceptFilter on</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> server configt<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> core + + <p><code>AcceptFilter</code> contrôle une optimisation + spécifique à BSD. Elle est compilée par + défaut et activée par défaut si votre + système l'implémente (option SO_ACCCEPTFILTER de + setsocketopt()). A l'heure actuelle, seul FreeBSD + l'implémente.</p> + + <p>Se référer à la section concernant les + filtres dans la <a href="misc/perf-bsd44.html">documentation + sur la performance</a> pour de plus amples informations.</p> + + <p>L'option de compilation <code>AP_ACCEPTFILTER_OFF</code> + peut être utilisée pour changer le défaut + à 'off'. <code>httpd -V</code> et <code>httpd -L</code> + affichent dorénavant les valeurs par défauts au + moment de la compilation, et si oui ou non SO_ACCEPTFILTER a + été défini pour cette compilation.</p> + <hr /> + <!-- XXX translate a name="accessconfig" / Directive AccessConfig + --> + + <h2><a id="accessconfig" name="accessconfig">Directive + AccessConfig</a></h2> + <!--%plaintext <?INDEX {\tt AccessConfig} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> AccessConfig + <em>nomfichier|nomrépertoire</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>AccessConfig conf/access.conf</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> configuration serveur, + hôtes virtuels<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>Le serveur lit dans ce fichier des directives + supplémentaires après avoir ouvert le fichier <a + href="#resourceconfig">ResourceConfig</a>. <em>nomfichier</em> + est exprimé relativement à <a + href="#serverroot">ServerRoot</a>. Cette fonctionnalité + peut être désactivée en écrivant + :</p> + + <blockquote> + <code>AccessConfig /dev/null</code> + </blockquote> + ou sur les serverus Win32 + + <blockquote> + <code>AccessConfig nul</code> + </blockquote> + + <p>Historiquement, ce fichier ne contenait que des sections <a + href="#directory"><Directory></a>; en fait, il pourra + maintenant contenir toute directive "serveur" autorisée + dans le contexte de la <em>configuration serveur</em>.</p> + + <p>Une nouveauté de la version d'Apache 1.3.13 est la + possibilité qu'<code>AccessConfig</code> + représente un répertoire plutot qu'un fichier. + Apache lira tous les fichiers de ce répertoire ainsi que + tous les sous-répertoires et analysera tous ces fichiers + de configuration.</p> + + <p>Voir également <a + href="#resourceconfig">ResourceConfig</a>.</p> + <hr /> + + <h2><a id="accessfilename" name="accessfilename">Directive + AccessFileName</a></h2> + <!--%plaintext <?INDEX {\tt AccessFileName} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> AccessFileName <em>nomfichier</em> + [<em>nomfichier</em>] ...<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>AccessFileName .htaccess</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> configuration serveur, + hôte virtuel<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + AccessFileName ne peut accepter plusieurs noms de fichiers + qu'à partir de la version 1.3 d'Apache + + <p>Lorsqu'il retourne un document au client, le serveur cherche + le premier fichier de contrôle d'accès existant + dans cette liste dans chacun des répertoires inscrit + dans le chemin d'accès menant au document, pour + déterminer si l'accès est autorisé dan + chacun de ces répertoires. Par exemple:</p> + + <blockquote> + <code>AccessFileName .acl</code> + </blockquote> + + <p>Avant de servir le document + <code>/usr/local/web/index.html</code>, le serveur lira les + fichiers <code>/.acl</code>, <code>/usr/.acl</code>, + <code>/usr/local/.acl</code> et + <code>/usr/local/web/.acl</code> à la recherche de + directives, sauf si celles-ci ont été + désactivées par l'écriture</p> + + <blockquote> + <code><Directory /> AllowOverride None + </Directory></code> + </blockquote> + + <p><strong>Voir également :</strong> <a + href="#allowoverride">AllowOverride</a></p> + <hr /> + + <h2><a id="adddefaultcharset" + name="adddefaultcharset">Directive AddDefaultCharset</a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> AddDefaultCharset On|Off|<em>charset</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> tous<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>AddDefaultCharset Off</code><br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + AddDefaultCharset n'est disponible qu'à partir de la + version 1.3.12 + + <p>Cette directive spécifie le nom de la table de + caractères qui sera ajouté à toutes les + réponses qui n'ont aucun paramètre sur le type de + contenu dans l'en-tête HTTP. Elle remplace la table de + caractère spécifié dans le corps du + document par l'utilisation du marqueur <code>META</code>. La + mise de <code>AddDefaultCharset Off</code> désactive + cette fonctionnalité. <code>AddDefaultCharset On</code> + active la table de caractère <code>iso-8859-1</code> par + défaut d'Apache. Vous pouvez également + définir une autre table de caractères à + employer. Par exemple <code>AddDefaultCharset utf-8</code>.</p> + <hr /> + + <h2><a id="addmodule" name="addmodule">Directive + AddModule</a></h2> + <!--%plaintext <?INDEX {\tt AddModule} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> AddModule <em>module</em> [<em>module</em>] + ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur <br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + <tt>AddModule</tt> n'est disponible qu'à partir de la + version 1.2 d'Apache + + <p>Le serveur peut intégrer des modules compilés + qui ne sont pas mis en service. Cette directive peut être + utilisée pour activer ou désactiver ces modules. + Le serveur est installé avec une liste + pré-configurée de modules actifs cette liste peut + être effacée par la directive <a + href="#clearmodulelist">ClearModuleList</a>.</p> + <hr /> + + <h2><a id="allowoverride" name="allowoverride">Directive + AllowOverride</a></h2> + <!--%plaintext <?INDEX {\tt AllowOverride} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> AllowOverride All|None|<em>type de + directive</em> [<em>type de directive</em>] ... <br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>AllowOverride All All</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> + répertoire<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>Lorsque le serveur trouve un fichier .htaccess (comme + spécifié par <a + href="#accessfilename">AccessFileName</a>) il doit savoir + quelles directives declarées dans ce fichier peuvent + outrepasser les droits fixés par des directives + précédentes.</p> + + <p>Si la directive est définie à + <code>None</code>, les fichier .htaccess sont ignorés. + Dans ce cas, le serveur n'essaie même pas de lire les + fichiers .htaccess.</p> + + <p>Si la directive est définie à <code>All</code> + toutes les directives possibles dans le <a + href="directive-dict.html#Context">contexte</a> .htacces sont + autorisées dans les fichiers .htaccess.</p> + + <p>Les <em>types de directives</em> peuvent être parmi + ces groupes de directives :</p> + + <dl> + <dt>AuthConfig</dt> + + <dd> + <!--%plaintext <?INDEX {\tt AuthConfig} override> --> + Autorise l'usage de la directive Authorization (<a + href="mod_auth_dbm.html#authdbmgroupfile">AuthDBMGroupFile</a>, + <a + href="mod_auth_dbm.html#authdbmuserfile">AuthDBMUserFile</a>, + <a href="mod_auth.html#authgroupfile">AuthGroupFile</a>, <a + href="#authname">AuthName</a>, <a + href="#authtype">AuthType</a>, <a + href="mod_auth.html#authuserfile">AuthUserFile</a>, <a + href="#require">Require</a>, etc.).</dd> + + <dt>FileInfo</dt> + + <dd><!--%plaintext <?INDEX {\tt FileInfo} override> --> + Autorise l'usage de directives contrôlant + l'accès aux types de documents (<a + href="mod_mime.html#addencoding">AddEncoding</a>, <a + href="mod_mime.html#addlanguage">AddLanguage</a>, <a + href="mod_mime.html#addtype">AddType</a>, <a + href="#defaulttype">DefaultType</a>, <a + href="#errordocument">ErrorDocument</a>, <a + href="mod_negotiation.html#languagepriority">LanguagePriority</a>, + etc.).</dd> + + <dt>Indexes</dt> + + <dd><!--%plaintext <?INDEX {\tt Indexes} override> --> + Autorise l'usage de directives contrôlant l'indexation + des répertoires (<a + href="mod_autoindex.html#adddescription">AddDescription</a>, + <a href="mod_autoindex.html#addicon">AddIcon</a>, <a + href="mod_autoindex.html#addiconbyencoding">AddIconByEncoding</a>, + <a href="mod_autoindex.html#addiconbytype">AddIconByType</a>, + <a href="mod_autoindex.html#defaulticon">DefaultIcon</a>, <a + href="mod_dir.html#directoryindex">DirectoryIndex</a>, <a + href="mod_autoindex.html#fancyindexing">FancyIndexing</a>, <a + href="mod_autoindex.html#headername">HeaderName</a>, <a + href="mod_autoindex.html#indexignore">IndexIgnore</a>, <a + href="mod_autoindex.html#indexoptions">IndexOptions</a>, <a + href="mod_autoindex.html#readmename">ReadmeName</a>, + etc.).</dd> + + <dt>Limit</dt> + + <dd><!--%plaintext <?INDEX {\tt Limit} override> --> + Autorise l'usage de directives contrôlant les + accès de certains hôtes (allow, deny et + order).</dd> + + <dt>Options</dt> + + <dd><!--%plaintext <?INDEX {\tt Options} override> --> + Autorise l'usage de directives contrôlant certaines + fonctionnalités spécifiques des + répertoires (<a href="#options">Options</a> et <a + href="mod_include.html#xbithack">XBitHack</a>).</dd> + </dl> + + <p><strong>Voir également :</strong> <a + href="#accessfilename">AccessFileName</a></p> + <hr /> + + <h2><a id="authname" name="authname">Directive + AuthName</a></h2> + <!--%plaintext <?INDEX {\tt AuthName} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> AuthName <em>domaine-autorisé</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> répertoire, + .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Surcharge :</strong></a> AuthConfig<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>Cette directive indique le nom du schéma + d'autorisation pour un répertoire. Ce schéma sera + donné au client de sorte que l'utilisateur sache quel + nom et quel mot de passe envoyer. <samp>AuthName</samp> prend + un seul argument. Si le schéma d'autorisation contient + des espaces, il doit être entouré de guillemets. + Pour fonctionner correctement, elle devra être + accompagnée des directives <a + href="#authtype">AuthType</a> et <a + href="#require">require</a>, et de directives telles que <a + href="mod_auth.html#authuserfile">AuthUserFile</a> et <a + href="mod_auth.html#authgroupfile">AuthGroupFile</a>.</p> + <hr /> + + <h2><a id="authtype" name="authtype">Directive + AuthType</a></h2> + <!--%plaintext <?INDEX {\tt AuthType} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> AuthType <em>type</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> répertoire, + .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Surcharge :</strong></a> AuthConfig<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>Cette directive selectionne le type d'authentification pour + un répertoire. Seul les types <code>Basic</code> et + <code>Digest</code> sont actuellement + implémentés. + <!--%plaintext <?INDEX {\tt Basic} authentication scheme> --> + Pour fonctionner correctement, elle devra être + accompagnée des directives <a + href="#authname">AuthName</a> et <a + href="#require">require</a>, et de directives telles que <a + href="mod_auth.html#authuserfile">AuthUserFile</a> et <a + href="mod_auth.html#authgroupfile">AuthGroupFile</a>.</p> + <hr /> + + <h2><a id="bindaddress" name="bindaddress">Directive + BindAddress</a></h2> + <!--%plaintext <?INDEX {\tt BindAddress} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> BindAddress *|<em>addresse IP</em>|<em>nom de + domaine</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>BindAddress *</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>Un serveur http sous Unix® peut soit écouter + toutes les adresses IP de la machine sur lequel il est + exécuté, ou uniquement une de ces adresses. Si + l'argument de cette directive est *, le serveur traitera les + connections sur toutes les adresses IP. Sinon, le serveur peut + écouter à partir d'une <em>adresse IP</em> + spécifique ou d'un <em>nom de domaine</em> Internet.</p> + + <p>Une et une seule directive <tt>BindAddress</tt> peut + être utilisée. Pour contrôler plus finement + quels ports et adresses Apache écoute, utilisez la + directive <a href="#listen">Listen</a> au lieu de + <tt>BindAddress</tt>.</p> + + <p><tt>BindAddress</tt> peut être utilisée comme + alternative à l'implantation d'<a + href="../vhosts/">hôtes virtuels</a> utilisant des + serveurs multiples indépendants, soit au lieu d'utiliser + les sections <a + href="#virtualhost"><VirtualHost></a>.</p> + + <p><strong>Voir aussi:</strong> <a + href="../dns-caveats.html">Apache et DNS</a><br /> + <strong>Voir aussi:</strong> <a href="../bind.html">Configurer + les ports et adresses utilisés par Apache</a></p> + <hr /> + + <h2><a id="bs2000account" name="bs2000account">BS2000Account + directive</a></h2> + <!--%plaintext <?INDEX {\tt BS2000Account} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> BS2000Account <em>account</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <em>none</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + BS2000Account n'est valable que pour les machines BS2000, + à partir de la version 1.3 d'Apache. + + <p>La directive <code>BS2000Account</code> n'est disponible que + pour les machines BS2000. Elle doit être employée + pour définir le numéro de compte pour + l'utilisateur non privilégié (qui est + défini par la directive <a href="#user">User</a> ). Ceci + est requis par le sous système POSIX du BS2000 afin de + changer l'environnement d'exécution sosu jacent du BS200 + en effectuant une sous connexion, et éviter ainsi que + des scripts CGI puissent accéder à des ressources + accessible à l'utilisateur privilégié + utilisé pour lancer le serveur, + généralement <samp>SYSROOT</samp>.<br /> + Seulement une directive <code>BS2000Account</code> peut + être utilisée.</p> + + <p><strong>Voir également:</strong> <a + href="../ebcdic.html">Portage EBCDIC d'Apache</a></p> + <hr /> + + <h2><a id="clearmodulelist" name="clearmodulelist">Directive + ClearModuleList</a></h2> + <!--%plaintext <?INDEX {\tt ClearModuleList} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ClearModuleList<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + <tt>ClearModuleList</tt> n'est disponible qu'à partir de + la version 1.2 d'Apache + + <p>Le serveur dispose à l'installation d'une liste + pré-configurée de modules actifs. Cette directive + efface cette liste. Il est supposé que cette liste sera + reconstruite à partir de directives <a + href="#addmodule">AddModule</a>.</p> + <hr /> + + <h2><a id="contentdigest" name="contentdigest">Directive + ContentDigest</a></h2> + <!--%plaintext <?INDEX {\tt ContentDigest} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ContentDigest <em>on|off</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>ContentDigest off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôtes virtuels, répertoire, + .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Surcharge :</strong></a> Options<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> expérimental + + <p><a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + ContentDigest n'est disponible qu'à partir de la version + 1.1 d'Apache</p> + + <p>Cette directive active la génération + d'en-têtes <code>Content-MD5</code> conformes aux RFC1864 + et RFC2068.</p> + + <p>MD5 est un algorithme permettant d'extraire un + "résumé" à partir d'un bloc de + données de longueur arbitraire, avec un degré de + confiance suffisant dans la mesure ou une moindre + altération dans les données sera + reflétée par un changement dans le + "résumé".</p> + + <p>L'en-tête <code>Content-MD5</code> procure un test de + l'intégrité de message de bout en bout (MIC) sur + le corps d'entité. Un proxy ou client pourra tester cet + en-tête pour détecter des modifications + accidentelles du corps d'entité en cours de transfert. + Exemple d'en-tête:</p> +<pre> + Content-MD5: AuLb7Dp1rqtRtxz2m9kRpA== + +</pre> + + <p>Notez que ceci peut réduire les performances de votre + serveur dans la mesure où le "résumé" est + calculé à chaque requête (il ne peut + être mis en cache).</p> + + <p><code>Content-MD5</code> n'est émis que pour des + documents servis par le noyau, et à l'exception de tout + module. Par exemple, les documents SSI, la sortie de scripts + CGI, et des réponses en flux d'octet binaire ne pourront + utiliser cet en-tête.</p> + <hr /> + + <h2><a id="coredumpdirectory" + name="coredumpdirectory">Directive CoreDumpDirectory</a></h2> + <!--%plaintext <?INDEX {\tt CoreDumpDirectory} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> CoreDumpDirectory + <em>nomrépertoire</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> même + répertoire que ServerRoot<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>Elle définit le répertoire auquel Apache tente + d'accéder avant d'enregistrer un "noyau dump". Par + défaut, il s'agit du répertoire <a + href="#serverroot">ServerRoot</a>, cependant, si ce + répertoire n'est pas accessible en écriture par + l'utilisateur sous lequel tourne le serveur, le "noyau dump" ne + pourra être généré. Si vous + souhaitez dans ce cas obtenir un "noyau dump" pour des + nécessités de débogage, vous pouvez + utiliser cette directive pour spécifier un autre + répertoire dans lequel vous avez toute autorisation pour + écrire.</p> + <hr /> + + <h2><a id="defaulttype" name="defaulttype">Directive + DefaultType</a></h2> + <!--%plaintext <?INDEX {\tt DefaultType} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> DefaultType <em>mime-type</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>DefaultType text/html</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôtes virtuels, répertoire, + .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Surcharge :</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>Il peut arriver qu'une requête demande au serveur un + document dont le type ne peut être + déterminé par les tables de MIME.</p> + + <p>Le serveur doit informer le client du type de contenu + (Content-type) du document. Dans le cas d'un type inconnu, il + utilisera le <tt>DefaultType</tt>. Par exemple :</p> + + <blockquote> + <code>DefaultType image/gif</code> + </blockquote> + + <p>sera approprié dans un répertoire contenant + une majorité d'images gif dont certaines ne + présentent pas explicitement l'extension .gif.</p> + <hr /> + + <h2><a id="directory" name="directory">Directive + <Directory></a></h2> + <!--%plaintext <?INDEX {\tt Directory} section directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> <Directory <em>nomrépertoire</em>> + ... </Directory> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôtes virtuels<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p><tt><Directory></tt> et <tt></Directory></tt> + sont utilisés pour "encapsuler" un groupe de directives + applicables uniquement au réprtoire indiqué ainsi + qu'à ses sous-répertoires. Toute directive + autorisée dans un contexte de répertoire peut + apparaître entre ces deux balises. + <em>nomrépertoire</em> est soit le chemin + entièrement qualifié du répertoire, ou un + motif. Dans un motif, '?' remplace un caractère unique + quelconque, et '*' remplace toute séquence de + zéro ou plus caractères quelconques. Sur Apache + 1.3, vous pouvez aussi utiliser les plages de caractères + '[]' comme dans un shell UNIX. De plus aucun des + métacaractères ne peut remplacer un '/', ce qui + correspond plus intimement à la réaction des + shells UNIX. Exemple:</p> +<pre> + <Directory /usr/local/httpd/htdocs> + Options Indexes FollowSymLinks + </Directory> +</pre> + + <p><strong>A partir d'Apache 1.2 :</strong> peuvent être + utilisées les "expressions régulières", + lesquelles devront être précédées du + caractère <code>~</code>. Par exemple :</p> +<pre> + <Directory ~"^/www/.*/[0-9]{3}"> +</pre> + correspondrait à des répertoires dans /www/ dont + le nom serait constitué de trois digits. + + <p>Si plusieurs sections de répertoires pointent sur le + répertoire d'un document (ou l'un de ses pères) + sans qu'il s'agisse d'une expression régulière, + alors les directives sont appliquées selon la loi de "la + plus courte qualification d'abord", combinées aux + directives des fichiers <a + href="#accessfilename">.htaccess</a>. Par exemple, avec + l'écriture</p> + + <blockquote> + <code><Directory /> AllowOverride None + </Directory> <Directory /home/*> AllowOverride + FileInfo </Directory></code> + </blockquote> + + <p>pour le contrôle d'accès au document + <code>/home/web/dir/doc.html</code> les étapes + d'évaluation sont les suivantes :</p> + + <ul> + <li>Applique la directive <code>AllowOverride None</code> + (désactivant les fichiers + <code>.htaccess</code>).</li> + + <li>Appliquela directive <code>AllowOverride FileInfo</code> + (pour le répertoire <code>/home/web</code>).</li> + + <li>Applique toutes les directives <tt>FileInfo</tt> de + <code>/home/web/.htaccess</code></li> + </ul> + + <p>Les sections exprimant des répertoires sous forme + d'expressions régulières sont gérés + légèrement différemment par Apache 1.2 et + 1.3. Sous Apache 1.2, elles sont combinées aux sections + "normales" et s'appliquent dans l'ordre où elles + apparaissent dans le fichier de configuration. Elles ne + s'appliquent qu'une fois, seulement pour celles qui font partie + de la section "à plus courte correspondance". Sous + Apache 1.3 les sections basées sur des expressions + régulières ne sont pas évaluées + tant que toutes les sections "normales" n'ont pas + été considérées. A ce moment, les + sections "régulières" sont traitées dans + l'ordre où elles apparaissent dans le fichier de + configuration. Par exemple, avec l'écriture</p> + + <blockquote> + <code><Directory ~ abc$> ... directives ici ... + </Directory></code> + </blockquote> + + <p>Supposez que le nom de fichier demandé soit + <code>/home/abc/public_html/abc/index.html</code>. Le serveur + considère chacune des sections <code>/</code>, + <code>/home</code>, <code>/home/abc</code>, + <code>/home/abc/public_html</code>, et + <code>/home/abc/public_html/abc</code> dans cet ordre. Sous + Apache 1.2, lorsque <code>/home/abc</code> est pris en compte, + l'expression régulière correspondra et ses termes + seront appliqués. Sous Apache 1.3 l'expression + régulière n'est pas considérée du + tout à ce point de l'arbre. Elle ne le sera pas tant que + toutes les sections "normales" <tt><Directory>s</tt> et + celles des fichiers <code>.htaccess</code> n'ont pas + été appliquées. A ce moment seulement + l'expression régulière reconnaîtra + <code>/home/abc/public_html/abc</code> et les directives seront + appliquées.</p> + + <p><strong>Notez que l'accès par défaut d'Apache + pour les sections <tt><Directory></tt> est <code>Allow + from All</code>. Ceci veut dire que par défaut, Apache + desservira tout fichier indiqué par une URL. Nous + recommandons de modifier ceci à l'aide d'un bloc tel + que</strong></p> +<pre> + <Directory /> + Order Deny,Allow + Deny from All +</Directory> +</pre> + + <p><strong>puis désactiver sélectivement la + protection pour les répertoires devant rester + accessibles. Voir la page <a + href="../misc/security_tips.html">Trucs sur la + sécurité</a> pour plus de + détails.</strong></p> + + <p>Les sections de répertoires apparaissent + habituellement dans le fichier access.conf, mais peuvent + être présentes dans n'importe quel fichier de + configuration. Les directives <Directory> ne peuvent + être imbriquées, et ne peuvent petre incluses dans + des sections <a href="#limit"><Limit></a> ou <a + href="#limitexcept"><LimitExcept></a>.</p> + + <p><strong>Voir aussi</strong> : <a + href="../sections.html">Comment fonctionnent les sections + concernant les répertoires, chemins et fichiers</a> pour + une explication plus précise concernant la + manière dont ces sections sont combinées + lorsqu'une requête est traitée.</p> + <hr /> + + <h2><a id="directorymatch" name="directorymatch">Directive + <DirectoryMatch></a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> <DirectoryMatch <em>regex</em>> ... + </DirectoryMatch><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôtes virtuels<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> Core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + Disponible à partir de la version 1.3 d'Apache + + <p><tt><DirectoryMatch></tt> et + <tt></DirectoryMatch></tt> sont utilisés pour + encapsuler un groupe de directives s'appliquant uniquement aux + répertoires nommés et ses + sous-répertoires, de manière identique à + la directive <a href="#directory"><Directory></a>. + Cependant, elle n'accepte comme argument qu'une expression + régulière. Par exemple :</p> + + <blockquote> + <code><DirectoryMatch "^/www/.*/[0-9]{3}"></code> + </blockquote> + + <p>correspondrait aux répertoires de /www/ dont le nom + consiste en trois chiffres.</p> + + <p><strong>Voir aussi :</strong> <a + href="#directory"><Directory></a> pour une description de + la manière dont les définitions par expression + régulière sont combinées aux sections + <tt><Directory></tt> "normales".<br /> + <strong>Voir aussi</strong> : <a + href="../sections.html">Comment fonctionnent les sections + concernant les répertoires, chemins et fichiers</a> pour + une explication plus précise concernant la + manière dont ces sections sont combinées + lorsqu'une requête est traitée</p> + <hr /> + + <h2><a id="documentroot" name="documentroot">Directive + DocumentRoot</a></h2> + <!--%plaintext <?INDEX {\tt DocumentRoot} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> DocumentRoot <em>directory-filename</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>DocumentRoot /usr/local/apache/htdocs</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôtes virtuels<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>Cette directive définit le répertoire racine + à partir duquel httpd va distribuer les fichiers. Sauf + si le répertoire est pointé par une directive + telle que Alias, le serveur ajoute le chemin relatif + mentionnée dans l'URL présentée à + cette racine pour établir le chemin complet jusqu'au + document. Exemple :</p> + + <blockquote> + <code>DocumentRoot /usr/web</code> + </blockquote> + + <p>Un accès à + <code>http://www.my.host.com/index.html</code> se + réferre au document + <code>/usr/web/index.html</code>.</p> + + <p>Un bogue existe pour cette directive mod_dir, laquelle + fonctionne mal lorsque DocumentRoot est donnée avec un + '/' final (c-à-d. "DocumentRoot /usr/web/"). Il vaut + mieux éviter cette écriture.</p> + <hr /> + + <h2><a id="ebcdicconvert" + name="ebcdicconvert">EBCDICConvert</a></h2> + <!--%plaintext <?INDEX {\tt EBCDICConvert} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> EBCDICConvert On|Off[=<em>direction</em>] + <em>extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel, répertoire, .htaccess<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Surcharge :</strong></a> FileInfo<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> la + conversion EBCDIC est disponible à partir de la version + 1.3.19 d'Apache sur les plate-formes basées sur EBCDIC. + + <p>La directive EBCDICConvert associe une extension de fichier + à une possible conversion (<samp>On</samp> ou + <samp>Off</samp>). Les extensions de fichiers peuvent commencer + ou non par un point.</p> + + <p>Si le format optionnel <samp>On=<i>direction</i></samp> (or + <samp>Off=<i>direction</i></samp>) est employé, + où <i>direction</i> est choisi parmi <samp>In</samp>, + <samp>Out</samp> ou <samp>InOut</samp>, alors la directive ne + s'applique seulement que dans une direction de transfert + donnée (<samp>In</samp> : contenu reçu par une + requête PUT ou POST , <samp>Out</samp> : contenu + renvoyé à une requete GET ou POST, et + <samp>InOut</samp> : conversion dans les deux + directions).<br /> + Sinon, <samp>InOut</samp> (conversion dans les deux + directions) est défini.</p> + + <p>La configuration de conversion basé sur un type de + fichier est testé avant la configuration basé sur + les types MIME, afin de permettre aux règles + génériques MIME d'être surchargées + par une extension spécifique (pplusieurs extensions de + fichier peuvent exister pour le même type MIME).</p> + + <p><strong>Exemple</strong>:<br /> + Avec la configuration suivante, les fichiers + <samp>*.html</samp> contiennent du texte HTML au format EBCDIC, + tandis que les fichiers <samp>*.ahtml</samp> contiennent du + texte HTML au format ASCII :</p> +<pre> + # *.html et *.ahtml contiennet du texte HTML : + AddType text/html .html .ahtml + + # *.ahtml n'est pas converti (il contient déjà du texte ASCII) + EBCDICConvert Off .ahtml + + # Les autres fichiers text/html contiennent du texte EBCDIC: + EBCDICConvertByType On text/html +</pre> + <br /> + <br /> + + + <p><strong>Voir également</strong>: <a + href="#ebcdicconvertbytype">EBCDICConvertByType</a> et <a + href="../ebcdic.html#ebcdic">Aperçu des fonctions de + conversion EBCDIC</a></p> + <hr /> + + <h2><a id="ebcdicconvertbytype" + name="ebcdicconvertbytype">EBCDICConvertByType</a></h2> + <!--%plaintext <?INDEX {\tt EBCDICConvertByType} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> EBCDICConvertByType On|Off[=<em>direction</em>] + <em>mimetype</em> [<em>mimetype</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel, répertoire, .htaccess<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Surcharge :</strong></a> FileInfo<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> la + conversion EBCDIC est disponible à partir de la version + 1.3.19 d'Apache sur les plate-formes basées sur EBCDIC. + + <p>La directive EBCDICConvertByType associe un type MIME + (pouvant contenir une *) à une éventuelle + conversion (<samp>On</samp> ou <samp>Off</samp>).</p> + + <p>Si le format optionnel <samp>On=<i>direction</i></samp> (or + <samp>Off=<i>direction</i></samp>) est employé, + où <i>direction</i> est choisi parmi <samp>In</samp>, + <samp>Out</samp> ou <samp>InOut</samp>, alors la directive ne + s'applique seulement que dans une direction de transfert + donnée (<samp>In</samp> : contenu reçu par une + requête PUT ou POST , <samp>Out</samp> : contenu + renvoyé à une requete GET ou POST, et + <samp>InOut</samp> : conversion dans les deux + directions).<br /> + Sinon, <samp>InOut</samp> (conversion dans les deux + directions) est défini.</p> + + <p><strong>Par exemple</strong>:<br /> + Une configuration standard pratique devrait au moins contenir + ces directives :</p> +<pre> + # All text documents are stored as EBCDIC files: + # Tous les document textes sont stockés au format EBCDIC + EBCDICConvertByType On text/* message/* multipart/* + EBCDICConvertByType On application/x-www-form-urlencoded \ + model/vrml application/postscript + # Les autres fichiers sont traités comme binaires. + EBCDICConvertByType Off */* +</pre> + Si vous servez seulement que des documents ASCII, par exemple + provenant d'un montage NFS d'un serveur Unix, utilisez : +<pre> + # Tous les documents sont déjà en ASCII: + EBCDICConvertByType Off */* +</pre> + + <p><strong>Voir également</strong>: <a + href="#ebcdicconvert">EBCDICConvert</a> et <a + href="../ebcdic.html#ebcdic">Aperçu des fonctions de + conversion EBCDIC</a></p> + <hr /> + + <h2><a id="ebcdickludge" + name="ebcdickludge">EBCDICKludge</a></h2> + <!--%plaintext <?INDEX {\tt EBCDICKludge} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> EBCDICKludge On|Off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>EBCDICKludge + Off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel, répertoire, .htaccess<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Surcharge :</strong></a> FileInfo<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + EBCDICKludge est disponible à partir de la version + 1.3.19 d'Apache sur les plate-formes basées sur EBCDIC. + Il est désuet et sera abandonné dans les versions + ultérieures.<br /> + + + <p>The EBCDICKludge est proposée par + compatibilité avec les versions d'Apache 1.3.0 à + 1.3.18. Dans ces versions, tous les fichiers dont le type MIME + commence par "text/", "message/" ou "multipart/" ou dont le + type est "application/x-www-form-urlencoded" sont convertis par + défaut, les autres documents sont retournés sans + conversion. Un document est présumé être au + format ASCII iuniquement si il est du type + "<samp>text/<b>x-ascii-</b><i>sous-type</i></samp>", et ne sera + donc pas converti. A la place, le préfixe + "<samp><b>x-ascii-</b></samp>" était supprimé du + type, obtenant ainsi le type MIME + "<samp>text/<i>sous-type</i></samp>" comme type du document + retourné.</p> + + <p>Si la directive EBCDICKludge est mise à + <samp>On</samp>, et si aucune des extensions de fichiers ne + correspondent aux directives <a + href="#ebcdicconvert">EBCDICConvert</a> définis dans le + contexte , alors le serveur teste avec le type MIME de format + <samp><i>type/</i><b>x-ascii-</b><i>sous-type</i></samp>. Si le + document a un tel type alors la chaîne + "<samp><b>x-ascii-</b></samp>" est supprimée et la + conversion est mise à <samp>Off</samp>. Cela permet de + surcharger l'assertion implicite que tous les fichiers sont + stockés au format EBCDIC, par exemple si Apache sert des + fichiers provenant d'un montage NFS d'un répertoire + contenant des documents ASCII.<br /> + En utilisant EBCDICKludge, Il n'y a aucun moyen de forcer un + des autres types MIME (par exemple model/vrml) d'être + traité au format EBCDIC. L'utilisation de la directive + <a href="#ebcdicconvertbytype">EBCDICConvertByType</a> est + préférable pour définir une telle + conversion. Avant Apache 1.3.19, il n'y avait aucun moyen de + forcer ces document binaires d'être traités comme + des fichiers textes EBCDIC</p> + + <p><strong>Voir également</strong> : <a + href="#ebcdicconvert">EBCDICConvert</a>, <a + href="#ebcdicconvertbytype">EBCDICConvertByType</a> and <a + href="../ebcdic.html#ebcdic">Aperçu des fonctions de + conversion EBCDIC</a></p> + <hr /> + + <h2><a id="errordocument" name="errordocument">Directive + ErrorDocument</a></h2> + <!--%plaintext <?INDEX {\tt ErrorDocument} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ErrorDocument <em>code d'erreur + document</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôtes virtuels, répertoire, + .htaccess<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Surcharge :</strong></a> FileInfo<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> Les + contextes répertoire et .htaccess ne sont utilisables + qu'à partir de la version 1.1 d'Apache. + + <p>Dans l'éventualité d'un problème ou + d'une erreur, Apache peut exécuter l'une des quatre + actions suivantes :</p> + + <ol> + <li>sortie d'un message d'erreur simple standard</li> + + <li>sortie d'un message personnalisé</li> + + <li>redirection vers une URL locale pour traiter le + problème (ou l'erreur)</li> + + <li>redirection vers une URL externe pour traiter le + problème (ou l'erreur)</li> + </ol> + + <p>La première option est celle par défaut, les + options 2 à 4 seront obtenues en utilisant la directive + <tt>ErrorDocument</tt>, suivi du code HTTP d'erreur et du + message textuel d'erreur, ou une URL.</p> + + <p><em>Messages</em> dans ce contexte, commence par un + guillemet simple (<code>"</code>), qui ne fait pas partie du + message lui-même. Apache ajoutera souvent des + informations complémentaires explicitant le + problème (ou l'erreur).</p> + + <p>L'URL peut débuter par un slash (/) pour des URL + locales, ou être complètement qualifiées. + Exemples:</p> + + <blockquote> + <code>ErrorDocument 500 + http://foo.example.com/cgi-bin/tester<br /> + ErrorDocument 404 /cgi-bin/bad_urls.pl<br /> + ErrorDocument 401 /subscription_info.html<br /> + ErrorDocument 403 "Sorry can't allow you access today</code> + </blockquote> + + <p>Notez que lorsque vous spécifiez un + <tt>ErrorDocument</tt> qui pointe vers une URL externe (c'est + -à-dire toute adresse commençant par quelque + chose du style "http:") Apache émettra une requête + de redirection au client pour lui indiquer où trouver le + document. Ceci peut perturber les robots et d'autres clients + qui essaient de déterminer si une URL est valide en + testant le code retour de la requête. De plus, si vous + utilisez l'écriture <code>ErrorDocument 401</code> le + client ne saura pas qu'il doit demander un mot de passe + puisqu'il ne recevra pas le code retour 401. Par + conséquent, il est impératif d'utiliser une URL + locale pour une directive "ErrorDocument 401". Ceci est induit + par la nature des schémas d'authentification de base + d'HTTP.</p> + + <p><strong>Voir aussi:</strong> <a + href="../custom-error.html">documentation sur les + réponses personnalisées.</a></p> + <hr /> + + <h2><a id="errorlog" name="errorlog">Directive + ErrorLog</a></h2> + <!--%plaintext <?INDEX {\tt ErrorLog} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ErrorLog <em>nomfichier</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> <code>ErrorLog + logs/error_log</code> (Unix)<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> <code>ErrorLog + logs/error.log</code> (Windows et OS/2)<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôtes virtuels<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>Cette directive définit le nom du fichier dans lequel + le serveur marque la trace des erreurs rencontrées. Si + le nom de fichier ne commence pas par un slash (/), alors la + partie "chemin d'accès" est considérée + relativement à <a href="#serverroot">ServerRoot</a>. + Exemple:</p> + + <blockquote> + <code>ErrorLog /dev/null</code> + </blockquote> + + <p>Cette expression a pour effet de désactiver la trace + d'erreurs.</p> + Si le fichier commence par une barre verticale (|), il est + censé être une commande à exécuter + pour ttraiter le message d'erreur.<br /> + <br /> + + + <p><strong>Apache 1.3 et ultérieur:</strong> en + utilisant <code>syslog</code> à la place d'un fichier + permet d'employer syslogd(8) si le système l'accepte. Le + défau est d'utiliser la fonction syslog + <code>local7</code>, mais vous pouvez remplacer ceci en + utilisant la syntaxe <code>syslog:</code><em>service</em> + où <em>service</em> peut être un des noms + documenté dans syslog(1).</p> + + <p><strong>Sécurité :</strong> Voir la page <a + href="../misc/security_tips.html">note sur la + securité</a> pour plus d'information concernant une + possibilité de brêche de sécurité si + le répertoire d'accueil des fichiers de trace peut + être écrit par tout autre utilisateur que le + propriétaire du processus serveur.</p> + <hr /> + + <h2><a id="files" name="files">Directive <Files></a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> <Files <em>nomfichier</em>> ... + </Files><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôtes virtuels, .htaccess<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + Disponible à partir de la version 1.2 d'Apache. + + <p>La directive <tt><Files></tt> permet une gestion de + contrôle d'accès fichier par fichier. Elle est + comparable aux directives <a + href="#directory"><Directory></a> et <a + href="#location"><Location></a>. Elle doit s'apparier + à une directive <tt></Files></tt>. Les directives + applicables au fichier indiqué sont encapsulées + entre ces deux balises. Les sections <tt><Files></tt> + sont traitées dans l'ordre où elles apparaissent + dans le fichier de configuration, une fois traitées les + sections <tt><Directory></tt> et les fichiers .htaccess, + mais avant les sections <tt><Location></tt>.</p> + + <p>L'argument <em>filename</em> peut inclure un nom de fichier, + où un motif, dans lequel '?' correspond à tout + caractère unique quelconque, et '*' correspond à + une séquence de zéro à un nombre + quelconque de caractères. Les "expressions + régulières" peuvent aussi être + utilisées, pourvu qu'elles soient + précédées du caractère + <code>~</code>. Par exemple :</p> +<pre> + <Files ~"\.(gif|jpe?g|png)$"> +</pre> + + <p>correspondrait à la majorité des fichiers + graphiques utilisés sur Internet. A partir de la version + 1.3 d'Apache, l'usage de la directive <a + href="#filesmatch"><FilesMatch></a> est cependant + préférable.</p> + + <p>Notez que, contrairement aux sections <a + href="#directory"><Directory></a> et <a + href="#location"><Location></a>, les sections + <tt><Files></tt> peuvent apparaître dans des + fichiers <code>.htaccess</code>. Ceci permet aux utilisateurs + de contrôler l'accès à leurs propres + fichiers, sur un mode individuel. Lorsqu'elles sont + utilisées dans un fichier <code>.htaccess</code>, si + <em>nomfichier</em> ne commence pas par un slash (/), le + répertoire courant contenant ledit fichier + <code>.htaccess</code> y sera préfixé + automatiquement.</p> + + <p><strong>Voir aussi :</strong> <a + href="../sections.html">Comment fonctionnent les sections + concernant les répertoires, chemins et fichiers</a> pour + une explication plus précise concernant la + manière dont ces sections sont combinées + lorsqu'une requête est traitée</p> + <hr /> + + <h2><a id="filesmatch" name="filesmatch">Directive + <FilesMatch></a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> <FilesMatch <em>regex</em>> ... + </Files><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôtes virtuels, .htaccess<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + Disponible à partir de la version 1.3 d'Apache. + + <p>La directive <tt><FilesMatch></tt> permet un + contrôle d'accès fichier par fichier, tout comme + la directive <a href="#files"><Files></a>. Cependant, + elle n'accepte qu'un argument sous forme d'expression + régulière. Par exemple :</p> + + <blockquote> + <code><FilesMatch "\.(gif|jpe?g|png)$"></code> + </blockquote> + + <p>qui correspondrait à la plupart des fichiers + graphiques utilisés sur Internet.</p> + + <p><strong>Voir aussi :</strong> <a + href="../sections.html">Comment fonctionnent les sections + concernant les répertoires, chemins et fichiers</a> pour + une explication plus précise concernant la + manière dont ces sections sont combinées + lorsqu'une requête est traitée</p> + <hr /> + + <h2><a id="group" name="group">Directive Group</a></h2> + <!--%plaintext <?INDEX {\tt Group} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> Group <em>groupeUnix</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> <code>Group + #-1</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>Group</tt> définit le groupe dont + les requêtes seront traitées par le serveur. Pour + utiliser cette directive, le serveur stand-alone doit tout + d'abord être exécuté par l'utilisateur + "root". <em>groupeUnix</em> est à choisir parmi :</p> + + <dl> + <dt>un nom de groupe</dt> + + <dd>se réfère à un groupe unix par son + nom.</dd> + + <dt># suivi d'unnuméro de groupe.</dt> + + <dd>se réfère à un groupe par son + indice.</dd> + </dl> + + <p>Il est recommendé de créer un nouveau groupe + d'utilisateurs pour les utilisateurs exécutant le + serveur. Certains administrateurs assignent le serveur à + l'utilisateur <code>nobody</code>, mais ceci n'est pas toujours + possible ou souhaîtable.</p> + + <p><strong>Note :</strong> si vous démarrez le serveur + sous un compte utilisateur autre que "root", la commutation sur + un autre groupe échouera, et le groupe utilisé + restera le groupe initial de l'utilisateur.</p> + + <p><strong>Note spéciale :</strong> L'utilisation de + cette directive dans un contexte <tt><VirtualHost></tt> + nécessite un <a href="../suexec.html">suEXEC wrapper</a> + correctement configuré. De cette manière et dans + ce contexte, seul le groupe dans lequel sont + exécutés les CGI sont affectés. Toute + requête autre que CGI sont toujours lancées dans + le groupe défini par la directive Group principale.</p> + + <p><strong>Sécurité :</strong> Voir <a + href="#user">Utilisateur</a> pour une discussion plus + détaillée sur les aspects utilisateurs.</p> + <hr /> + + <h2><a id="hostnamelookups" name="hostnamelookups">Directive + HostNameLookups</a></h2> + <!--%plaintext <?INDEX {\tt HostNameLookups} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> HostNameLookups <em>on | off | double</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>HostNameLookups off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel, répertoire, .htaccess<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + <code>double</code> n'est disponible qu'à partir de la + version 1.3 d'Apache.<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> La + valeur par défaut était <code>on</code> pour + toute version antérieure à la version 1.3 + d'Apache. + + <p>Cette directive autorise la résolution DNS pour la + trace d'accès (et pour les passer aux CGI/SSI en + <code>REMOTE_HOST</code>). La valeur <code>double</code> + signifie une résolution DNS inverse double. + C'est-à-dire, après qu'une résolution + inverse soit effectuée, une résolution est + ensuite effectuée à partir du résultat + obtenu. Au moins une des adresses IP obtenues par la + deuxième résolution doit correspondre à + l'adresse originale. (Dans le langage des "fous de tcp" ceci + s'appelle <code>PARANOID</code>.)</p> + + <p>Indépendamment du mode choisi, lorsque <a + href="mod_access.html">mod_access</a> est utilisé pour + faire du contrôle d'accès par nom d'hôte, + une résolution inverse double sera effectuée. + Ceci est indispensable pour des raisons de + sécurité. Notez que le résultat de cette + résolution inverse double n'est en général + pas accessible sauf si l'option <samp>HostnameLookups + double</samp> est activée. Par exemple, si l'option est + simplement <samp>HostnameLookups on</samp> et une requête + est reçue vers un objet soumis à des restrictions + quant aux noms d'hôtes, et quelque soit le + résultat de la réslution inverse double, les CGI + recevront le résultat de la résolution inverse + dans la variable d'environnement <code>REMOTE_HOST</code>.</p> + + <p>Par défaut, l'état choisi était + <code>on</code> dans les versions d'apache antérieures + à la version 1.3. Elle est aujourd'hui à + <code>off</code> afin de diminuer le trafic pour les sites qui + n'ont pas un besoin absolu de la résolution inverse. + C'est aussi un avantage pour les utilisateurs finaux qui + n'auront pas à attendre la fin du processus de + résolution avant d'être servis. Des sites + chargés devraient plutôt laisser cette opyion + à <code>off</code>, dans la mesure où une + recherche DNS peut consommer un temps non négligeable. + L'utilitaire <code>logresolve</code>, fourni dans le + répertoire <i>/support</i>, peut être + utilisé pour résoudre des noms d'hôtes + à partir des adresses IP tracées en mode + "offline".</p> + <hr /> + + <h2><a id="identitycheck" name="identitycheck">Directive + IdentityCheck</a></h2> + <!--%plaintext <?INDEX {\tt IdentityCheck} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> IdentityCheck <em>booléen</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>IdentityCheck off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel, répertoire, .htaccess<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>Cette directive autorise une trace conforme à la + RFC1413 du nom d'utilisateur pour chaque connexion, lorsque la + machine cliente exécute identd ou un procesus similaire. + Cette information est tracée dans le fichier + <code>access log</code>. <em>booléen</em> vaut soit + <code>on</code> ou <code>off</code>.</p> + + <p>Cette information n'est absolument pas certifiée et + ne peut être considérée que pour une + analyse sommaire.</p> + + <p>Notez que ce fontionnement peut rallonger notablement les + délais d'accès à votre serveur dans la + mesure où chaque requête nécessite + l'exécution d'une résolution. Lorsque des + "firewalls" sont présents chaque résolution peut + éventuellement échouer et ajouter ainsi 30 + secondes d'attente pour chaque accès. En conclusion, + cette option n'est en général pas opportune pour + des serveurs Internet ouverts au public.</p> + <hr /> + + <h2><a id="ifdefine" name="ifdefine"><IfDefine> + directive</a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> <IfDefine + [!]<em>nom-paramètre</em>> <em>...</em> + </IfDefine><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> aucun<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> tous<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + <IfDefine> est disponible à partir de la version + 1.3.1 + + <p>La section <IfDefine + <em>test</em>>...</IfDefine> est employée pour + délimiter des directives conditionnelles. Les directives + à l'intérieur d'un section IfDefine ne sont + prises en compte que si <em>test</em> est vraie. Si + <em>test</em> est faux, tout ce qui se trouve entre le marqueur + de début et celui de fin est ignoré.</p> + + <p>Le <em>test</em> de la section <IfDefine> peut exister + sous deux formes :</p> + + <ul> + <li><em>nom-paramètre</em></li> + + <li><code>!</code><em>nom-paramètre</em></li> + </ul> + + <p>Dans le premier cas, les directives entre les marqueurs de + début et de fin ne sont traité que si le + paramètre nommé <em>nom-paramètre</em> est + défini. Dans le deuxième cas, les directives + entre les marqueurs de début et de fin ne sont + traité que si le paramètre nommé + <em>nom-paramètre</em> n'est <strong>pas</strong> + défini.</p> + + <p>L'argument <em>nom-paramètre</em> est une + définition qui peut être donnée en ligne de + commande d'httpd en utilisant l'option + <code>-D</code><em>nom-paramètre</em>, au lancement du + serveur.</p> + + <p>Les sections <IfDefine> peuvent s'imbriquer, ce qui + permet de réaliser des test sur plusieurs + paramètres. Par exemple :</p> +<pre> + $ httpd -DReverseProxy ... + + # httpd.conf + <IfDefine ReverseProxy> + LoadModule rewrite_module libexec/mod_rewrite.so + LoadModule proxy_module libexec/libproxy.so + </IfDefine> +</pre> + <hr /> + + <h2><a id="ifmodule" name="ifmodule">Directive + <IfModule></a></h2> + <b>Syntaxe :</b> <IfModule [!]<i>nomModule</i>> + <i>...</i> </IfModule><br /> + <b>Défaut :</b> aucun<br /> + <b>Contexte :</b> tous<br /> + <b>Statut :</b> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> IfModule + n'est disponible qu'à partir de la version 1.2 d'Apache. + + + <p>La section <tt><IfModule + <i>test</i>></tt>...</IfModule> permet de rendre + conditionnelles un groupe de directives. Les directives + à l'intérieur d'une section IfModule ne sont + considérées que si le <i>test</i> est + vérifié. Si <i>test</i> vaut faux, toute + directive inclue entre la balise de début et celle de + fin sont ignorées.</p> + + <p>Le <em>test</em> d'une section <tt><IfModule></tt> + peut prendre l'une des formes suivantes :</p> + + <ul> + <li><i>nomModule</i></li> + + <li>!<i>nomModule</i></li> + </ul> + + <p>Dans le premier cas, les directives entre les deux balises + de début et de fin ne sont traitées que si le + module indiqué par <em>nomModule</em> est compilé + dans votre version d'Apache. La seconde forme inverse le sens + du test, et ne traite les directives que si le module + <em>nomModule</em> n'est <b>pas</b> compilé.</p> + + <p>L'argument <em>nomModule</em> spécifie un nom de + module par son nom de fichier source, tel qu'appelé par + la compilation. Par exemple, <code>mod_rewrite.c</code>.</p> + + <p>Les sections <tt><IfModule></tt> peuvent être + imbriquées, ce qui peut être utile pour + implémenter simplement des tests multi-modules.</p> + <hr /> + + <h2><a id="include" name="include">Directive Include</a></h2> + <strong>Syntaxe :</strong> Include <em>nomfichier</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> Include + n'est disponible qu'à partir de la version 1.3 d'Apache. + + + <p>Cette directive permet l'inclusion d'autres fichiers de + configuration à partir d'autres fichiers de + configuration serveur.</p> + + <p>A partir de la version Apache 1.3.13, si + <code>Include</code> pointe vers un répertoire plutot + qu'un fichier, Apche lira tous fichiers de ce + répertoire, ou des sous-répertoires, et traitera + chacun de ces fichiers de configuration.</p> + <hr /> + + <h2><a id="keepalive" name="keepalive">Directive + KeepAlive</a></h2> + <strong>Syntaxe : (Apache 1.1)</strong> KeepAlive + <em>requêtesMax</em><br /> + <strong>Défaut : (Apache 1.1)</strong> <code>KeepAlive + 5</code><br /> + <strong>Syntaxe : (Apache 1.2)</strong> KeepAlive + <em>on/off</em><br /> + <strong>Défaut : (Apache 1.2)</strong> <code>KeepAlive + On</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + KeepAlive est disponible à partir de la version 1.1 + d'Apache. + + <p>L'extension Keep-Alive d'HTTP/1.0 et les connexions + persistantes d'HTTP/1.1 fournissent des sessions durables HTTP + , qui autorisent plusieurs requêtes à être + envoyées sur la même connexion. Dans certains cas, + il a été constaté une réduction de + 50% du temps de latence ppour des documents HTML contenant de + nombreuses images. Pour activer les connexions persistantes + (keep-alive) à partir d'Apache 1.2 il faut + définir la directive <code>KeepAlive On</code>.</p> + + <p>Pour les clients HTTP/1.1, Les connexions persistantes ne + sont employées que si elles sont spécifiquement + demandées par un client. De plus, une connexion + persistantes ne peut être employées que si la + taille du contenu est connu à l'avance. Ceci implique + que les contenus dynamiques, tels que les scripts CGI, les + pages SSI, et les listes de répertoires + générés par le serveur n'utilisent pas de + connexions persistentes pour les clients HTTP/1.0. Pour les + clients HTTP/1.1, les connexions sont persistantes par + défaut à moins d'être + spécifiée. Si le client le demande, l'encodage + par tranches est utilisé afin d'envoyer des contenus de + tailles inconnus au travers de connxions persistantes.</p> + + <p><strong>Sous Apache 1.1</strong>: Mettre + <em>requêtesMax</em> au nombre maximum de requêtes + qu'Apache peut traiter par connexion persistante. Une + limitation est imposée pour éviter qu'un client + ne vienne asphyxier votre serveur en ressources. Mettre un + <code>0</code> pour désactiver ce support. A partir de + la version 1.2, ceci est contrôlé par la directive + MaxKeepAliveRequests</p> + Voir aussi la directive <a + href="#maxkeepaliverequests">MaxKeepAliveRequests</a>.<br /> + <br /> + + <hr /> + + <h2><a id="keepalivetimeout" name="keepalivetimeout">Directive + KeepAliveTimeout</a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> KeepAliveTimeout <em>secondes</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>KeepAliveTimeout 15</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + <tt>KeepAliveTimeout</tt> est disponible à partir de la + version 1.1 d'Apache. + + <p>Le nombre de secondes pendant lesquelles Apache attendra une + requête postérieure avant de rompre une connexion. + Dès qu'une requête est reçue, la valeur de + la temporisation spécifiée par la directive <a + href="#timeout">Timeout</a> s'applique.</p> + + <p>Mettre <code>KeepAliveTimeout</code> à une grande + valeur peut créer des problèmes de performance + pour des serveurs chargés. Le plus grand est ce + délai, le plus les processus du serveur seront + occupés en attente de connexions avec des clients + inactifs.</p> + <hr /> + + <h2><a id="limit" name="limit">Directive <Limit></a></h2> + <!--%plaintext <?INDEX {\tt Limit} section directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> <Limit <em>méthode méthode</em> + ... > ... </Limit><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> tous<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>Les contrôles d'accès sont normalement actives + pour <strong>toutes</strong> les méthodes + d'accès, et ceci est le comportement normal. <strong>En + général, les directives de contrôle + d'accès ne doivent être placées à + l'intérieur d'une section + <code><limit></code>.</strong></p> + + <p>Le but de la directive <Limit> est de restreindre la + portée des contrôles d'accès à + certaines méthodes HTTP. Pour toutes les autres + méthodes, les restrictions d'accès qui sont + situées à l'intérieur de <Limit> + <strong>sont sans effets</strong>. L'exemple suivant applique + le contrôle d'accès uniquement aux méthodes + POST, PUT, and DELETE, laissant les autres méthodes non + protégées :</p> + + <blockquote> + <code><Limit POST PUT DELETE><br /> + Require valid-user<br /> + </Limit></code> + </blockquote> + Les noms de méthodes peuvent être choisis parmi + GET, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, + PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, et UNLOCK. + <strong>Le nom de la méthode est sensible à la + casse.</strong> Si GET est employé, il restreindra + également les requêtes HEAD. + <hr /> + + <h2><a id="limitexcept" name="limitexcept">Directive + <LimitExcept></a></h2> + <!--%plaintext <?INDEX {\tt LimitExcept} section directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> <LimitExcept <em>méthode</em> + [<em>méthode</em>] ... > ... + </LimitExcept><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> tous<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + disponible à partir de la version 1.3.5 d'Apache. + + <p><LimitExcept> et </LimitExcept> sont + employés pour entourer un groupe de directives de + contrôle d'accès qui s'appliqueront pour n'importe + quelle méthode d'accès ne se trouvant + <strong>pas</strong> en arguments Cette directive est + l'oppsée de <a href="#limit"><Limit></a> et peut + être employée pour contrôler les + méthodes non reconnues ou non standard. Voir la + documentation de <a href="#limit"><Limit></a> pour plus + de détails.</p> + <hr /> + + <h2><a id="limitrequestbody" name="limitrequestbody">Directive + LimitRequestBody</a></h2> + <!--%plaintext <?INDEX {\tt LimitRequestBody} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> LimitRequestBody <em>octets</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>LimitRequestBody 0</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel, répertoire .htaccess<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + LimitRequestBody est disponible à partir de la version + 1.3.2. + + <p>Cette directive détermine la taille maximale en + octets que peut avoir le corps d'une requête. Elle peut + aller de 0 (illimité) à 2147483647 (2GB). La + valeur par défaut est déterminée à + la compilation par la constante + <code>DEFAULT_LIMIT_REQUEST_BODY</code> (0 dans les + distributions).</p> + + <p>La directive LimitRequestBody directive permet à + l'utilisateur de fixer une limite à la taille du corps + d'une requête à l'intérieur du contexte + où cette directive est située (serveur, par + répertoire, par fichier). Si le client effezctue une + requête excédant cette limite, le serveur + retournera un message d'erreur au lieu de traiter la + requête. La taille d'une requête normale peut + beaucoup varier en fonction de la nature de la ressource + demandée et des méthodes d'accès permise + sur cette ressource. Typiquement les scripts CGI utilise le + corps du message pour passer des informations au serveur. Des + implémentation de la méthode PUT nécessite + une valeur au moins aussi grande que le serveur souhaite + recevoir pour cette ressource.</p> + + <p>Cette directive donne à l'administrateur un plus + grand contrôle par rapport à des requêtes + anormales de clients, et peut être utile pour + éviter certaines formes d'attaques par déni de + service.</p> + <hr /> + + <h2><a id="limitrequestfields" + name="limitrequestfields">Directive LimitRequestFields</a></h2> + <!--%plaintext <?INDEX {\tt LimitRequestFields} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> LimitRequestFields <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>LimitRequestFields 100</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + LimitRequestFields est disponible à partir de la version + 1.3.2. + + <p><em>Number</em> est un entier allant de 0 (signifiant sans + limite) à 32767. La valeur par défaut est + définie à la compilation par la constante + <code>DEFAULT_LIMIT_REQUEST_FIELDS</code> (100 dans la + distribution).</p> + + <p>La directive LimitRequestFields permet à + l'administrateur du serveur de modifier le nombre maximum de + champs autorisé à l'intérieur de + l'en-tête d'une requête HTTP. Un serveur doit avoir + cette valeur supérieure au nombre de champs qu'un client + normal peut inclure. Le nombre de champs utilisé par un + client excède rarement 20, mais ceci peut varier en + fonction de l'implémentation des clients, le plus + souvent il dépend du niveau auquel le client a + configuré son butineur pour accepter une + négociation de contenu très fine. Les extensions + HTTP optionnelles sont exprimées en utilisant des champs + dans l'en-tête de requête.</p> + + <p>Cette directive permet à l'administrateur un meilleur + contrôle par rapport à des requêtes + anormales, ce qui peut être utile pour éviter + certaines attaques par déni de service. Cette valeur + doit être augmentée si certains clients obtiennent + un message d'erreur à leurs requêtes indiquant que + trop de champs sont envoyés dans la requête.</p> + <hr /> + + <h2><a id="limitrequestfieldsize" + name="limitrequestfieldsize">Directive + LimitRequestFieldsize</a></h2> + <!--%plaintext <?INDEX {\tt LimitRequestFieldsize} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> LimitRequestFieldsize <em>octets</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>LimitRequestFieldsize 8190</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + LimitRequestFieldsize est disponible à partir de la + version 1.3.2. + + <p>Cette directive indique la taille maximale de + l'en-tête d'une requête HTTP et peut aller de 0 + <em>octets</em> à la valeur définit à la + compilation par la constante + <code>DEFAULT_LIMIT_REQUEST_FIELDSIZE</code> (8190 dans la + distribution standard).</p> + + <p>La directive LimitRequestFieldsize permet à + l'administrateur de limiter la taille autorisée pour le + champ d'en-tête HTTP d'une requête à une + valeur inférieure à celle définie à + la compilation. Un serveur doit avoir cette valeur suffisamment + grande pour pouvoir traiter les requêtes de clients + normaux. La taille d'une requête noramle peut beaucoup + varier en fonction de l'implémentation du client, le + plus souvent il dépend du niveau auquel le client a + configuré son butineur pour accepter une + négociation de contenu très fine.</p> + + <p>Cette directive permet l'administrateur d'avoir un meilleur + contrôle sur des requêtes ayant un comportement + anormale, ce qui peut être utile afin d'éviter + certaines formes d'attaques par déni de service. Dans + des conditions normales, cette valeur doit rester celle par + défaut.</p> + <hr /> + + <h2><a id="limitrequestline" name="limitrequestline">Directive + LimitRequestLine</a></h2> + <!--%plaintext <?INDEX {\tt LimitRequestLine} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> LimitRequestLine <em>octets</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>LimitRequestLine 8190</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + LimitRequestLine est disponible à partir de la version + 1.3.2. + + <p>Cette directive indique la taille maximale d'une + requête HTTP et peut aller de 0 <em>octets</em> à + la valeur définit à la compilation par la + constante <code>DEFAULT_LIMIT_REQUEST_LINE</code> (8190 dans la + distribution standard).</p> + + <p>La directive LimitRequestLine permet à + l'administrateur de réduire la limite fixée pour + une requête HTTP en dessous de la valeur fixée + à la compilation. Comme une requête est + composée de la méthode HTTP, d'une URI et de la + version du protocole utilisé, la directive + LimitRequestLine place une restriction sur la taille maximale + que peut avoir une URI dansune requête. Un serveur doit + avoir cette valeur suffisamment grande pour pouvoir traiter + n'importe quelle de ses ressources, en prenant en compte les + informations qui pourrait être passées dans une + requête GET.</p> + + <p>Cette directive permet l'administrateur d'avoir un meilleur + contrôle sur des requêtes ayant un comportement + anormale, ce qui peut être utile afin d'éviter + certaines formes d'attaques par déni de service. Dans + des conditions normales, cette valeur doit rester celle par + défaut.</p> + <hr /> + + <h2><a id="listen" name="listen">Directive Listen</a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> Listen + [<em>adresseIp</em>:]<em>numéroPort</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> Listen + est disponible à partir de la version 1.1 d'Apache. + + <p>La directive <tt>Listen</tt> enjoint Apache à + écouter plus d'une adresse IP ou port; par défaut + Apache répond aux requêtes reçues sur + toutes les interfaces IP, mais seulement celles arrivant sur le + port donné par la directive <a + href="#port">Port</a>.</p> + <tt>Listen</tt> peut être utilisée à la + place de <tt><a href="#bindaddress">BindAddress</a></tt> et + <tt>Port</tt>. Elle indique au serveur d'accepter des + requêtes entrantes sur le port spécifié ou + sur une combinaison adresse-port. Si le premier format est + utilisé (avec seule mention d'un numéro de port), + le serveur "écoutera" tous les ports + spécifiés sur chacune des interfaces IP qu'il + connaît, plutôt que sur le port donné par la + directive <tt>Port</tt>. Si une adresse IP adresse IP est + précisée en complément, le serveur + restreindra son écoute à la combinaison + adresse-port précisée.<br /> + <br /> + + + <p>Notez que vous avez toujours besoin de la directive + <tt>Port</tt> qui permettent à Apache de + générer les URL de retour vers votre serveur.</p> + + <p>Plusieurs directives <tt>Listen</tt> peuvent être + utilisées pour spécifier un ensemble d'adresses + et de ports à écouter. Le serveur répondra + aux requêtes reçues sur n'importe laquelle des + combinaisons adresse-port ainsi spécifiée.</p> + + <p>Par exemple, pour autoriser le serveur à accepter des + connexions sur les ports 80 et 8000, écrire :</p> + + <blockquote> +<pre> +<code>Listen 80 +Listen 8000 +</code> +</pre> + </blockquote> + + <p>Pour autoriser un serveur à accepter des connexions + sur deux "sockets" qualifiés, écrire :</p> +<pre> +Listen 192.170.2.1:80 +Listen 192.170.2.5:8000 +</pre> + + <p><strong>Voir aussi:</strong> <a + href="../dns-caveats.html">Apache et DNS</a><br /> + <strong>Voir aussi:</strong> <a href="../bind.html">Configurer + les ports et adresses utilisée par Apache</a><br /> + <strong>Voir aussi :</strong> <a + href="http://www.apache.org/info/known_bugs.html#listenbug">Bogues + connus</a></p> + <hr /> + + <h2><a id="listenbacklog" name="listenbacklog">Directive + ListenBacklog</a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ListenBacklog <em>backlog</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>ListenBacklog 511</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + <tt>ListenBacklog</tt> n'est disponible qu'à partir de + la version 1.2.0 d'Apache. + + <p>La longueur maximale de la file d'attente des connexions en + attente. En général, aucun ajustement n'est + nécessaire, cependant, il est souhaitable sur certains + systèmes d'augmenter cette longueur de file pour + répondre à des attaques TCP SYN. Voir les + paramètres backlog dans l'appel système + <code>listen(2)</code>.</p> + + <p>Cette directive est limitée à un petit nombre + par le système d'exploitation. Elle peut varier d'un + système à un autre. Il faut également + noter que pour la plupart des systèmes, la valeur + réellement utilisée n'est pas celle + spécifiée par la directive, mais un nombre + basé sur cette valeur (généralement plus + grande).</p> + <hr /> + + <h2><a id="location" name="location">Directive + <Location></a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> <Location <em>URL</em>> ... + </Location><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôtes virtuels<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + <tt>Location</tt> est disponible à partir des versions + 1.1 d'Apache. + + <p>La directive <tt><Location></tt> permet d'instaurer un + contrôle d'accès sur une base URL. Elle est + comparable à la directive <a + href="#directory"><Directory></a>, et doit s'apparier + à une directive <tt></Location></tt>. Les + directives s'appliquant à l'URL précisée + seront à inclure entre ces deux balises. Les sections + <tt><Location></tt> sont traitées dans l'ordre + où elles apparaissent dans le fichier de configuration, + une fois les sections <tt><Directory></tt> et les + fichiers <code>.htaccess</code> traités.</p> + + <p>Il faut noter que les URL n'ont pas du tout à suivre + la même organisation que le système de fichiers, + et il faut souligner que la directive <Location> + opère de manière totalement indépendante + du système de fichiers.</p> + + <p>Le <em>préfixe d'URL</em> devra, sauf pour des + requêtes à un proxy, être de la forme + <code>/chemin/</code>, et ne devra pas inclure de mention + <code>http://nomserveur</code>. Elle ne protège pas + nécessairement un répertoire (cela peut + être un fichier individuel, ou un ensemble de fichiers), + et peut inclure des métacaractères. Dans un motif + (avec des métacaractères), '?' remplace un + caractère quelconque, et '*' remplace toute chaîne + quelconque de 0 ou plus caractères. POur les + requêtes à un proxy, l'URL doitt être de la + forme <code>scheme://nomserveur/serveur</code>, et vous devez + inclure le préfixe.</p> + + <p><strong>Apache 1.2 et plus :</strong> Des expression + régulières peuvent être utilisées, + à condition de les faire précéder du + caractère <code>~</code>. Par exemple :</p> + + <blockquote> + <code><Location ~ "/(extra|special)/data"></code> + </blockquote> + + <p>correspondrait à des URL contenant la + sous-chaîne "/extra/data" ou "/special/data". Cependant, + sous Apache 1.3, l'utilisation de la directive <a + href="#locationmatch"><LocationMatch></a> est + conseillée.</p> + + <p>La fonctionnalité <tt>Location</tt> est + particulièrement pratique lorsque combinée + à la directive <a + href="mod_mime.html#sethandler">SetHandler</a>. Par exemple, + pour permettre des requêtes sur les rapports + d'état, mais ne les autoriser que pour des agents + requérant à partir du domaine foo.com, vous + pourriez écrire :</p> + + <blockquote> +<pre> +<code><Location /status> +SetHandler server-status +order deny,allow +deny from all +allow from .foo.com +</Location> +</code> +</pre> + </blockquote> + + <p><strong>Note sur / (barre oblique) pour les version + supérieures à 1.3</strong>: La caractère + barre oblique à une signification particulière en + fonction de l'endroit où il se situe. Des personnes sont + habitués au comportement dans certains systèmes + de fichiers où de multiples caractères obliques + sont remplacés par un caractère unique (par + exemple <code>/home///foo</code> est identique à + <code>/home/foo</code>). Dans le monde des URL ceci n'est pas + obligatoirement vrai. La directive + <code><LocationMatch></code> et la version avec + expression régulière de + <code><Location></code> demande de spécifier + plusieurs caractères obliques si ceci est votre + intention. Par exemple, <code><LocationMatch + ^/abc></code> fonctionnera avec l'URL <code>/abc</code> mais + pas avec l'URL <code>//abc</code>. La directive (sans + expression régulière) + <code><Location></code> se comporte de manière + similaire quand elle est employée pour des + requêtes proxy. Mais si la directive (sans expression + régulière) <code><Location></code> est + utilisée pour des requêtes sans proxy, il + associera implicitement plusieurs obliques à un seul. + Par exemple, si vous spécifiez <code><Location + /abc/def></code> et que la requête est + <code>/abc//def</code> celle ci correspondra.</p> + + <p><strong>Voir aussi</strong>: <a + href="../sections.html">Comment fonctionnent les sections + concernant les répertoires, chemins et fichiers</a> pour + une explication plus précise concernant la + manière dont ces sections sont combinées + lorsqu'une requête est traitée.</p> + <hr /> + + <h2><a id="locationmatch" name="locationmatch">Directive + <LocationMatch></a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> <LocationMatch <em>regex</em>> ... + </LocationMatch><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> Location + est disponible à partir de la version 1.3 d'Apache. + + <p>La directive <tt><LocationMatch></tt> permet + l'établissement d'un contrôle d'accès sur + une base URL, d'une façon identique à la + directive <a href="#location"><Location></a>. Cependant, + elle n'accepte qu'une expression régulière comme + argument. Par exemple :</p> + + <blockquote> + <code><LocationMatch "/(extra|special)/data"></code> + </blockquote> + représente des URL contenant l'une des + sous-chaînes "/extra/data" ou "/special/data". <br /> + <br /> + <strong>Voir aussi</strong> : <a + href="../sections.html">Comment fonctionnent les sections + concernant les répertoires, chemins et fichiers</a> pour + une explication plus précise concernant la + manière dont ces sections sont combinées + lorsqu'une requête est traitée. + <hr /> + + <h2><a id="lockfile" name="lockfile">Directive + LockFile</a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> LockFile <em>nomfichier</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> <code>LockFile + logs/accept.lock</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>LockFile</tt> indique le chemin + d'accès du fichier de verrouillage utilisé + lorsqu'Apache est compilé en mode + <code>USE_FCNTL_SERIALIZED_ACCEPT</code> ou + <code>USE_FLOCK_SERIALIZED_ACCEPT</code>. Ce paramètre + sera laissé généralement dans son + état par défaut. La raison principale qui + conduirait à modifier ce paramètre serait le fait + que le répertoire des traces (<code>logs</code>) soit + monté sous NFS, le fichier de verrouillage devant de + préférence être situé sur un disque + local à la machine serveur pour autant que possible. Le + PID du processus serveur principal est automatiquement + rajouté au nom de fichier.</p> + + <p><strong>SECURITE :</strong> il vaut mieux éviter de + metttre ce fichier dans un répertoire inscriptible par + tout le monde tel que <code>/var/tmp</code> cas quelqu'un + pourrait créer une attaque par déni de service et + empécher le serveur de redémarrer en + créant un fichier de verrouillage de même nom que + celui que veut créer le serveur.</p> + <hr /> + + <h2><a id="loglevel" name="loglevel">Directive + LogLevel</a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> LogLevel <em>niveau</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> <code>LogLevel + error</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôtes virtuels<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> LogLevel + est disponible à partir de la version 1.3. + + <p>LogLevel ajuste le niveau de verbosité des messages + inscrits dans les traces d'erreur (voir la directive <a + href="#errorlog">ErrorLog</a>). Les niveaux possibles sont par + ordre de gravité décroissante :</p> + + <table> + <tr> + <th align="LEFT"><strong>Niveau</strong> </th> + + <th align="LEFT"><strong>Description</strong> </th> + </tr> + + <tr> + <th> + </th> + + <th align="LEFT"><strong>Exemple</strong> </th> + </tr> + + <tr> + <td><code>emerg</code> </td> + + <td>Urgences - le système est inutilisable.</td> + </tr> + + <tr> + <td> + </td> + + <td>"Child cannot open lock file. Exiting"</td> + </tr> + + <tr> + <td><code>alert</code> </td> + + <td>Une action doit être prise + immédiatement.</td> + </tr> + + <tr> + <td> + </td> + + <td>"getpwuid: couldn't determine user name from uid"</td> + </tr> + + <tr> + <td><code>crit</code> </td> + + <td>Conditions critiques.</td> + </tr> + + <tr> + <td> + </td> + + <td>"socket: Failed to get a socket, exiting child"</td> + </tr> + + <tr> + <td><code>error</code> </td> + + <td>Cas d'erreur.</td> + </tr> + + <tr> + <td> + </td> + + <td>"Premature end of script headers"</td> + </tr> + + <tr> + <td><code>warn</code> </td> + + <td>Avertissements.</td> + </tr> + + <tr> + <td> + </td> + + <td>"child process 1234 did not exit, sending another + SIGHUP"</td> + </tr> + + <tr> + <td><code>notice</code> </td> + + <td>Normal mais condition significative.</td> + </tr> + + <tr> + <td> + </td> + + <td>"httpd: caught SIGBUS, attempting to dump core in + ..."</td> + </tr> + + <tr> + <td><code>info</code> </td> + + <td>Pour information.</td> + </tr> + + <tr> + <td> + </td> + + <td>"Server seems busy, (you may need to increase + StartServers, or Min/MaxSpareServers)..."</td> + </tr> + + <tr> + <td><code>debug</code> </td> + + <td>Messages de déboguage</td> + </tr> + + <tr> + <td> + </td> + + <td>"Opening config file ..."</td> + </tr> + </table> + + <p>Quand un niveau est spécifié, les messages des + niveaux de plus haute gravité seront également + rapportés. Par exemple, quand la directive + <code>LogLevel info</code> est définie, les messages de + niveau <code>notice</code> et <code>warn</code> seront aussi + notifiés.</p> + + <p>L'utilisation d'un niveau de gravité d'au moins + <code>crit</code> est recommandé.</p> + <hr /> + + <h2><a id="maxclients" name="maxclients">Directive + MaxClients</a></h2> + <!--%plaintext <?INDEX {\tt MaxClients} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> MaxClients <em>nombre</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>MaxClients 256</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>MaxClients</tt> indique le nombre limite de + requêtes simultanées pouvant être + acceptées par le serveur ; il représente le + nombre maximum de processus serveur fils qui peuvent tourner + à un instant donné. Pour configurer plus de 256 + clients, vous devez modifier la constante HARD_SERVER_LIMIT du + fichier source d'Apache httpd.h et recompiler Apache.</p> + + <p>Les tentatives de connexions au delà de MaxClients + sont normalement mises en attente, jusqu'à une limite + fixée par la directive <a + href="#listenbacklog">ListenBacklog</a>. Une fois qu'un + processus fils est libre à la fin d'une requête + différente, la connexion en attente est + traitée.</p> + <hr /> + + <h2><a id="maxkeepaliverequests" + name="maxkeepaliverequests">Directive + MaxKeepAliveRequests</a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> MaxKeepAliveRequests <em>nombre</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>MaxKeepAliveRequests 100</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + Uniquement à partir de la version 1.2 d'Apache. + + <p>La directive <tt>MaxKeepAliveRequests</tt> limite le nombre + de requêtes permises pour une connexion unique lorsque la + directive <a href="#keepalive">KeepAlive</a> est + activée. Si <em>nombre</em> vaut "<code>0</code>", + chaque connexion peut admettre un nombre illimité de + requêtes. Nous recommendons que ce paramètre soit + réglé sur une valeur relativement haute pour + obtenir des performances optimales du serveur. Dans la version + 1.1 d'Apache, ceci est contrôlé par la directive + Keepalive</p> + <hr /> + + <h2><a id="maxrequestsperchild" + name="maxrequestsperchild">Directive + MaxRequestsPerChild</a></h2> + <!--%plaintext <?INDEX {\tt MaxRequestsPerChild} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> MaxRequestsPerChild <em>nombre</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>MaxRequestsPerChild 0</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>MaxRequestsPerChild</tt> indique le nombre + limite de requêtes qu'un processus serveur fils peut + traîter. Après <tt>MaxRequestsPerChild</tt> + requêtes, ce processus fils meurt. Si ce paramètre + est fixé à 0, alors les processus fils ne meurent + jamais.</p> + + <p>Le fait de mettre <tt>MaxRequestsPerChild</tt> à une + valeur non nulle a deux conséquences + bénéfiques :</p> + + <ul> + <li>cela limite le volume de mémoire qu'un processus + peut consommer (accidentellement) et évite une + saturation mémoire ;</li> + + <li>en donnant à un processus un temps de vie fini, le + nombre total de processus impliqués dans le serveur + décroit lorsque la charge du serveur retombe.</li> + </ul> + + <p>Cependant sur les systèmes Win32, il est + recommandé de mettre cette valeur à 0. Si celle + ci est à une valeur non nulle, quand le nombre de + requêtes est atteint, le processus fils quitte, et est + relancé en relisant les fichiers de configuration. Ceci + peut conduire à un comportement imprévisible si + vous avez modifié un fichier de configuration, mais ne + souhaitez pas que ces changements soient pris en compte. Voir + également <a + href="#threadsperchild">ThreadsPerChild</a>.</p> + + <p><strong>NOTE:</strong> pour les requêtes + <em>KeepAlive</em> requests, seule la première + requête est comptée. En réalité, il + change le comportement afin de limiter le nombre de + <em>connexions</em> par fils.</p> + <hr /> + + <h2><a id="maxspareservers" name="maxspareservers">Directive + MaxSpareServers</a></h2> + <!--%plaintext <?INDEX {\tt MaxSpareServers} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> MaxSpareServers <em>nombre</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>MaxSpareServers 10</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>MaxSpareServers</tt> indique le nombre + maximal de processus fils en <em>attente</em>. Un processus en + attente est un processus qui existe, mais qui ne traite pas de + requête. S'il existe plus de <tt>MaxSpareServers</tt> de + ces processus, alors le père viendra tuer les processus + en supplémentaires.</p> + + <p>L'activation de cette fonctionnalité ne devrait + être nécessaire que sur les site vraiment + très chargés. Régler ce paramètre + sur une grande valeur est de toutes façon toujours une + mauvaise idée.</p> + + <p>Cette directive n'a aucun effet quand elle est + employée sur les plates-formes WIndows.</p> + + <p>Voir aussi <a href="#minspareservers">MinSpareServers</a> et + <a href="#startservers">StartServers</a>.</p> + <hr /> + + <h2><a id="minspareservers" name="minspareservers">Directive + MinSpareServers</a></h2> + <!--%plaintext <?INDEX {\tt MinSpareServers} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> MinSpareServers <em>nombre</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>MinSpareServers 5</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>MinSpareServers</tt> indique le nombre + minimum de processus fils en <em>attente</em> qu'un serveur + pourra conserver. S'il existe moins de <tt>MinSpareServers</tt> + processus serveurs fils en attente, le processus père + recréera des processus fils au rythme de 1 par + seconde.</p> + + <p>L'activation de cette fonctionnalité ne devrait + être nécessaire que sur des sites très + chargés. Régler ce paramètre sur une + grande valeur est de toutes façons toujours une mauvaise + idée.</p> + + <p>Cette directive n'a aucun effet quand elle est + employée sur les plates-formes WIndows.</p> + + <p>Voir aussi <a href="#maxspareservers">MaxSpareServers</a> et + <a href="#startservers">StartServers</a>.</p> + <hr /> + + <h2><a id="namevirtualhost" name="namevirtualhost">Directive + NameVirtualHost</a></h2> + <!--%plaintext <?INDEX {\tt NameVirtualHost} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> NameVirtualHost + <em>addr</em>[:<em>port</em>]<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + <tt>NameVirtualHost</tt> n'est disponible qu'à partir de + la version 1.3 d'Apache. + + <p>La directive <tt>NameVirtualHost</tt> est nécessaire + si vous souhaitez configurer <a href="../vhosts/index.html">des + hôtes virtuels nommés</a>.</p> + + <p>Bien que <em>addr</em> puisse être exprimée + comme un nom d'hôte, il est recommandé d'utiliser + une adresse IP, exemple :</p> + + <blockquote> + <code>NameVirtualHost 111.22.33.44</code> + </blockquote> + + <p>Avec cette directive <tt>NameVirtualHost</tt>, l'adresse + nommée par le nom de votre hôte virtuel se + résout. Si vous exploitez plusieurs hôtes + nommés sur des adresses multiples, répétez + cette directive autant de fois que nécessaire (pour + chaque adresse).</p> + + <p>Note: le "serveur principal" et tous les serveurs "par + défaut" ne seront <strong>jamais</strong> servis pour + une requête vers une adresse IP NameVirtualHost (à + moins que pour une raison donnée vous définissiez + NameVirtualHost mais qu'aucun VirtualHosts ne soit + défini pour cette adresse).</p> + + <p>En option, vous pouvez préciser un numéro de + port sur lequel l'hôte virtuel nommé sera atteint, + par exemple :</p> + + <blockquote> + <code>NameVirtualHost 111.22.33.44:8080</code> + </blockquote> + A partir de la version 1.3.13, vous pouvez donner comme adresse + <code>*</code> Ceci crée un NameVirtualHost qui + correspond à toutes les connexions venant de toutes les + adresses IP qui ne sont pas configurés avec une autre + directive NameVirtualHost ou un section <a + href="#virtualhost"><VirtualHost></a>. Cette option est + pratique si vous n'utilisez que des hôtes virtuels + nommés et que vous ne souhaitez pas coder en dur + l'adresse IP de votre machine dans le fichier de + configuration.<br /> + <br /> + <strong>Voir aussi :</strong> <a href="../vhosts/">Hôtes + virtuels sur Apache</a> + <hr /> + + <h2><a id="options" name="options">Directive Options</a></h2> + <!--%plaintext <?INDEX {\tt Options} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> Options <em>[+|-]option [+|-]option + ...</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel, répertoire, .htaccess<br /> + <strong>Surcharge:</strong> Options<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>Options</tt> contrôle quelles + fonctions du serveur sont disponibles dans un répertoire + particulier.</p> + + <p><em>option</em> peut valoir <code>None</code>, auquel cas + aucune fonction supplémentaire n'est disponible, ou une + ou plus des possibilités suivantes :</p> + + <dl> + <dt>All</dt> + + <dd>toutes options sauf MultiViews.</dd> + + <dt>ExecCGI</dt> + + <dd><!--%plaintext <?INDEX {\tt ExecCGI} option> --> + L'exécution des scripts CGI est autorisée.</dd> + + <dt>FollowSymLinks</dt> + + <dd> + <!--%plaintext <?INDEX {\tt FollowSymLinks} option> --> + Le serveur est autorisé à suivre les liens + symboliques dans ce répertoire. + + <p><strong>Note</strong>: même si le serveur suit le + lien symbolique, il <b>ne</b> doit <b>pas</b> changer le + chemin d'accès afin de ne pas entrer en + contradiction avec les sections + <tt><Directory></tt>.</p> + </dd> + + <dt>Includes</dt> + + <dd><!--%plaintext <?INDEX {\tt Includes} option> --> + Les inclusions par Server-Side-Include sont permises.</dd> + + <dt>IncludesNOEXEC</dt> + + <dd> + <!--%plaintext <?INDEX {\tt IncludesNOEXEC} option> --> + Les SSI sont autorisés, mais pas la commande #exec ni + <code>#include</code> des scripts CGI.</dd> + + <dt>Indexes</dt> + + <dd><!--%plaintext <?INDEX {\tt Indexes} option> --> + Si une URL requise pointe sur un répertoire, et aucun + fichier défini par <tt>DirectoryIndex</tt> (ex. + index.html) n'existe dans ce répertoire, alors le + serveur retourne une liste formatée du contenu du + répertoire.</dd> + + <dt>MultiViews</dt> + + <dd><!--%plaintext <?INDEX {\tt MultiViews} option> --> + <a href="../content-negotiation.html">Un contenu + négocié</a> en <code>MultiViews</code> est + permis.</dd> + + <dt>SymLinksIfOwnerMatch</dt> + + <dd> + <!--%plaintext <?INDEX {\tt SymLinksIfOwnerMatch} option> --> + Le serveur ne suivra les liens symboliques uniquement si le + fichier visé ou le répertoire visé + appartiennent au même utilisateur que le lien + lui-même.</dd> + </dl> + + <p>Normalement, si plusieurs options <code>Options</code> + peuvent être appliquées à un + répertoire, alors la plus restrictive est + appliquée ; les options ne sont pas combinées. + Cependant, si <i>all</i> les options dans la directive + <code>Options</code> sontprécédées d'un + symbole + ou -, alors les options sont alors combinées + entre elles. Toute option précédée d'un + + est ajoutée aux options en cours, toute option + précédée d'un - est + désactivée.</p> + + <p>Par exemple, sans symboles + ni - :</p> + + <blockquote> +<pre> +<code><Directory /web/docs> +Options Indexes FollowSymLinks +</Directory> +<Directory /web/docs/spec> +Options Includes +</Directory> +</code> +</pre> + </blockquote> + + <p>seul <code>Includes</code> sera activé pour le + répertoire <code>/web/docs/spec</code>. Cependant, si la + seconde directive d'<code>Options</code> utilise les symboles + + et - :</p> + + <blockquote> +<pre> +<code><Directory /web/docs> +Options Indexes FollowSymLinks +</Directory> +<Directory /web/docs/spec> +Options +Includes -Indexes +</Directory> +</code> +</pre> + </blockquote> + + <p>alors les options <code>FollowSymLinks</code> et + <code>Includes</code> sont validées pour le + répertoire <code>/web/docs/spec</code>.</p> + <hr /> + + <h2><a id="pidfile" name="pidfile">Directive PidFile</a></h2> + <!--%plaintext <?INDEX {\tt PidFile} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> PidFile <em>filename</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> <code>PidFile + logs/httpd.pid</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>PidFile</tt> définit le fichier dans + lequel le serveur enregistre l'identificateur de processus du + démon. Si le nom de fichier ne commence pas par un slash + (/) alors le fichier est défini relativement au <a + href="#serverroot">ServerRoot</a>. Le fichier <tt>PidFile</tt> + n'est utilisé que dans le mode <a + href="#servertype">standalone</a>.</p> + + <p>Il est souvent utile de pouvoir envoyer un signal au + serveur, pour qu'il referme et réouvre ses fichiers <a + href="#errorlog">ErrorLog</a> et <tt>TransferLog</tt>, et + relise ses fichiers de configuration. Ceci peut être fait + en envoyant un signal SIGHUP (kill -1) au processus + identifié par l'identificateur de processus + marqué dans <tt>PidFile</tt>.</p> + + <p>Le fichier <tt>PidFile</tt> est concerné par les + mêmes problèmes d'emplacement et de <a + href="../misc/security_tips.html">securité</a> que les + fichiers de trace.</p> + <hr /> + + <h2><a id="port" name="port">Directive Port</a></h2> + <!--%plaintext <?INDEX {\tt Port} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> Port <em>numéro</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> <code>Port + 80</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p><em>numéro</em> est un nombre compris entre 0 et + 65535; certains numéros de ports (surtout en dessous de + 1024) sont réservés pour des protocoles + spécifiques. Une liste des ports + prédéfinis est consultable dans la RFC 1340 + "Assigned Numbers" <code>/etc/services</code>; le port standard + assigné au protocole http est le port 80.</p> + + <p>La directive <tt>Port</tt> a deux comportements, le premier + est nécessaire pour assurer la compatibilité NCSA + (et qui peut préter à confusion dans le contexte + d'Apache).</p> + + <ul> + <li>En absence de toute directive <a + href="#listen">Listen</a> ou <a + href="#bindaddress">BindAddress</a> spécifiant un + numéro de port, la directive <tt>Port</tt> + définit le port réseau que le serveur + écoute. S'il existe une directive <tt>Listen</tt> ou + <tt>BindAddress</tt> spécifiant un + <code>:numéro</code> alors la directive Port n'a aucun + effet quant au socket que le serveur écoute.</li> + + <li>La directive Port définit la variable + d'environnement <code>SERVER_PORT</code> (pour les <a + href="mod_cgi.html">CGI</a> et les <a + href="mod_include.html">SSI</a>), laquelle est + utilisée lorsque le serveur génère une + URL qui point sur lui-même (par exemple lorsqu'il + indique une indirection externe vers lui-même).</li> + </ul> + + <p>Dans aucun cas une définition du <tt>Port</tt> ne + définit à quel port un <a + href="#virtualhost">VirtualHost</a> répond, la directive + <tt>VirtualHost</tt> elle-même se chargeant de cette + définition.</p> + + <p>Le comportement premier de la directive <tt>Port</tt> doit + être considéré comme similaire à + celui de la directive <a href="#servername">ServerName</a>. + <tt>ServerName</tt> et <tt>Port</tt> spécifient + conjointement ce que vous considérez être + l'adresse <em>canonique</em> du serveur.</p> + + <p>Le Port 80 est l'un des ports prédéfinis + d'Unix. Tous les ports numérotés en dessous de + 1024 sont réservés à un usage + système, c-à-d. que des utilisateurs non + privilégiés (non-root) ne peuvent les utiliser ; + ces derniers peuvent par contre utiliser des ports de plus haut + rang. Pour utiliser le port 80, le serveur doit être + exécuté sous <code>root</code>. Après + avoir lié le port (bind) et avant d'accepter des + requêtes, Apache changera son utilisateur associé + tel que défini par la directive <a + href="#user">User</a>.</p> + + <p>Si vous ne pouvez utiliser le port 80, choisissez tout autre + port libre. Les utilisateurs non-root devront choisir un + numéro de port supérieur à 1023, 8000 par + exemple.</p> + + <p><strong>Sécurité :</strong> si vous + démarrez le serveur sous <code>root</code>, assurez vous + que la directive <a href="#user">User</a> ne mentionne pas + <code>root</code>. Si vous traitez des requêtes en + disposant toujours de super privilèges, vous ouvrez + votre système à des attaques majeures.</p> + <hr /> + + <h2><a id="require" name="require">Directive require</a></h2> + <!--%plaintext <?INDEX {\tt require} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> require <em>nomEntite Entite + Entite...</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> répertoire, + .htaccess<br /> + <strong>Surcharge:</strong> AuthConfig<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>Cette directive choisi quels utilisateurs autorisés + peuvent accéder à un répertoire. Les + syntaxes valides sont :</p> + + <ul> + <li> + require user <em>utilisateur utilisateur ...</em> + + <p>Seuls les utilisateurs nommés peuvent + accéder au répertoire.</p> + </li> + + <li> + require group <em>nomGroupe nomGroupe ...</em> + + <p>Seuls les utilisateurs des groupes cités peuvent + accéder au répertoire.</p> + </li> + + <li> + require valid-user + + <p>Tout utilisateur reconnu peut accéder au + répertoire (par opposition aux non + utilisateurs).</p> + </li> + </ul> + + <p>Si <code>require</code> apparaît dans une section <a + href="#limit"><Limit></a>, alors les restrictions ne sont + appliquées qu'aux méthodes http + mentionnées. Autrement, toutes les méthodes http + sont restreintes. Exemple :</p> + + <blockquote> +<pre> +<code>AuthType Basic +AuthName unDomaine +AuthUserFile /web/users +AuthGroupFile /web/groups +<Limit GET POST> +require group admin +</Limit> +</code> +</pre> + </blockquote> + + <p>Pour fonctionner correctement, la directive Require doit + être accompagné de directives <a + href="#authname">AuthName</a> et <a + href="#authtype">AuthType</a>, et de directives de type <a + href="mod_auth.html#authuserfile">AuthUserFile</a> et <a + href="mod_auth.html#authgroupfile">AuthGroupFile</a> (servant + à définir les utilisateurs et les groupes).</p> + <hr /> + + <h2><a id="resourceconfig" name="resourceconfig">Directive + ResourceConfig</a></h2> + <!--%plaintext <?INDEX {\tt ResourceConfig} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ResourceConfig <em>nomfichier</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>ResourceConfig conf/srm.conf</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>Le serveur lit dans ce fichier des directives + supplémentaires, après avoir lu le fichier + <code>httpd.conf</code>. <em>nomfichier</em> est + considéré relativement à <a + href="#serverroot">ServerRoot</a>. Cette fonctionnalité + peut être désactivée par l'écriture + :</p> + + <blockquote> + <code>ResourceConfig /dev/null</code> + </blockquote> + ou sur les serveurs Win32 + + <blockquote> + <code>ResourceConfig nul</code> + </blockquote> + + <p>Historiquement, ce fichier contenait essentiellement les + directives autres que celles servant à la configuration + du serveur ou les sections <a + href="#directory"><Directory></a> ; en fait, il peut + contenir maintenant toute directive admise dans le contexte + <em>configuration serveur</em>.</p> + + <p>A partir de la version 1.3.13, si la directive + <code>ResourceConfig</code> pointe sur un répertoire + plutot qu'un fichier, Apache lira tous les fichiers de ce + répertoire ou de ses sous-répertoires et les + traitera comme fichiers de configuration.</p> + + <p>Voir aussi <a href="#accessconfig">AccessConfig</a>.</p> + <hr /> + + <h2><a id="rlimit" name="rlimit">Directive RLimitCPU</a> <a + id="rlimitcpu" name="rlimitcpu"></a></h2> + <!--%plaintext <?INDEX {\tt RLimitCPU} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> RLimitCPU <em># ou 'max'</em> <em>[# ou + 'max']</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> <em>Non + précisé; utilise le défaut du + système d'exploitation</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + RLimitCPU n'est disponible qu'à partir de la version 1.2 + d'Apache + + <p>Accepte 1 ou 2 parametères. Le premier + paramètre indique la limite logicielle pour tous les + processus et le second paramètre la limite + supérieure en termes de ressources. Chacun des + paramètres peut être exprimé par un nombre, + ou <em>max</em> pour indiquer au serveur que la limite est + celle imposée par le système d'exploitation. La + limite supérieure en ressource ne peut être + atteinte que si le serveur tourne sous root, ou + éventuellement pendant la phase de démarrage.</p> + + <p>Ceci est valide pour les processus lancés par les + processus fils d'Apache pour le traitement des requêtes + et non pour les processus fils d'Apache eux-mêmes. Cela + inclut les scripts CGI, les commandes exec SSI, mais pas les + processus lancés par le processu Apache père tels + que les traces.</p> + + <p>La limite de ressources CPU est exprimée en secondes + par processus.</p> + + <p>Voir aussi <a href="#rlimitmem">RLimitMEM</a> ou <a + href="#rlimitnproc">RLimitNPROC</a>.</p> + <hr /> + + <h2><a id="rlimitmem" name="rlimitmem">Directive + RLimitMEM</a></h2> + <!--%plaintext <?INDEX {\tt RLimitMEM} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> RLimitMEM <em># ou 'max'</em> <em>[# ou + 'max']</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> <em>Non + précisé ; utilise le défaut du + système d'exploitation</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + RLimitMEM is only available in Apache 1.2 and later + + <p>Accepte 1 ou 2 paramètres. Le premier + paramètre fixe la limite logicielle en ressources + mémoire pour tous les processus tandis que le second + paramètre fixe la limite absolue de ressources + mémoire. Chaque paramètre peut être un + nombre, ou <em>max</em> pour indiquer au serveur que la limite + est fixée par le système d'exploitation. La + limite supérieure en ressource ne peut être + atteinte que si le serveur tourne sous root, ou + éventuellement pendant la phase de démarrage.</p> + + <p>Ceci est valide pour les processus lancés par les + processus fils d'Apache pour le traitement des requêtes + et non pour les processus fils d'Apache eux-mêmes. Cela + inclut les scripts CGI, les commandes exec SSI, mais pas les + processus lancés par le processu Apache père tels + que les traces.</p> + + <p>Les ressources mémoire sont exprimées en + octets par processus.</p> + + <p>Voir aussi <a href="#rlimitcpu">RLimitCPU</a> ou <a + href="#rlimitnproc">RLimitNPROC</a>.</p> + <hr /> + + <h2><a id="rlimitnproc" name="rlimitnproc">Directive + RLimitNPROC</a></h2> + <!--%plaintext <?INDEX {\tt RLimitNPROC} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> RLimitNPROC <em># ou 'max'</em> <em>[# ou + 'max']</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> <em>Unset; uses + operating system defaults</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + RLimitNPROC n'est disponible qu'à partir de la version + 1.2 d'Apache + + <p>Accepte 1 ou 2 paramètres. Le premier + paramètre fixe la limite logicielle en ressources pour + tous les processus tandis que le second paramètre fixe + la limite absolue de ressources mémoire. Chaque + paramètre peut être un nombre, ou <em>max</em> + pour indiquer au serveur que la limite est fixée par le + système d'exploitation. La limite supérieure en + ressource ne peut être atteinte que si le serveur tourne + sous root, ou éventuellement pendant la phase de + démarrage.</p> + + <p>Ceci est valide pour les processus lancés par les + processus fils d'Apache pour le traitement des requêtes + et non pour les processus fils d'Apache eux-mêmes. Cela + inclut les scripts CGI, les commandes exec SSI, mais pas les + processus lancés par le processu Apache père tels + que les traces.</p> + + <p>Cette limite contrôle le nombre de processus maximum + par utilisateur.</p> + + <p><strong>Note :</strong> Si les processus CGI <b>ne</b> + tournent <b>pas</b> sous un autre utilisateur que l'utilisateur + du serveur, cette directive limitera aussi le nombre de + processus que le serveur lui-même peut créer. + Cette situation sera indiquée de façon + évidente par des messages d'erreur <b><em>cannot + fork</em></b> dans le fichier error_log.</p> + + <p>Voir aussi <a href="#rlimitmem">RLimitMEM</a> ou <a + href="#rlimitcpu">RLimitCPU</a>.</p> + <hr /> + + <h2><a id="satisfy" name="satisfy">Directive Satisfy</a></h2> + <!--%plaintext <?INDEX {\tt Satisfy} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> Satisfy <em>'any' ou 'all'</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> Satisfy + all<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> répertoire, + .htaccess<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + <tt>Satisfy</tt> n'est disponible qu'à partir de la + version 1.2 d'Apache + + <p>Politique d'accès si à la fois 'allow' et + 'require' sont utilisés. Le paramètre peut valoir + soit <em>'all'</em> soit <em>'any'</em>. Cette directive n'est + utile que si l'accès à une zone + particulière est à la fois restreinte par un + username/password <em>et</em> et par l'adresse d'hôte + client. Dans ce cas le comportement par défaut ("all") + impose au client de passer la restriction d'adresse <em>et</em> + d'entrer un identificateur d'utilisateur et un mot de passe + valides. Avec l'option "any", le client sera servi si son + adresse d'hôte est conforme <em>ou</em> s'il rentre des + paramètres d'identification corrects. Ceci peut + être utilisé pour restreindre un zone par un mot + de passe, tout en laissant quelques client bien + identifiés entrer dans le domaine sans avoir à se + soumettre à la procédure d'identification.</p> + + <p>Voir aussi <a href="#require">Require</a> et <a + href="mod_access.html#allow">Allow</a>.</p> + <hr /> + + <h2><a id="scoreboardfile" name="scoreboardfile">Directive + ScoreBoardFile</a></h2> + <!--%plaintext <?INDEX {\tt ScoreBoardFile} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ScoreBoardFile <em>nomfichier</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>ScoreBoardFile logs/apache_status</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>ScoreBoardFile</tt> est nécessaire + sur certaines architectures pour créer un fichier + servant à la communication entre des processus + pères et des processus fils. La meilleure façon + de savoir si votre système nécessite un tel + fichier est d'exécuter Apache et de voir s'il + crée le fichier mentionné dans la directive. Si + votre système nécessite l'emploi de ce fichier, + alors vous devez vous assurer que celui-ci ne peut être + utilisé que par une et une seule invocation + d'Apache.</p> + + <p>Si vous devez utiliser un <tt>ScoreBoardFile</tt>, vous + pourrez optimiser votre temps d'exécution en le + plaçant sur un disque virtuel en RAM. Cependant, + rappelez-vous que les mêmes recommandations sont à + prendre en compte pour la position de ce fichier que pour la + position des fichiers de trace quant à la <a + href="../misc/security_tips.html">securité</a>.</p> + + <p><i>A partir d'Apache 1.2 :</i></p> + + <p>Les utilisateurs de Linux 1.x doivent pouvoir ajouter + <code>-DHAVE_SHMGET</code> aux <code>EXTRA_CFLAGS</code> dans + leur fichier de <code>Configuration</code>. Ceci devrait + fonctionner sur certaines installations en 1.x, mais pas + forcément sur toutes.</p> + + <p>Les utilisateurs de SVR4 devront considérer + l'opportunité d'ajouter <code>-DHAVE_SHMGET</code> aux + <code>EXTRA_CFLAGS</code> dans leur fichier de + <code>Configuration</code>. Il semble que cela fonctionne, mais + nous n'avons pu le tester pour la version 1.2. (avant la + version 1.3b4, <code>HAVE_SHMGET</code> devait suffire.)</p> + <br /> + <br /> + + + <p><strong>Voir aussi</strong> : <a + href="../stopping.html">Arrêter et redémarrer + Apache</a></p> + <hr /> + + <h2><a id="scriptinterpretersource" + name="scriptinterpretersource">ScriptInterpreterSource + directive</a></h2> + <!--%plaintext <?INDEX {\tt ScriptInterpreterSource} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ScriptInterpreterSource registry|script<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>ScriptInterpreterSource script</code> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> répertoire, + .htaccess<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau (seulement sur Windows) + + <p>Cette directive sert, à partir de la version 1.3.5 + d'Apache, à déterminer où trouver + l'interpréteur employé pour exécuter les + scripts CGI. La technique par défaut est de prendre + l'interpréteur pointé par les caractères + #! dans le script. En fixant ScriptInterpreterSource à + registry, La table de registration de Windows sera + employée pour chercher l'interpréteur, en prenant + l'extension du fichier comme clé (par exemple .pl).</p> + <hr /> + + <h2><a id="sendbuffersize" name="sendbuffersize">Directive + SendBufferSize</a></h2> + <!--%plaintext <?INDEX {\tt SendBufferSize} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> SendBufferSize <em>octets</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>Le serveur règle la taille du tampon interne de TCP + au nombre d'octets spécifié. Très utile + pour augmenter les tailles par défaut dans le cas + d'utilisation de liaisons haute vitesse (ex. des liaisons + transcontinantales rapides).</p> + <hr /> + + <h2><a id="serveradmin" name="serveradmin">Directive + ServerAdmin</a></h2> + <!--%plaintext <?INDEX {\tt ServerAdmin} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ServerAdmin <em>adresseEMail</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>ServerAdmin</tt> définit l'adresse + e-mail que le serveur inclut dans tout message d'erreur + retourné au client.</p> + + <p>Il peut être utile de dédier une adresse + réservée à cet usage, par exemple :</p> + + <blockquote> + <code>ServerAdmin www-admin@foo.bar.com</code> + </blockquote> + + <p>car les utilisateur ne rappellent pas toujours dans leur + message ce à propos de quoi ils interviennent!</p> + <hr /> + + <h2><a id="serveralias" name="serveralias">Directive + ServerAlias</a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ServerAlias <em>hôte1 hôte2 + ...</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> hôte + virtuel<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + <tt>ServerAlias</tt> est disponible à partir de la + version 1.1 d'Apache + + <p>La directive <tt>ServerAlias</tt> défini un nom + secondaire pour un hôte, utilisable dans le contexte d'<a + href="../vhosts/name-based.html">hôte virtuels + nommés</a>.</p> + + <p><strong>Voir aussi :</strong> <a + href="../vhosts/index.html">Hôtes virtuels sur + Apache</a></p> + <hr /> + + <h2><a id="servername" name="servername">Directive + ServerName</a></h2> + <!--%plaintext <?INDEX {\tt ServerName} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ServerName <em>nom de domaine entièrement + qualifié</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>ServerName</tt> définit le nom + d'hôte du serveur ; celui-ci n'est utilisé que + pour créer des URL de redirection. S'il n'est pas + défini, alors le serveur tentera de le résoudre + à partir de sa propre adresse IP ; cependant, cette + résolution n'est pas d'une fiabilité absolue, ou + peut résulter en un nom autre que le nom + "souhaité". Par exemple :</p> + + <blockquote> + <code>ServerName www.wibble.com</code> + </blockquote> + + <p>peut être défini lorsque le nom canonique + (principal) de la machine actuelle est + <code>monster.wibble.com</code>.</p> + + <p>Si vous utilisez des <a + href="../vhosts/name-based.html">hôtes virtuels + nommés</a>, la directive <code>ServerName</code> + à l'intérieur d'une section <a + href="#virtualhost"><code><VirtualHost></code></a> impose + que quel nom d'hôte doit apparaître dans + l'en-tête <code>Host:</code> d'une requête pour + être associé à cet hôte virtuel.</p> + + <p><strong>Voir aussi</strong> : <a + href="../dns-caveats.html">Apache et DNS</a> <a + href="../vhosts/">documentation sur les hôtes virtuels + Apache</a><br /> + <a href="#usecanonicalname">UseCanonicalName</a><br /> + <a href="#namevirtualhost">NameVirtualHost</a><br /> + <a href="#serveralias">ServerAlias</a><br /> + </p> + <hr /> + + <h2><a id="serverpath" name="serverpath">Directive + ServerPath</a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ServerPath <em>chemin</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> hôte + virtuel<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + <tt>ServerPath</tt> est disponible à partir de la + version 1.1 d'Apache. + + <p>La directive <tt>ServerPath</tt> définit le chemin + d'accès servant de base pour les URL ciblant un <a + href="../vhosts/index.html">hôte virtuel + nommé</a>.</p> + + <p><strong>Voir aussi :</strong> <a + href="../vhosts/index.html">Hôtes virtuels sur + Apache</a></p> + <hr /> + + <h2><a id="serverroot" name="serverroot">Directive + ServerRoot</a></h2> + <!--%plaintext <?INDEX {\tt ServerRoot} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ServerRoot <em>nomrépertoire</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>ServerRoot /usr/local/apache</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>ServerRoot</tt> définit le + répertoire dans lequel se situe le serveur. Typiquement, + ce répertoire contiendra les sous-répertoires + <code>conf/</code> et <code>logs/</code>. Les chemins + d'accès relatifs pour d'autres fichiers de configuration + seront considérés relativement à ce + répertoire.<br /> + Voir aussi <a href="../invoking.html">les <code>-d</code> + options de httpd</a>.</p> + + <p>Voir aussi <a + href="../misc/security_tips.html#serverroot">les trucs de + sécurité</a> pour plus d'informations sur comment + correctment définir les droits d'accès à + ServerRoot.</p> + <hr /> + + <h2><a id="serversignature" name="serversignature">Directive + ServerSignature</a></h2> + <!--%plaintext <?INDEX {\tt ServerSignature} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ServerSignature On|Off|EMail<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>ServerSignature Off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel, répertoire, .htaccess<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + ServerSignature est disponible à partir de la version + 1.3. + + <p>La directive ServerSignature permet la configuration d'une + ligne de bas de page pour les documents + générés par le serveur (messages d'erreur, + liste des répertoire ftp, affichage de mod_info, ...) + L'utilité de l'emploi d'une telle ligne apparaît + dans la cas d'enchaînement de proxy, où + l'utilisateuir souvent n'a aucune possibilité de + déterminer quel élément de la chaîne + de proxies a produit un message d'erreur.<br /> + La valeur par défaut <samp>Off</samp> supprime la ligne + d'erreur (et est compatible avec le comportement d'Apache 1.2 + et précédents). La valeur <samp>On</samp> ajoute + une ligne contenant la version du serveur, la valeur de <a + href="#servername">ServerName</a> de l'hôte virtuel et la + valeur <samp>EMail</samp> ajoute une référence + "mailto:" vers l'adresse <a href="#serveradmin">ServerAdmin</a> + du document demandé.</p> + <hr /> + + <h2><a id="servertokens" name="servertokens">Directive + ServerTokens</a></h2> + <!--%plaintext <?INDEX {\tt ServerTokens} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ServerTokens Minimal|ProductOnly|OS|Full<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>ServerTokens Full</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur <br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + ServerTokens est disponible à partir de la version 1.3 + d'Apache. Le mot clé <code>ProductOnly</code> est + disponible à pertir de la version 1.3.12 + + <p>Cette directive contrôle si le champ + <samp>Server</samp> de l'en-tête de réponse qui + est renvoyé aux clients inclut une description du type + de système de du serveur ainsi que des informations sur + les odules compilés.</p> + + <dl> + <dt><code>ServerTokens Prod[uctOnly]</code></dt> + + <dd>Le serveur renvoie par exemple : <samp>Server: + Apache</samp></dd> + + <dt><code>ServerTokens Min[imal]</code></dt> + + <dd>Le serveur renvoie par exemple : <samp>Server: + Apache/1.3.0</samp></dd> + + <dt><code>ServerTokens OS</code></dt> + + <dd>Le serveur renvoie par exemple : <samp>Server: + Apache/1.3.0 (Unix)</samp></dd> + + <dt><code>ServerTokens Full</code> (ou non + spécifié)</dt> + + <dd>Le serveur renvoie par exemple : <samp>Server: + Apache/1.3.0 (Unix) PHP/3.0 MyMod/1.2</samp></dd> + </dl> + + <p>Cette directive s'applique à la globalité du + serveur et ne paut pas être activé ou + désactivé sur la base d'hôtes virtuels.</p> + <hr /> + + <h2><a id="servertype" name="servertype">Directive + ServerType</a></h2> + <!--%plaintext <?INDEX {\tt ServerType} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ServerType <em>type</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>ServerType standalone</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>ServerType</tt> définit comment le + serveur est exécuté par le système + d'exploitation. <em>Type</em> peut prendre l'une des valeurs + suivantes :</p> + + <dl> + <dt>inetd</dt> + + <dd>Le serveur sera exécuté à partir du + processus system inetd ; la commande nécessaire au + démarrage du serveur devra être ajoutée + au fichier <code>/etc/inetd.conf</code></dd> + + <dt>standalone</dt> + + <dd>Le serveur est lancé en tant que démon ; la + commande de démarrage du serveur sera ajoutée + aux scripts de démarrage du système + d'exploitation. (<code>/etc/rc.local</code> ou + <code>/etc/rc3.d/...</code>.)</dd> + </dl> + + <p>Inetd est l'option la moins utilisée des deux. Pour + chaque connexion http demandée, une nouvelle instance du + serveur est créée ; une fois la connexion + établie, ce programme tourne. Ceci implique un + coût important en ressources pour chaque connexion, mais + certains administrateurs préfèrent parfois ce + mode pour des raisons de sécurité.</p> + + <p>Standalone est l'option la plus fréquente pour la + directive <tt>ServerType</tt> dans la mesure où ce + dernier est de loin plus performant. Le serveur n'est + démarré qu'une fois, et dessert toutes les + connexions ultérieures. Si vous utilisez Apache sur un + site très chargé, le mode standalone sera + certainement le seul choix possible.</p> + <hr /> + + <h2><a id="startservers" name="startservers">Directive + StartServers</a></h2> + <!--%plaintext <?INDEX {\tt StartServers} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> StartServers <em>nombre</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>StartServers 5</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>StartServers</tt> définit le nombre + de processus fils créés dès le + démarrage du serveur. Le nombre de ces processus + étant contrôlé dynamiquement en fonction de + la charge, il y a en général peu + d'intérêt à modifier la valeur par + défaut de ce paramètre.</p> + + <p>Lorsque le serveur est exécuté sous Microsoft + Windows, cette directive n'a aucun effet. Comme la version + Windows d'Apache est écrite en multithread, un seul + processus gère l'intégralité des + requêtes. La directive <a + href="#threadsperchild">ThreadsPerChild</a> contrôle le + nombre maximal de threads traitant les requêtes, ce qui a + un effet similaire à la directive Unix + <samp>StartServers</samp></p> + + <p>Voir aussi <a href="#minspareservers">MinSpareServers</a> et + <a href="#maxspareservers">MaxSpareServers</a>.</p> + <hr /> + + <h2><a id="threadsperchild" name="threadsperchild">Directive + ThreadsPerChild</a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ThreadsPerChild <em>nombre</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>ThreadsPerChild 50</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau (Windows)<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + Disponible seulement à partir de la version 1.3 pour + Windows d'Apache + + <p>Cette directive indique au serveur combien de threads il + doit lancer. Cela est équivalent au nombre maximum de + connexions que le serveur peut traiter simultanément ; + soyez sûr de vous et réglez le nombre suffisament + haut si votre site est très fréquenté.</p> + + <p>Cette directive n'a aucun effet sur les systèmes + Unix. Les utilisateurs Unix regarderont les directives <a + href="#startservers">StartServers</a> et <a + href="#maxrequestsperchild">MaxRequestsPerChild</a>.</p> + <hr /> + + <h2><a id="threadstacksize" name="threadstacksize">Directive + ThreadStackSize</a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ThreadStackSize <em>nombre</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>ThreadStackSize 65536</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau (NetWare)<br /> + <strong>Compatibilité :</strong> disponible à + partir de la version d'Apache 1.3 sur Netware. + + <p>Cette directive indique la taille de la pile à + utiliser pour les threads. Si vous rencontrer un + problème de débordement de pile, vous devez + augmenter cette valeur.</p> + + <p>Cette directive n'a aucun effet sur les autres + systèmes.</p> + <hr /> + + <h2><a id="timeout" name="timeout">Directive TimeOut</a></h2> + <!--%plaintext <?INDEX {\tt TimeOut} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> TimeOut <em>nombre</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> <code>TimeOut + 300</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>TimeOut</tt> définit la + temporisation courante pendant laquelle Apache attendra l'une + de ces trois choses :</p> + + <ol> + <li>Le temps total de réception d'une requête + GET.</li> + + <li>Le temps entre la réception de paquets TCP lors + d'une requête POST ou PUT.</li> + + <li>Le temps entre deux acquittements lors de la transmission + de paquets TCP de réponse.</li> + </ol> + + <p>Nous prévoyons dans le futur de permettre une + configuration individuelle de chacune de ces temporisations. La + valeur par défaut était de 1200 avant la version + 1.2, mais a été abaissée à 300 + depuis, ce qui est déjà largement plus que + nécessaire dans la plupart des situations. Il n'est + cependant pas réglé plus bas car il peut exister + (encore) des portions de code un peu "floues" par lesquelles le + temporisateur n'est pas remis à zéro lors de la + transmission d'un paquet.</p> + <hr /> + + <h2><a id="usecanonicalname" + name="usecanonicalname">UseCanonicalName directive</a></h2> + <!--%plaintext <?INDEX {\tt UseCanonicalName} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> UseCanonicalName on|off|dns<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>UseCanonicalName on</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel, répertoire<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Surcharge :</strong></a> Options<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + UseCanonicalName est disponible à partir de la verion + 1.3 + + <p>Dans beaucoup de situations, Apache doit construire des URL + <em>s'autoréférençant</em>, autremnet dit, + des URL référençant le même serveur. + Avec la directive <code>UseCanonicalName on</code> (dans les + versions d'Apache inférieures à 1.3) Apache + utilise les valeurs des directives <a + href="#servername">ServerName</a> et <a href="#port">Port</a> + pour construire un nom canonique du serveur. Ce nom est + utilisé pour toutes les URL autoréférentes + et pour les valeurs de <code>SERVER_NAME</code> et + <code>SERVER_PORT</code> pour les scripts CGI.</p> + + <p>Avec <code>UseCanonicalName off</code>, Apache formera les + URLS autoréférentes en utilisant le nom + d'hôte le numéro de port fourni par le client si + ceux ci sont fournis (sinon il utilisera le nom canonique). Ces + valeurs sont les mêmes qui sont employées pour + implémenter les <a + href="../vhosts/name-based.html">hôtes virtuels + basés sur des noms</a>, et sont disponibles pour les + mêmes clients. Les variable CGI <code>SERVER_NAME</code> + et <code>SERVER_PORT</code> seront aussi construites à + partir des valeurs fournies par les clients.</p> + + <p>Un exemple où cette directive est utile est le cas + d'un serveur intranet où des utilisateurs se connectent + à la machine en utilisant des noms courts tels que + <code>www</code>. Vous noterez que si l'utilisateur tape un nom + court et que l'URL est un répertoire tel que + <code>http://www/splat</code>, <em>sans le caractère + oblique / final</em> , Apache redirigera la requête vers + <code>http://www.domain.com/splat/</code>. Si vous avez une + authentification active, lu'tilisateur devra s'authentifier + deux fois, (une première fois pour <code>www</code> et + une deuxième fois pour An example where this may be + useful is on an intranet server where you have users connecting + to the machine using short names such as . You'll notice that + if the users type a <code>www.domain.com</code>). Mais si la + directive <code>UseCanonicalName</code> est à off, + Apache redirigera vers <code>http://www/splat/</code>.</p> + + <p>Il existe une troisième option, + <code>UseCanonicalName DNS</code>, qui est prévu pour + être employé avec de nombreux hôtes virtuels + basés sur les adresses IP afin de supporter les clients + qui ne fournissent pas d'en-tête <code>Host:</code>. Avec + cette option Apache effectue une résolution DNS inverse + sur l'adresse IP du serveur sur lequel le client se connecte + afin de travailler avec pour les URL + autoréférentes.</p> + + <p><strong>Attention :</strong> si les scripts CGI font des + suppositions sur les valeurs de <code>SERVER_NAME</code> il + peuvent ne plus fonctionner avec cette option. Mais le script + CGI utilise uniquement <code>SERVER_NAME</code> pour construire + des URL autoréférentes, il ne evrait y avoir + aucun problèmes.</p> + + <p><strong>Voir également :</strong> <a + href="#servername">ServerName</a>, <a href="#port">Port</a></p> + <hr /> + + <h2><a id="user" name="user">Directive User</a></h2> + <!--%plaintext <?INDEX {\tt User} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> User <em>utilisateurUnix</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> <code>User + #-1</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>User</tt> définit l'utilisateur + associé au serveur. Pour utiliser cette directive, un + serveur standalone devra être lancé sous + <code>root</code>. <em>utilisateurUnix</em> est l'un parmi + :</p> + + <dl> + <dt>un nom d'utilisateur</dt> + + <dd>se réfère à un utilisateur + déclaré du système.</dd> + + <dt># suivi d'un numéro d'utilisateur.</dt> + + <dd>se réfère à l'utilisateur + déclaré du système portant ce + numéro.</dd> + </dl> + + <p>L'utilisateur peut n'avoir aucun privilège ce qui lui + permet néanmoins de pouvoir avoir accès à + des fichiers qui ne sont pas sensés être visibles + du "reste du monde", mais pas d'exécuter du code qui ne + serait pas explicitement exécutable par l'utilisateur + associé à httpd. Il est d'ailleurs + recommandé de créer un utilisateur et un groupe + specialement pour exécuter le serveur. Certains + administrateurs utilisent souvent l'utilisateur + <code>nobody</code>, mais ceci n'est pas toujours possible ou + souhaitable. Par exemple, le cache de mod_proxy quancd celui + est activé , doit être accessible à cette + utilisateur (voir la directive <a + href="mod_proxy.html#cacheroot"><code>CacheRoot</code></a> + ).</p> + + <p><strong>Note :</strong> si vous démarrez le serveur + sous un utilisateur non-root, la tentative pour passer sous un + utilisateur de moindre privilège échouera, et le + serveur continuera à sexécuter sous l'utilisateur + d'origine. Si vous démarrez le serveur sous + <code>root</code>, alors il sera normal que le processus + père continue à s'exécuter sous + <code>root</code>.</p> + + <p><strong>Note spécifique :</strong> L'utilisation de + cette directive dans une section <tt><VirtualHost></tt> + nécessite un <a href="../suexec.html">wrapper suEXEC</a> + correctement configuré. Lorsqu'elle est utilisée + de cette façon dans une section + <tt><VirtualHost></tt>, seul l'utilisateur associé + à l'exécution des scripts CGI est affecté. + Les requêtes non-CGI seront toujours traitées sous + l'utilisateur défini dans la directive User de la + section principale.</p> + + <p><strong>Sécurité :</strong> Ne + définissez pas l'utilisateur (ni le <a + href="#group">groupe</a>) comme <code>root</code> sauf si vous + savez exactement ce que vous faites, et si vous êtes + totalement conscients des risques qui sont encourus.</p> + <hr /> + + <h2><a id="virtualhost" name="virtualhost">Directive + <VirtualHost></a></h2> + <!--%plaintext <?INDEX {\tt VirtualHost} section directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> <VirtualHost <em>adresse</em>[:<em>port</em>] + ...> ... </VirtualHost> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> Core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> la + "virtualisation" d'hôtes non basés sur l'adressage + IP n'est disponible qu'à partir de la version 1.1 + d'Apache<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> le + support d'adresses multiples n'est disponible qu'à + partir de la version 1.2 d'Apache + + <p>Les directives <VirtualHost> et </VirtualHost> + sont utilisées pour "encapsuler" un groupe de directives + qui s'appliquent à un hôte virtuel particulier. + Toute directive autorisée dans un contexte "hôte + virtuel" peut être présente. Lorsque le serveur + reçoit une requête demandant un document + spécifique sur un hôte virtuel spécifique, + il utilise les directives de configuration explicitées + dans la section <VirtualHost> correspondante. + <em>Adresse</em> peut être :</p> + + <ul> + <li>l'adresse IP de l'hôte virtuel</li> + + <li>un nom de domaine entièrement qualifié pour + l'adresse IP de cet hôte virtuel.</li> + </ul> + + <p>Exemple :</p> + + <blockquote> +<pre> +<code><VirtualHost 10.1.2.3> +ServerAdmin webmaster@host.foo.com +DocumentRoot /www/docs/host.foo.com +ServerName host.foo.com +ErrorLog logs/host.foo.com-error_log +TransferLog logs/host.foo.com-access_log +</VirtualHost> +</code> +</pre> + </blockquote> + + <p>Chaque hôte virtuel doit être associé + à une adresse IP, à un numéro de port ou + à un nom d'hôte différents que celui + attribué au serveur, dans le dernier cas la machine du + serveur doit être configurée pour accepter des + paquets IP sur plusieurs adresses. (Si la machine ne dispose + pas de plusieurs interfaces réseau physiques, ceci peut + être obtenu par la commande <code>ifconfig alias</code> + (si votre OS l'accepte), ou par des patchs du kernel du type <a + href="../misc/vif-info.html">VIF</a> (pour SunOS(TM) + 4.1.x)).</p> + + <p>Vous pouvez spécifier plus d'une adresse IP. Ceci + peut être utile si une machine répond au + même nom venant de deux différentes interfaces. + Par exemple, si vous avez un hôte virtuel qui est + accessible des hôtes à partir d'un réseau + interne (intranet) et externe (internet). Exemple :</p> + + <blockquote> + <code><VirtualHost 192.168.1.2 204.255.176.199><br /> + DocumentRoot /www/docs/host.foo.com<br /> + ServerName host.foo.com<br /> + ServerAlias host<br /> + </VirtualHost></code> + </blockquote> + + <p>Le nom prédéfini <code>_default_</code> peut + être attribué auquel cas cet hôte virtuel + lira toutes les adresses IP qui ne sont pas explicitement + listées dans les autres hôtes virtuels + définis. En l'absence d'un hôte virtuel _default_, + la configuration serveur "principale", à savoir toutes + les définitions en dehors des sections VirtualHost, + seront utilisées si aucun hôte virtuel ne + reconnaît l'adresse.</p> + + <p>Vous pouvez spécifier une commande <code>:port</code> + pour changer le port reconnu par l'hôte virtuel. Si aucun + port n'est mentionné, alors le port reconnu est par + défaut celui mentionné dans la dernière + directive de <code><a href="#port">Port</a></code> de la + section principale qui précède. Vous pouvez + également spécifier <code>:*</code> pour + reconnaître tous les ports à cette adresse. (Ceci + est conseillé lorsque l'hôte virtuel est le + <code>_default_</code>.)</p> + + <p><strong>Sécurité</strong>: Voir les <a + href="../misc/security_tips.html">conseils de + sécurité</a> pour plus de détails sur les + risques encourus si le répertoire contenant les fichiers + de trace peut être écrit par un autre utilisateur + que celui sous lequel est exécuté le serveur.</p> + + <p><strong>Note</strong>: L'utilisation de la directive + <VirtualHost> <strong>n'</strong> affecte + <strong>pas</strong> les adresses qu'écoute Apache. Vous + devez vous assurer que les adresses définies pour les + hôtes virtuels font aussi partie de l'ensemble des + adresses écoutées par Apache et définies + par des directives <a href="#bindaddress">BindAddress</a> ou <a + href="#listen">Listen</a>.</p> + + <p><strong>Voir aussi :</strong> <a + href="../vhosts/index.html">Hôtes virtuels sur + Apache</a><br /> + <a href="../dns-caveats.html">Avertissement concernant DNS et + Apache</a><br /> + <a href="../bind.html">Configurer les ports et adresses + utilisés par Apache</a></p> + + <p><strong>Voir aussi</strong> : <a + href="../sections.html">Comment fonctionnent les sections + concernant les répertoires, chemins et fichiers</a> pour + une explication plus précise concernant la + manière dont ces sections sont combinées + lorsqu'une requête est traitée. + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + + </p> + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/mod/core.html.html b/usr.sbin/httpd/htdocs/manual/mod/core.html.html new file mode 100644 index 00000000000..27cd9184bd5 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/mod/core.html.html @@ -0,0 +1,3762 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache Core Features</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + + + <h1 align="CENTER">Apache Core Features</h1> + + <p>These configuration parameters control the core Apache + features, and are always available.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#acceptfilter">AcceptFilter</a></li> + + <li><a href="#acceptmutex">AcceptMutex</a></li> + + <li><a href="#accessconfig">AccessConfig</a></li> + + <li><a href="#accessfilename">AccessFileName</a></li> + + <li><a href="#adddefaultcharset">AddDefaultCharset</a></li> + + <li><a href="#addmodule">AddModule</a></li> + + <li><a href="#allowoverride">AllowOverride</a></li> + + <li><a href="#authname">AuthName</a></li> + + <li><a href="#authtype">AuthType</a></li> + + <li><a href="#bindaddress">BindAddress</a></li> + + <li><a href="#bs2000account">BS2000Account</a></li> + + <li><a href="#clearmodulelist">ClearModuleList</a></li> + + <li><a href="#contentdigest">ContentDigest</a></li> + + <li><a href="#coredumpdirectory">CoreDumpDirectory</a></li> + + <li><a href="#defaulttype">DefaultType</a></li> + + <li><a href="#directory"><Directory></a></li> + + <li><a href="#directorymatch"><DirectoryMatch></a></li> + + <li><a href="#documentroot">DocumentRoot</a></li> + + <li><a href="#ebcdicconvert">EBCDICConvert</a></li> + + <li><a + href="#ebcdicconvertbytype">EBCDICConvertByType</a></li> + + <li><a href="#ebcdickludge">EBCDICKludge</a></li> + + <li><a href="#errordocument">ErrorDocument</a></li> + + <li><a href="#errorlog">ErrorLog</a></li> + + <li><a href="#files"><Files></a></li> + + <li><a href="#fileetag"><FileETag></a></li> + + <li><a href="#filesmatch"><FilesMatch></a></li> + + <li><a href="#group">Group</a></li> + + <li><a href="#hostnamelookups">HostnameLookups</a></li> + + <li><a href="#identitycheck">IdentityCheck</a></li> + + <li><a href="#ifdefine"><IfDefine></a></li> + + <li><a href="#ifmodule"><IfModule></a></li> + + <li><a href="#include">Include</a></li> + + <li><a href="#keepalive">KeepAlive</a></li> + + <li><a href="#keepalivetimeout">KeepAliveTimeout</a></li> + + <li><a href="#limit"><Limit></a></li> + + <li><a href="#limitexcept"><LimitExcept></a></li> + + <li><a href="#limitrequestbody">LimitRequestBody</a></li> + + <li><a href="#limitrequestfields">LimitRequestFields</a></li> + + <li><a + href="#limitrequestfieldsize">LimitRequestFieldsize</a></li> + + <li><a href="#limitrequestline">LimitRequestLine</a></li> + + <li><a href="#listen">Listen</a></li> + + <li><a href="#listenbacklog">ListenBacklog</a></li> + + <li><a href="#location"><Location></a></li> + + <li><a href="#locationmatch"><LocationMatch></a></li> + + <li><a href="#lockfile">LockFile</a></li> + + <li><a href="#loglevel">LogLevel</a></li> + + <li><a href="#maxclients">MaxClients</a></li> + + <li><a + href="#maxkeepaliverequests">MaxKeepAliveRequests</a></li> + + <li><a + href="#maxrequestsperchild">MaxRequestsPerChild</a></li> + + <li><a href="#maxspareservers">MaxSpareServers</a></li> + + <li><a href="#minspareservers">MinSpareServers</a></li> + + <li><a href="#namevirtualhost">NameVirtualHost</a></li> + + <li><a href="#options">Options</a></li> + + <li><a href="#pidfile">PidFile</a></li> + + <li><a href="#port">Port</a></li> + + <li><a href="#require">Require</a></li> + + <li><a href="#resourceconfig">ResourceConfig</a></li> + + <li><a href="#rlimitcpu">RLimitCPU</a></li> + + <li><a href="#rlimitmem">RLimitMEM</a></li> + + <li><a href="#rlimitnproc">RLimitNPROC</a></li> + + <li><a href="#satisfy">Satisfy</a></li> + + <li><a href="#scoreboardfile">ScoreBoardFile</a></li> + + <li><a + href="#scriptinterpretersource">ScriptInterpreterSource</a></li> + + <li><a href="#sendbuffersize">SendBufferSize</a></li> + + <li><a href="#serveradmin">ServerAdmin</a></li> + + <li><a href="#serveralias">ServerAlias</a></li> + + <li><a href="#servername">ServerName</a></li> + + <li><a href="#serverpath">ServerPath</a></li> + + <li><a href="#serverroot">ServerRoot</a></li> + + <li><a href="#serversignature">ServerSignature</a></li> + + <li><a href="#servertokens">ServerTokens</a></li> + + <li><a href="#servertype">ServerType</a></li> + + <li><a href="#startservers">StartServers</a></li> + + <li><a href="#threadsperchild">ThreadsPerChild</a></li> + + <li><a href="#threadstacksize">ThreadStackSize</a></li> + + <li><a href="#timeout">TimeOut</a></li> + + <li><a href="#usecanonicalname">UseCanonicalName</a></li> + + <li><a href="#user">User</a></li> + + <li><a href="#virtualhost"><VirtualHost></a></li> + </ul> + <hr /> + + <h2><a id="acceptfilter" name="acceptfilter">AcceptFilter + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AcceptFilter + on|off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>AcceptFilter + on</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server configt<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> AcceptFilter is + available in Apache 1.3.22 and later + + <p><code>AcceptFilter</code> controls a BSD specific filter + optimization. It is compiled in by default - and switched on by + default if your system supports it (setsocketopt() option + SO_ACCEPTFILTER). Currently only FreeBSD supports this.</p> + + <p>See the filter section on <a + href="misc/perf-bsd44.html">performance hints</a> for more + information.</p> + + <p>The compile time flag <code>AP_ACCEPTFILTER_OFF</code> can + be used to change the default to 'off'. <code>httpd -V</code> + and <code>httpd -L</code> will show compile time defaults and + whether or not SO_ACCEPTFILTER was defined during the + compile.</p> + + <h2><a id="acceptmutex" name="acceptmutex">AcceptMutex + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AcceptMutex + uslock|pthread|sysvsem|fcntl|flock|os2sem|tpfcore|none|default<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>AcceptMutex + default</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p><code>AcceptMutex</code> controls which accept() mutex + method Apache will use. Not all methods are available on all + platforms, since the suite of methods is determined at + compile-time. For a list of which methods are available for + your particular build, the <code>httpd -L</code> command line + option will list them out.</p> + + <p>The compile time flags <code>-D + HAVE_METHOD_SERIALIZED_ACCEPT</code> can be used to add + different methods to your build, or one can edit the + <code>include/ap_config.h</code> file for your particular + platform.</p> + + <p>See the <a href="../misc/perf-tuning.html">performance tuning + guide</a> for more information.</p> + + <h2><a id="accessconfig" name="accessconfig">AccessConfig + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AccessConfig + <em>file-path</em>|<em>directory-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>AccessConfig + conf/access.conf</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core <br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> The ability to + specify a directory, rather than a file name, is only available in + Apache 1.3.13 and later. + + <p>The server will read this file for more directives after + reading the <a href="#resourceconfig">ResourceConfig</a> file. + <em>File-path</em> is relative to the <a + href="#serverroot">ServerRoot</a>. This feature can be disabled + using:</p> + + <blockquote> + <code>AccessConfig /dev/null</code> + </blockquote> + Or, on Win32 servers, + + <blockquote> + <code>AccessConfig nul</code> + </blockquote> + Historically, this file only contained <a + href="#directory"><Directory></a> sections; in fact it + can now contain any server directive allowed in the <em>server + config</em> context. However, since Apache version 1.3.4, + the default <code>access.conf</code> file which ships with + Apache contains only comments, and all directives are placed + in the main server configuration file, <code>httpd.conf</code>. + + <p>If <code>AccessConfig</code> points to a directory, rather than a + file, Apache will read all files in that directory, and any + subdirectory, and parse those as configuration files. Note that + <emph>any</emph> file in the specified directory will be loaded as a + configuration file, so make sure that you don't have stray files in + this directory by mistake, such as temporary files created by your + editor, for example.</p> + + <p>See also <a href="#resourceconfig">ResourceConfig</a>.</p> + <hr /> + + <h2><a id="accessfilename" name="accessfilename">AccessFileName + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AccessFileName + <em>filename</em> [<em>filename</em>] ...<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>AccessFileName + .htaccess</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> AccessFileName + can accept more than one filename only in Apache 1.3 and later + + <p>When returning a document to the client the server looks for + the first existing access control file from this list of names + in every directory of the path to the document, if access + control files are enabled for that directory. For example:</p> + + <blockquote> + <code>AccessFileName .acl</code> + </blockquote> + before returning the document /usr/local/web/index.html, the + server will read /.acl, /usr/.acl, /usr/local/.acl and + /usr/local/web/.acl for directives, unless they have been + disabled with + + <blockquote> + <code><Directory /><br /> + AllowOverride None<br /> + </Directory></code> + </blockquote> + + <p><strong>See Also:</strong> <a + href="#allowoverride">AllowOverride</a></p> + <hr /> + + <h2><a id="adddefaultcharset" + name="adddefaultcharset">AddDefaultCharset directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AddDefaultCharset + On|Off|<em>charset</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> all<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> + <code>AddDefaultCharset Off</code><br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> + AddDefaultCharset is only available in Apache 1.3.12 and later + + <p>This directive specifies the name of the character set that + will be added to any response that does not have any parameter + on the content type in the HTTP headers. This will override any + character set specified in the body of the document via a + <code>META</code> tag. A setting of <code>AddDefaultCharset + Off</code> disables this functionality. <code>AddDefaultCharset + On</code> enables Apache's internal default charset of + <code>iso-8859-1</code> as required by the directive. You can + also specify an alternate <em>charset</em> to be used; e.g. + <code>AddDefaultCharset utf-8</code>.</p> + <hr /> + + <h2><a id="addmodule" name="addmodule">AddModule + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AddModule + <em>module</em> [<em>module</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config <br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> AddModule is + only available in Apache 1.2 and later + + <p>The server can have modules compiled in which are not + actively in use. This directive can be used to enable the use + of those modules. The server comes with a pre-loaded list of + active modules; this list can be cleared with the <a + href="#clearmodulelist">ClearModuleList</a> directive.</p> + <hr /> + + <h2><a id="allowoverride" name="allowoverride">AllowOverride + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AllowOverride + All|None|<em>directive-type</em> [<em>directive-type</em>] + ...<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>AllowOverride + All</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>When the server finds an .htaccess file (as specified by <a + href="#accessfilename">AccessFileName</a>) it needs to know + which directives declared in that file can override earlier + access information.</p> + + <p>When this directive is set to <code>None</code>, then + .htaccess files are completely ignored. In this case, the + server will not even attempt to read .htaccess files in the + filesystem.</p> + + <p>When this directive is set to <code>All</code>, then any + directive which has the .htaccess <a + href="directive-dict.html#Context">Context</a> is allowed in + .htaccess files.</p> + + <p>The <em>directive-type</em> can be one of the following + groupings of directives.</p> + + <dl> + <dt>AuthConfig</dt> + + <dd> + + Allow use of the authorization directives (<a + href="mod_auth_dbm.html#authdbmgroupfile">AuthDBMGroupFile</a>, + <a + href="mod_auth_dbm.html#authdbmuserfile">AuthDBMUserFile</a>, + <a href="mod_auth.html#authgroupfile">AuthGroupFile</a>, <a + href="#authname">AuthName</a>, <a + href="#authtype">AuthType</a>, <a + href="mod_auth.html#authuserfile">AuthUserFile</a>, <a + href="#require">Require</a>, <em>etc.</em>).</dd> + + <dt>FileInfo</dt> + + <dd> + Allow use of the directives controlling document types (<a + href="mod_mime.html#addencoding">AddEncoding</a>, <a + href="mod_mime.html#addlanguage">AddLanguage</a>, <a + href="mod_mime.html#addtype">AddType</a>, <a + href="#defaulttype">DefaultType</a>, <a + href="#errordocument">ErrorDocument</a>, <a + href="mod_negotiation.html#languagepriority">LanguagePriority</a>, + <em>etc.</em>).</dd> + + <dt>Indexes</dt> + + <dd> + Allow use of the directives controlling directory indexing + (<a + href="mod_autoindex.html#adddescription">AddDescription</a>, + <a href="mod_autoindex.html#addicon">AddIcon</a>, <a + href="mod_autoindex.html#addiconbyencoding">AddIconByEncoding</a>, + <a href="mod_autoindex.html#addiconbytype">AddIconByType</a>, + <a href="mod_autoindex.html#defaulticon">DefaultIcon</a>, <a + href="mod_dir.html#directoryindex">DirectoryIndex</a>, <a + href="mod_autoindex.html#fancyindexing">FancyIndexing</a>, <a + href="mod_autoindex.html#headername">HeaderName</a>, <a + href="mod_autoindex.html#indexignore">IndexIgnore</a>, <a + href="mod_autoindex.html#indexoptions">IndexOptions</a>, <a + href="mod_autoindex.html#readmename">ReadmeName</a>, + <em>etc.</em>).</dd> + + <dt>Limit</dt> + + <dd> + Allow use of the directives controlling host access (Allow, + Deny and Order).</dd> + + <dt>Options</dt> + + <dd> + Allow use of the directives controlling specific directory + features (<a href="#options">Options</a> and <a + href="mod_include.html#xbithack">XBitHack</a>).</dd> + </dl> + + <p><strong>See Also:</strong> <a + href="#accessfilename">AccessFileName</a></p> + <hr /> + + <h2><a id="authname" name="authname">AuthName + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AuthName + <em>auth-domain</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> AuthConfig<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>This directive sets the name of the authorization realm for + a directory. This realm is given to the client so that the user + knows which username and password to send. + <samp>AuthName</samp> takes a single argument; if the realm + name contains spaces, it must be enclosed in quotation marks. + It must be accompanied by <a href="#authtype">AuthType</a> and + <a href="#require">Require</a> directives, and directives such + as <a href="mod_auth.html#authuserfile">AuthUserFile</a> and <a + href="mod_auth.html#authgroupfile">AuthGroupFile</a> to + work.</p> + <hr /> + + <h2><a id="authtype" name="authtype">AuthType + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AuthType + Basic|Digest<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> AuthConfig<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>This directive selects the type of user authentication for a + directory. Only <code>Basic</code> and <code>Digest</code> are + currently implemented. + + It must be accompanied by <a href="#authname">AuthName</a> and + <a href="#require">Require</a> directives, and directives such + as <a href="mod_auth.html#authuserfile">AuthUserFile</a> and <a + href="mod_auth.html#authgroupfile">AuthGroupFile</a> to + work.</p> + <hr /> + + <h2><a id="bindaddress" name="bindaddress">BindAddress + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> BindAddress + *|<em>IP-address</em>|<em>domain-name</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>BindAddress + *</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>A Unix® http server can either listen for connections to + every IP address of the server machine, or just one IP address + of the server machine. If the argument to this directive is *, + then the server will listen for connections on every IP + address. Otherwise, the server can listen to only a specific + <em>IP-address</em> or a fully-qualified Internet + <em>domain-name</em>.</p> + + <p>Only one <code>BindAddress</code> directive can be used. For + more control over which address and ports Apache listens to, + use the <code><a href="#listen">Listen</a></code> directive + instead of <code>BindAddress</code>.</p> + + <p><code>BindAddress</code> can be used as an alternative + method for supporting <a href="../vhosts/">virtual hosts</a> + using multiple independent servers, instead of using <code><a + href="#virtualhost"><VirtualHost></a></code> + sections.</p> + + <p><strong>See Also:</strong> <a href="../dns-caveats.html">DNS + Issues</a><br /> + <strong>See Also:</strong> <a href="../bind.html">Setting + which addresses and ports Apache uses</a></p> + <hr /> + + <h2><a id="bs2000account" name="bs2000account">BS2000Account + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> BS2000Account + <em>account</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>none</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> BS2000Account is + only available for BS2000 machines, as of Apache 1.3 and later. + + + <p>The <code>BS2000Account</code> directive is available for + BS2000 hosts only. It must be used to define the account number + for the non-privileged apache server user (which was configured + using the <a href="#user">User</a> directive). This is required + by the BS2000 POSIX subsystem (to change the underlying BS2000 + task environment by performing a sub-LOGON) to prevent CGI + scripts from accessing resources of the privileged account + which started the server, usually <samp>SYSROOT</samp>.<br /> + Only one <code>BS2000Account</code> directive can be used.</p> + + <p><strong>See Also:</strong> <a href="../ebcdic.html">Apache + EBCDIC port</a></p> + <hr /> + + <h2><a id="clearmodulelist" + name="clearmodulelist">ClearModuleList directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ClearModuleList<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ClearModuleList + is only available in Apache 1.2 and later + + <p>The server comes with a built-in list of active modules. + This directive clears the list. It is assumed that the list + will then be re-populated using the <a + href="#addmodule">AddModule</a> directive.</p> + <hr /> + + <h2><a id="contentdigest" name="contentdigest">ContentDigest + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ContentDigest + on|off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ContentDigest + off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> Options<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> experimental<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ContentDigest is + only available in Apache 1.1 and later + + <p>This directive enables the generation of + <code>Content-MD5</code> headers as defined in RFC1864 + respectively RFC2068.</p> + + <p>MD5 is an algorithm for computing a "message digest" + (sometimes called "fingerprint") of arbitrary-length data, with + a high degree of confidence that any alterations in the data + will be reflected in alterations in the message digest.</p> + + <p>The <code>Content-MD5</code> header provides an end-to-end + message integrity check (MIC) of the entity-body. A proxy or + client may check this header for detecting accidental + modification of the entity-body in transit. Example header:</p> +<pre> + Content-MD5: AuLb7Dp1rqtRtxz2m9kRpA== +</pre> + + <p>Note that this can cause performance problems on your server + since the message digest is computed on every request (the + values are not cached).</p> + + <p><code>Content-MD5</code> is only sent for documents served + by the core, and not by any module. For example, SSI documents, + output from CGI scripts, and byte range responses do not have + this header.</p> + <hr /> + + <h2><a id="coredumpdirectory" + name="coredumpdirectory">CoreDumpDirectory directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> CoreDumpDirectory + <em>directory-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> the same location as + ServerRoot<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>This controls the directory to which Apache attempts to + switch before dumping core. The default is in the <a + href="#serverroot">ServerRoot</a> directory, however since this + should not be writable by the user the server runs as, core + dumps won't normally get written. If you want a core dump for + debugging, you can use this directive to place it in a + different location.</p> + <hr /> + + <h2><a id="defaulttype" name="defaulttype">DefaultType + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> DefaultType + <em>MIME-type</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>DefaultType + text/html</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>There will be times when the server is asked to provide a + document whose type cannot be determined by its MIME types + mappings.</p> + + <p>The server must inform the client of the content-type of the + document, so in the event of an unknown type it uses the + <code>DefaultType</code>. For example:</p> + + <blockquote> + <code>DefaultType image/gif</code> + </blockquote> + would be appropriate for a directory which contained many gif + images with filenames missing the .gif extension. + <hr /> + + <h2><a id="directory" name="directory"><Directory> + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <Directory + <em>directory-path</em>> ... </Directory> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core. + + <p><Directory> and </Directory> are used to enclose + a group of directives which will apply only to the named + directory and sub-directories of that directory. Any directive + which is allowed in a directory context may be used. + <em>Directory-path</em> is either the full path to a directory, + or a wild-card string. In a wild-card string, `?' matches any + single character, and `*' matches any sequences of characters. + As of Apache 1.3, you may also use `[]' character ranges like + in the shell. Also as of Apache 1.3 none of the wildcards match + a `/' character, which more closely mimics the behavior of + Unix shells. Example:</p> +<pre> + <Directory /usr/local/httpd/htdocs> + Options Indexes FollowSymLinks + </Directory> +</pre> + + <p><strong>Apache 1.2 and above:</strong> Extended regular + expressions can also be used, with the addition of the + <code>~</code> character. For example:</p> +<pre> + <Directory ~ "^/www/.*/[0-9]{3}"> +</pre> + would match directories in /www/ that consisted of three + numbers. + + <p>If multiple (non-regular expression) directory sections + match the directory (or its parents) containing a document, + then the directives are applied in the order of shortest match + first, interspersed with the directives from the <a + href="#accessfilename">.htaccess</a> files. For example, + with</p> + + <blockquote> + <code><Directory /><br /> + AllowOverride None<br /> + </Directory><br /> + <br /> + <Directory /home/*><br /> + AllowOverride FileInfo<br /> + </Directory></code> + </blockquote> + for access to the document <code>/home/web/dir/doc.html</code> + the steps are: + + <ul> + <li>Apply directive <code>AllowOverride None</code> + (disabling <code>.htaccess</code> files).</li> + + <li>Apply directive <code>AllowOverride FileInfo</code> (for + directory <code>/home/web</code>).</li> + + <li>Apply any FileInfo directives in + <code>/home/web/.htaccess</code></li> + </ul> + + <p>Regular expression directory sections are handled slightly + differently by Apache 1.2 and 1.3. In Apache 1.2 they are + interspersed with the normal directory sections and applied in + the order they appear in the configuration file. They are + applied only once, and apply when the shortest match possible + occurs. In Apache 1.3 regular expressions are not considered + until after all of the normal sections have been applied. Then + all of the regular expressions are tested in the order they + appeared in the configuration file. For example, with</p> + + <blockquote> + <code><Directory ~ abc$><br /> + ... directives here ...<br /> + </Directory><br /> + </code> + </blockquote> + Suppose that the filename being accessed is + <code>/home/abc/public_html/abc/index.html</code>. The server + considers each of <code>/</code>, <code>/home</code>, + <code>/home/abc</code>, <code>/home/abc/public_html</code>, and + <code>/home/abc/public_html/abc</code> in that order. In Apache + 1.2, when <code>/home/abc</code> is considered, the regular + expression will match and be applied. In Apache 1.3 the regular + expression isn't considered at all at that point in the tree. + It won't be considered until after all normal + <Directory>s and <code>.htaccess</code> files have been + applied. Then the regular expression will match on + <code>/home/abc/public_html/abc</code> and be applied. + + <p><strong>Note that the default Apache access for + <Directory /> is <samp>Allow from All</samp>. This means + that Apache will serve any file mapped from an URL. It is + recommended that you change this with a block such + as</strong></p> +<pre> + <Directory /> + Order Deny,Allow + Deny from All + </Directory> +</pre> + + <p><strong>and then override this for directories you + <em>want</em> accessible. See the <a + href="../misc/security_tips.html">Security Tips</a> page for + more details.</strong></p> + The directory sections typically occur in the access.conf file, + but they may appear in any configuration file. + <Directory> directives cannot nest, and cannot appear in + a <a href="#limit"><Limit></a> or <a + href="#limitexcept"><LimitExcept></a> section. + + <p><strong>See also</strong>: <a href="../sections.html">How + Directory, Location and Files sections work</a> for an + explanation of how these different sections are combined when a + request is received</p> + <hr /> + + <h2><a id="directorymatch" + name="directorymatch"><DirectoryMatch></a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <DirectoryMatch + <em>regex</em>> ... </DirectoryMatch> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core.<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in + Apache 1.3 and later + + <p><DirectoryMatch> and </DirectoryMatch> are used + to enclose a group of directives which will apply only to the + named directory and sub-directories of that directory, the same + as <a href="#directory"><Directory></a>. However, it + takes as an argument a regular expression. For example:</p> +<pre> + <DirectoryMatch "^/www/.*/[0-9]{3}"> +</pre> + + <p>would match directories in /www/ that consisted of three + numbers.</p> + + <p><strong>See Also:</strong> <a + href="#directory"><Directory></a> for a description of + how regular expressions are mixed in with normal + <Directory>s.<br /> + <strong>See also</strong>: <a href="../sections.html">How + Directory, Location and Files sections work</a> for an + explanation of how these different sections are combined when a + request is received</p> + <hr /> + + <h2><a id="documentroot" name="documentroot">DocumentRoot + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> DocumentRoot + <em>directory-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>DocumentRoot + /usr/local/apache/htdocs</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>This directive sets the directory from which httpd will + serve files. Unless matched by a directive like Alias, the + server appends the path from the requested URL to the document + root to make the path to the document. Example:</p> + + <blockquote> + <code>DocumentRoot /usr/web</code> + </blockquote> + then an access to + <code>http://www.my.host.com/index.html</code> refers to + <code>/usr/web/index.html</code>. + + <p>There appears to be a bug in mod_dir which causes problems + when the DocumentRoot has a trailing slash (<em>i.e.</em>, + "DocumentRoot /usr/web/") so please avoid that.</p> + <hr /> + + <h2><a id="ebcdicconvert" + name="ebcdicconvert">EBCDICConvert</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> EBCDICConvert + On|Off[=<em>direction</em>] <em>extension</em> + [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> The configurable + EBCDIC conversion is only available in Apache 1.3.19 and later, + and on EBCDIC based platforms. + + <p>The EBCDICConvert directive maps the given filename + extensions to the specified conversion setting (<samp>On</samp> + or <samp>Off</samp>). File extensions may be specified with or + without a leading dot.</p> + + <p>If the optional format <samp>On=<i>direction</i></samp> (or + <samp>Off=<i>direction</i></samp>) is used, where + <i>direction</i> is one of <samp>In</samp>, <samp>Out</samp> or + <samp>InOut</samp>, then the directive only applies to the + specified transfer direction (<samp>In</samp>: uploaded content + in a PUT or POST request, <samp>Out</samp>: returned content in + a GET or POST request, and <samp>InOut</samp>: conversion in + both directions).<br /> + Otherwise, <samp>InOut</samp> (conversion in both directions) + is implied.</p> + + <p>Conversion configuration based on file extension is tested + prior to configuration based on MIME type, to allow for generic + MIME based rules to be overridden by a more specific file + extension (several file extensions may exist for the same MIME + type).</p> + + <p><strong>Example</strong>:<br /> + With a configuration like the following, the normal + <samp>*.html</samp> files contain HTML text in EBCDIC encoding, + while <samp>*.ahtml</samp> files contain HTML text in ASCII + encoding:</p> +<pre> + # *.html and *.ahtml contain HTML text: + AddType text/html .html .ahtml + + # *.ahtml is not converted (contains ASCII text already): + EBCDICConvert Off .ahtml + + # All other text/html files presumably contain EBCDIC text: + EBCDICConvertByType On text/html +</pre> + <br /> + <br /> + + + <p><strong>See also</strong>: <a + href="#ebcdicconvertbytype">EBCDICConvertByType</a> and <a + href="../ebcdic.html#ebcdic">Overview of the EBCDIC Conversion + Functions</a></p> + <hr /> + + <h2><a id="ebcdicconvertbytype" + name="ebcdicconvertbytype">EBCDICConvertByType</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> EBCDICConvertByType + On|Off[=<em>direction</em>] <em>mimetype</em> + [<em>mimetype</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> The configurable + EBCDIC conversion is only available in Apache 1.3.19 and later, + and on EBCDIC based platforms. + + <p>The EBCDICConvertByType directive maps the given MIME type + (optionally containing wildcards) to the specified conversion + setting (<samp>On</samp> or <samp>Off</samp>).</p> + + <p>If the optional format <samp>On=<i>direction</i></samp> (or + <samp>Off=<i>direction</i></samp>) is used, where + <i>direction</i> is one of <samp>In</samp>, <samp>Out</samp> or + <samp>InOut</samp>, then the directive only applies to the + specified transfer direction (<samp>In</samp>: uploaded content + in a PUT or POST request, <samp>Out</samp>: returned content in + a GET or POST request, and <samp>InOut</samp>: conversion in + both directions).<br /> + Otherwise, <samp>InOut</samp> (conversion in both directions) + is implied.</p> + + <p><strong>Example</strong>:<br /> + A useful standard configuration should at least contain the + following defaults:</p> +<pre> + # All text documents are stored as EBCDIC files: + EBCDICConvertByType On text/* message/* multipart/* + EBCDICConvertByType On application/x-www-form-urlencoded \ + model/vrml application/postscript + # All other files are assumed to be binary: + EBCDICConvertByType Off */* +</pre> + If you serve ASCII documents only, for example from an NFS + mounted unix server, use: +<pre> + # All documents are ASCII already: + EBCDICConvertByType Off */* +</pre> + + <p><strong>See also</strong>: <a + href="#ebcdicconvert">EBCDICConvert</a> and <a + href="../ebcdic.html#ebcdic">Overview of the EBCDIC Conversion + Functions</a></p> + <hr /> + + <h2><a id="ebcdickludge" + name="ebcdickludge">EBCDICKludge</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> EBCDICKludge + On|Off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>EBCDICKludge + Off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> EBCDICKludge is + only available in Apache 1.3.19 and later, and on EBCDIC based + platforms. It is deprecated and will be withdrawn in a future + version.<br /> + + + <p>The EBCDICKludge is provided for the backward compatible + behavior with apache versions 1.3.0 through 1.3.18. In these + versions, all files with MIME types starting with "text/", + "message/" or "multipart/" or with type + "application/x-www-form-urlencoded" would be converted by + default, all other documents were returned unconverted. Only if + a MIME type "<samp>text/<b>x-ascii-</b><i>subtype</i></samp>" + was configured for a certain document, the document was assumed + to be in ASCII format already, and was not converted again. + Instead, the "<samp><b>x-ascii-</b></samp>" was removed from + the type, resulting in the MIME type + "<samp>text/<i>subtype</i></samp>" being returned for the + document.</p> + + <p>If the EBCDICKludge directive is set to <samp>On</samp>, and + if none of the file extensions configured with the <a + href="#ebcdicconvert">EBCDICConvert</a> directive matches in + the current context, then the server tests for a MIME type of + the format + <samp><i>type/</i><b>x-ascii-</b><i>subtype</i></samp>. If the + document has such a type, then the + "<samp><b>x-ascii-</b></samp>" substring is removed and the + conversion set to <samp>Off</samp>. This allows for overriding + the implicit assumption that all text files are stored in + EBCDIC format, for example when serving documents from an NFS + mounted directory with ASCII documents.<br /> + By using the EBCDICKludge, there is no way to force one of the + other MIME types (<em>e.g.</em>, model/vrml) to be treated as + an EBCDIC text file. Use of the <a + href="#ebcdicconvertbytype">EBCDICConvertByType</a> directive + mentioned above is the preferred way to configure such a + conversion. (Before Apache version 1.3.19, there was no way at + all to force these binary documents to be treated as EBCDIC + text files.)</p> + + <p><strong>See also</strong>: <a + href="#ebcdicconvert">EBCDICConvert</a>, <a + href="#ebcdicconvertbytype">EBCDICConvertByType</a> and <a + href="../ebcdic.html#ebcdic">Overview of the EBCDIC Conversion + Functions</a></p> + <hr /> + + <h2><a id="errordocument" name="errordocument">ErrorDocument + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ErrorDocument + <em>error-code document</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> The directory + and .htaccess contexts are only available in Apache 1.1 and + later. + + <p>In the event of a problem or error, Apache can be configured + to do one of four things,</p> + + <ol> + <li>output a simple hardcoded error message</li> + + <li>output a customized message</li> + + <li>redirect to a local <em>URL-path</em> to handle the + problem/error</li> + + <li>redirect to an external <em>URL</em> to handle the + problem/error</li> + </ol> + + <p>The first option is the default, while options 2-4 are + configured using the <code>ErrorDocument</code> directive, + which is followed by the HTTP response code and a message or + URL.</p> + + <p><em>Messages</em> in this context begin with a single + double-quote character (<code>"</code>), which does not form + part of the message itself. Apache will sometimes offer + additional information regarding the problem/error.</p> + + <p>URLs can begin with a slash (/) for local URLs, or be a full + URL which the client can resolve. Examples:</p> + + <blockquote> + <code>ErrorDocument 500 + http://foo.example.com/cgi-bin/tester<br /> + ErrorDocument 404 /cgi-bin/bad_urls.pl<br /> + ErrorDocument 401 /subscription_info.html<br /> + ErrorDocument 403 "Sorry can't allow you access today</code> + </blockquote> + + <p>Note that when you specify an <code>ErrorDocument</code> + that points to a remote URL (ie. anything with a method such as + "http" in front of it), Apache will send a redirect to the + client to tell it where to find the document, even if the + document ends up being on the same server. This has several + implications, the most important being that the client will not + receive the original error status code, but instead will + receive a redirect status code. This in turn can confuse web + robots and other clients which try to determine if a URL is + valid using the status code. In addition, if you use a remote + URL in an <code>ErrorDocument 401</code>, the client will not + know to prompt the user for a password since it will not + receive the 401 status code. Therefore, <strong>if you use an + "ErrorDocument 401" directive then it must refer to a local + document.</strong></p> + + <p>See Also: <a href="../custom-error.html">documentation of + customizable responses.</a></p> + <hr /> + + <h2><a id="errorlog" name="errorlog">ErrorLog + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ErrorLog + <em>file-path</em>|syslog[:<em>facility</em>] <br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ErrorLog + logs/error_log</code> (Unix)<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ErrorLog + logs/error.log</code> (Windows and OS/2)<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The error log directive sets the name of the file to which + the server will log any errors it encounters. If the + <em>file-path</em> does not begin with a slash (/) then it is + assumed to be relative to the <a + href="#serverroot">ServerRoot</a>. If the <em>file-path</em> + begins with a pipe (|) then it is assumed to be a command to + spawn to handle the error log.</p> + + <p><strong>Apache 1.3 and above:</strong> Using + <code>syslog</code> instead of a filename enables logging via + syslogd(8) if the system supports it. The default is to use + syslog facility <code>local7</code>, but you can override this + by using the <code>syslog:</code><em>facility</em> syntax where + <em>facility</em> can be one of the names usually documented in + syslog(1).</p> + + <p>SECURITY: See the <a + href="../misc/security_tips.html#serverroot">security tips</a> + document for details on why your security could be compromised + if the directory where logfiles are stored is writable by + anyone other than the user that starts the server.</p> + + <p><strong>See also:</strong> <a href="#loglevel">LogLevel</a> + and <a href="../logs.html">Apache Log Files</a></p> + <hr /> + + <h2><a id="fileetag" name="fileetag"><FileETag> directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> FileETag + <i>component</i> ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> only available + in Apache 1.3.23 versions and later. + + <p> + The FileETag directive configures the file attributes that are + used to create the ETag (entity tag) response header field + when the document is based on a file. + (The ETag value is used in cache management to save network + bandwidth.) In Apache 1.3.22 and earlier, the ETag value was + <i>always</i> formed from the file's inode, size, and last-modified + time (mtime). The FileETag directive allows you to choose + which of these -- if any -- should be used. The recognised + keywords are: + </p> + <dl compact="compact"> + <dt><b>INode</b></dt> + <dd>The file's i-node number will be included in the calculation</dd> + <dt><b>MTime</b></dt> + <dd>The date and time the file was last modified will be included</dd> + <dt><b>Size</b></dt> + <dd>The number of bytes in the file will be included</dd> + <dt><b>All</b></dt> + <dd>All available fields will be used (equivalent to + '<code>FileETag INode MTime Size</code>')</dd> + <dt><b>None</b></dt> + <dd>If a document is file-based, no ETag field will be included in the + response</dd> + </dl> + <p> + The INode, MTime, and Size keywords may be prefixed with either '+' + or '-', which allow changes to be made to the default setting + inherited from a broader scope. Any keyword appearing without + such a prefix immediatey and completely cancels the inherited + setting. + </p> + <p> + If a directory's configuration includes + '<code>FileETag INode MTime Size</code>', and a + subdirectory's includes '<code>FileETag -INode</code>', + the setting for that subdirectory (which will be inherited by + any sub-subdirectories that don't override it) will be equivalent to + '<code>FileETag MTime Size</code>'. + </p> + <hr /> + + <h2><a id="files" name="files"><Files> directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <Files + <em>filename</em>> ... </Files><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> only available + in Apache 1.2 and above. + + <p>The <Files> directive provides for access control by + filename. It is comparable to the <a + href="#directory"><Directory></a> directive and <a + href="#location"><Location></a> directives. It should be + matched with a </Files> directive. The directives given + within this section will be applied to any object with a + basename (last component of filename) matching the specified + filename. <code><Files></code> sections are processed in + the order they appear in the configuration file, after the + <Directory> sections and <code>.htaccess</code> files are + read, but before <Location> sections. Note that + <Files> can be nested inside <Directory> sections + to restrict the portion of the filesystem they apply to.</p> + + <p>The <em>filename</em> argument should include a filename, or + a wild-card string, where `?' matches any single character, and + `*' matches any sequences of characters. Extended regular + expressions can also be used, with the addition of the + <code>~</code> character. For example:</p> +<pre> + <Files ~ "\.(gif|jpe?g|png)$"> +</pre> + would match most common Internet graphics formats. In Apache + 1.3 and later, <a href="#filesmatch"><FilesMatch></a> is + preferred, however. + + <p>Note that unlike <a + href="#directory"><code><Directory></code></a> and <a + href="#location"><code><Location></code></a> sections, + <code><Files></code> sections can be used inside + .htaccess files. This allows users to control access to their + own files, at a file-by-file level.</p> + + <p><strong>See also</strong>: <a href="../sections.html">How + Directory, Location and Files sections work</a> for an + explanation of how these different sections are combined when a + request is received</p> + <hr /> + + <h2><a id="filesmatch" + name="filesmatch"><FilesMatch></a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <FilesMatch + <em>regex</em>> ... </FilesMatch><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> only available + in Apache 1.3 and above. + + <p>The <FilesMatch> directive provides for access control + by filename, just as the <a href="#files"><Files></a> + directive does. However, it accepts a regular expression. For + example:</p> +<pre> + <FilesMatch "\.(gif|jpe?g|png)$"> +</pre> + + <p>would match most common Internet graphics formats.</p> + <strong>See also</strong>: <a href="../sections.html">How + Directory, Location and Files sections work</a> for an + explanation of how these different sections are combined when a + request is received + <hr /> + + <h2><a id="group" name="group">Group directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> Group + <em>unix-group</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>Group + #-1</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The Group directive sets the group under which the server + will answer requests. In order to use this directive, the + stand-alone server must be run initially as root. + <em>Unix-group</em> is one of:</p> + + <dl> + <dt>A group name</dt> + + <dd>Refers to the given group by name.</dd> + + <dt># followed by a group number.</dt> + + <dd>Refers to a group by its number.</dd> + </dl> + It is recommended that you set up a new group specifically for + running the server. Some admins use user <code>nobody</code>, + but this is not always possible or desirable. + + <p>Note: if you start the server as a non-root user, it will + fail to change to the specified group, and will instead + continue to run as the group of the original user.</p> + + <p>Special note: Use of this directive in <VirtualHost> + requires a properly configured <a href="../suexec.html">suEXEC + wrapper</a>. When used inside a <VirtualHost> in this + manner, only the group that CGIs are run as is affected. + Non-CGI requests are still processed as the group specified in + the main Group directive.</p> + + <p>SECURITY: See <a href="#user">User</a> for a discussion of + the security considerations.</p> + <hr /> + + <h2><a id="hostnamelookups" + name="hostnamelookups">HostnameLookups directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> HostnameLookups + on|off|double<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>HostnameLookups + off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> + <code>double</code> available only in Apache 1.3 and + above.<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Default was + <code>on</code> prior to Apache 1.3. + + <p>This directive enables DNS lookups so that host names can be + logged (and passed to CGIs/SSIs in <code>REMOTE_HOST</code>). + The value <code>double</code> refers to doing double-reverse + DNS. That is, after a reverse lookup is performed, a forward + lookup is then performed on that result. At least one of the ip + addresses in the forward lookup must match the original + address. (In "tcpwrappers" terminology this is called + <code>PARANOID</code>.)</p> + + <p>Regardless of the setting, when <a + href="mod_access.html">mod_access</a> is used for controlling + access by hostname, a double reverse lookup will be performed. + This is necessary for security. Note that the result of this + double-reverse isn't generally available unless you set + <code>HostnameLookups double</code>. For example, if only + <code>HostnameLookups on</code> and a request is made to an + object that is protected by hostname restrictions, regardless + of whether the double-reverse fails or not, CGIs will still be + passed the single-reverse result in + <code>REMOTE_HOST</code>.</p> + + <p>The default for this directive was previously + <code>on</code> in versions of Apache prior to 1.3. It was + changed to <code>off</code> in order to save the network + traffic for those sites that don't truly need the reverse + lookups done. It is also better for the end users because they + don't have to suffer the extra latency that a lookup entails. + Heavily loaded sites should leave this directive + <code>off</code>, since DNS lookups can take considerable + amounts of time. The utility <a + href="../programs/logresolve.html">logresolve</a>, provided in + the <em>/support</em> directory, can be used to look up host + names from logged IP addresses offline.</p> + <hr /> + + <h2><a id="identitycheck" name="identitycheck">IdentityCheck + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> IdentityCheck + on|off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>IdentityCheck + off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>This directive enables RFC1413-compliant logging of the + remote user name for each connection, where the client machine + runs identd or something similar. This information is logged in + the access log. <em>Boolean</em> is either <code>on</code> or + <code>off</code>.</p> + + <p>The information should not be trusted in any way except for + rudimentary usage tracking.</p> + + <p>Note that this can cause serious latency problems accessing + your server 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 /> + + <h2><a id="ifdefine" name="ifdefine"><IfDefine> + directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <IfDefine + [!]<em>parameter-name</em>> <em>...</em> + </IfDefine><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> None<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> all<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> <IfDefine> + is only available in 1.3.1 and later. + + <p>The <IfDefine <em>test</em>>...</IfDefine> + section is used to mark directives that are conditional. The + directives within an IfDefine section are only processed if the + <em>test</em> is true. If <em>test</em> is false, everything + between the start and end markers is ignored.</p> + + <p>The <em>test</em> in the <IfDefine> section directive + can be one of two forms:</p> + + <ul> + <li><em>parameter-name</em></li> + + <li><code>!</code><em>parameter-name</em></li> + </ul> + + <p>In the former case, the directives between the start and end + markers are only processed if the parameter named + <em>parameter-name</em> is defined. The second format reverses + the test, and only processes the directives if + <em>parameter-name</em> is <strong>not</strong> defined.</p> + + <p>The <em>parameter-name</em> argument is a define as given on + the <code>httpd</code> command line via + <code>-D</code><em>parameter-</em>, at the time the server was + started.</p> + + <p><IfDefine> sections are nest-able, which can be used + to implement simple multiple-parameter tests. Example:</p> +<pre> + $ httpd -DReverseProxy ... + + # httpd.conf + <IfDefine ReverseProxy> + LoadModule rewrite_module libexec/mod_rewrite.so + LoadModule proxy_module libexec/libproxy.so + </IfDefine> +</pre> + <hr /> + + <h2><a id="ifmodule" name="ifmodule"><IfModule> + directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <IfModule + [!]<em>module-name</em>> <em>...</em> + </IfModule><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> None<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> all<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> IfModule is only + available in 1.2 and later. + + <p>The <IfModule <em>test</em>>...</IfModule> + section is used to mark directives that are conditional. The + directives within an IfModule section are only processed if the + <em>test</em> is true. If <em>test</em> is false, everything + between the start and end markers is ignored.</p> + + <p>The <em>test</em> in the <IfModule> section directive + can be one of two forms:</p> + + <ul> + <li><em>module name</em></li> + + <li>!<em>module name</em></li> + </ul> + + <p>In the former case, the directives between the start and end + markers are only processed if the module named <em>module + name</em> is compiled in to Apache. The second format reverses + the test, and only processes the directives if <em>module + name</em> is <strong>not</strong> compiled in.</p> + + <p>The <em>module name</em> argument is a module name as given + as the file name of the module, at the time it was compiled. + For example, <code>mod_rewrite.c</code>.</p> + + <p><IfModule> sections are nest-able, which can be used + to implement simple multiple-module tests.</p> + <hr /> + + <h2><a id="include" name="include">Include directive</a></h2> + <strong>Syntax:</strong> Include + <em>file-path</em>|<em>directory-path</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Include is only + available in Apache 1.3 and later. + + <p>This directive allows inclusion of other configuration files + from within the server configuration files.</p> + + <p>New in Apache 1.3.13 is the feature that if + <code>Include</code> points to a directory, rather than a file, + Apache will read all files in that directory, and any + subdirectory, and parse those as configuration files.</p> + <hr /> + + <h2><a id="keepalive" name="keepalive">KeepAlive + directive</a></h2> + <strong>Syntax: (Apache 1.1)</strong> KeepAlive + <em>max-requests</em><br /> + <strong>Default: (Apache 1.1)</strong> <code>KeepAlive + 5</code><br /> + <strong>Syntax: (Apache 1.2)</strong> KeepAlive on|off<br /> + <strong>Default: (Apache 1.2)</strong> <code>KeepAlive + On</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> KeepAlive is + only available in Apache 1.1 and later. + + <p>The Keep-Alive extension to HTTP/1.0 and the persistent + connection feature of HTTP/1.1 provide long-lived HTTP sessions + which allow multiple requests to be sent over the same TCP + connection. In some cases this has been shown to result in an + almost 50% speedup in latency times for HTML documents with + many images. To enable Keep-Alive connections in Apache 1.2 and + later, set <code>KeepAlive On</code>.</p> + + <p>For HTTP/1.0 clients, Keep-Alive connections will only be + used if they are specifically requested by a client. In + addition, a Keep-Alive connection with an HTTP/1.0 client can + only be used when the length of the content is known in + advance. This implies that dynamic content such as CGI output, + SSI pages, and server-generated directory listings will + generally not use Keep-Alive connections to HTTP/1.0 clients. + For HTTP/1.1 clients, persistent connections are the default + unless otherwise specified. If the client requests it, chunked + encoding will be used in order to send content of unknown + length over persistent connections.</p> + + <p><strong>Apache 1.1 only</strong>: Set <em>max-requests</em> + to the maximum number of requests you want Apache to entertain + per connection. A limit is imposed to prevent a client from + hogging your server resources. Set this to <code>0</code> to + disable support. In Apache 1.2 and 1.3, this is controlled + through the MaxKeepAliveRequests directive instead.</p> + + <p>See also <a + href="#maxkeepaliverequests">MaxKeepAliveRequests</a>.</p> + <hr /> + + <h2><a id="keepalivetimeout" + name="keepalivetimeout">KeepAliveTimeout directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> KeepAliveTimeout + <em>seconds</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>KeepAliveTimeout + 15</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> KeepAliveTimeout + is only available in Apache 1.1 and later. + + <p>The number of seconds Apache will wait for a subsequent + request before closing the connection. Once a request has been + received, the timeout value specified by the <a + href="#timeout"><code>Timeout</code></a> directive applies.</p> + + <p>Setting <code>KeepAliveTimeout</code> to a high value may + cause performance problems in heavily loaded servers. The + higher the timeout, the more server processes will be kept + occupied waiting on connections with idle clients.</p> + <hr /> + + <h2><a id="limit" name="limit"><Limit> directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <Limit + <em>method</em> [<em>method</em>] ... > ... + </Limit><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> any<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>Access controls are normally effective for + <strong>all</strong> access methods, and this is the usual + desired behavior. <strong>In the general case, access control + directives should not be placed within a + <code><limit></code> section.</strong></p> + + <p>The purpose of the <Limit> directive is to restrict + the effect of the access controls to the nominated HTTP + methods. For all other methods, the access restrictions that + are enclosed in the <Limit> bracket <strong>will have no + effect</strong>. The following example applies the access + control only to the methods POST, PUT, and DELETE, leaving all + other methods unprotected:</p> + + <blockquote> + <code><Limit POST PUT DELETE><br /> + Require valid-user<br /> + </Limit></code> + </blockquote> + The method names listed can be one or more of: GET, POST, PUT, + DELETE, CONNECT, OPTIONS, TRACE, PATCH, PROPFIND, PROPPATCH, + MKCOL, COPY, MOVE, LOCK, and UNLOCK. <strong>The method name is + case-sensitive.</strong> If GET is used it will also restrict + HEAD requests. + <hr /> + + <h2><a id="limitexcept" name="limitexcept"><LimitExcept> + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <LimitExcept + <em>method</em> [<em>method</em>] ... > ... + </LimitExcept><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> any<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in + Apache 1.3.5 and later + + <p><LimitExcept> and </LimitExcept> are used to + enclose a group of access control directives which will then + apply to any HTTP access method <strong>not</strong> listed in + the arguments; <em>i.e.</em>, it is the opposite of a <a + href="#limit"><Limit></a> section and can be used to + control both standard and nonstandard/unrecognized methods. See + the documentation for <a href="#limit"><Limit></a> for + more details.</p> + <hr /> + + <h2><a id="limitrequestbody" + name="limitrequestbody">LimitRequestBody directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> LimitRequestBody + <em>bytes</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>LimitRequestBody + 0</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> LimitRequestBody + is only available in Apache 1.3.2 and later. + + <p>This directive specifies the number of <em>bytes</em> from 0 + (meaning unlimited) to 2147483647 (2GB) that are allowed in a + request body. The default value is defined by the compile-time + constant <code>DEFAULT_LIMIT_REQUEST_BODY</code> (0 as + distributed).</p> + + <p>The LimitRequestBody directive allows the user to set a + limit on the allowed size of an HTTP request message body + within the context in which the directive is given (server, + per-directory, per-file or per-location). If the client request + exceeds that limit, the server will return an error response + instead of servicing the request. The size of a normal request + message body will vary greatly depending on the nature of the + resource and the methods allowed on that resource. CGI scripts + typically use the message body for passing form information to + the server. Implementations of the PUT method will require a + value at least as large as any representation that the server + wishes to accept for that resource.</p> + + <p>This directive gives the server administrator greater + control over abnormal client request behavior, which may be + useful for avoiding some forms of denial-of-service + attacks.</p> + <hr /> + + <h2><a id="limitrequestfields" + name="limitrequestfields">LimitRequestFields directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> LimitRequestFields + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> + <code>LimitRequestFields 100</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> + LimitRequestFields is only available in Apache 1.3.2 and later. + + + <p><em>Number</em> is an integer from 0 (meaning unlimited) to + 32767. The default value is defined by the compile-time + constant <code>DEFAULT_LIMIT_REQUEST_FIELDS</code> (100 as + distributed).</p> + + <p>The LimitRequestFields directive allows the server + administrator to modify the limit on the number of request + header fields allowed in an HTTP request. A server needs this + value to be larger than the number of fields that a normal + client request might include. The number of request header + fields used by a client rarely exceeds 20, but this may vary + among different client implementations, often depending upon + the extent to which a user has configured their browser to + support detailed content negotiation. Optional HTTP extensions + are often expressed using request header fields.</p> + + <p>This directive gives the server administrator greater + control over abnormal client request behavior, which may be + useful for avoiding some forms of denial-of-service attacks. + The value should be increased if normal clients see an error + response from the server that indicates too many fields were + sent in the request.</p> + <hr /> + + <h2><a id="limitrequestfieldsize" + name="limitrequestfieldsize">LimitRequestFieldsize + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> LimitRequestFieldsize + <em>bytes</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> + <code>LimitRequestFieldsize 8190</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> + LimitRequestFieldsize is only available in Apache 1.3.2 and + later. + + <p>This directive specifies the number of <em>bytes</em> from 0 + to the value of the compile-time constant + <code>DEFAULT_LIMIT_REQUEST_FIELDSIZE</code> (8190 as + distributed) that will be allowed in an HTTP request + header.</p> + + <p>The LimitRequestFieldsize directive allows the server + administrator to reduce the limit on the allowed size of an + HTTP request header field below the normal input buffer size + compiled with the server. A server needs this value to be large + enough to hold any one header field from a normal client + request. The size of a normal request header field will vary + greatly among different client implementations, often depending + upon the extent to which a user has configured their browser to + support detailed content negotiation.</p> + + <p>This directive gives the server administrator greater + control over abnormal client request behavior, which may be + useful for avoiding some forms of denial-of-service attacks. + Under normal conditions, the value should not be changed from + the default.</p> + <hr /> + + <h2><a id="limitrequestline" + name="limitrequestline">LimitRequestLine directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> LimitRequestLine + <em>bytes</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>LimitRequestLine + 8190</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> LimitRequestLine + is only available in Apache 1.3.2 and later. + + <p>This directive sets the number of <em>bytes</em> from 0 to + the value of the compile-time constant + <code>DEFAULT_LIMIT_REQUEST_LINE</code> (8190 as distributed) + that will be allowed on the HTTP request-line.</p> + + <p>The LimitRequestLine directive allows the server + administrator to reduce the limit on the allowed size of a + client's HTTP request-line below the normal input buffer size + compiled with the server. Since the request-line consists of + the HTTP method, URI, and protocol version, the + LimitRequestLine directive places a restriction on the length + of a request-URI allowed for a request on the server. A server + needs this value to be large enough to hold any of its resource + names, including any information that might be passed in the + query part of a GET request.</p> + + <p>This directive gives the server administrator greater + control over abnormal client request behavior, which may be + useful for avoiding some forms of denial-of-service attacks. + Under normal conditions, the value should not be changed from + the default.</p> + <hr /> + + <h2><a id="listen" name="listen">Listen directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> Listen + [<em>IP-address</em>:]<em>port</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Listen is only + available in Apache 1.1 and later. + + <p>The Listen directive instructs Apache to listen to more than + one IP address or port; by default it responds to requests on + all IP interfaces, but only on the port given by the <code><a + href="#port">Port</a></code> directive.</p> + <tt>Listen</tt> can be used instead of <tt><a + href="#bindaddress">BindAddress</a></tt> and <tt>Port</tt>. It + tells the server to accept incoming requests on the specified + port or address-and-port combination. If the first format is + used, with a port number only, the server listens to the given + port on all interfaces, instead of the port given by the + <tt>Port</tt> directive. If an IP address is given as well as a + port, the server will listen on the given port and interface. + + <p>Note that you may still require a <tt>Port</tt> directive so + that URLs that Apache generates that point to your server still + work.</p> + + <p>Multiple Listen directives may be used to specify a number + of addresses and ports to listen to. The server will respond to + requests from any of the listed addresses and ports.</p> + + <p>For example, to make the server accept connections on both + port 80 and port 8000, use:</p> +<pre> + Listen 80 + Listen 8000 +</pre> + To make the server accept connections on two specified + interfaces and port numbers, use +<pre> + Listen 192.170.2.1:80 + Listen 192.170.2.5:8000 +</pre> + + <p><strong>See Also:</strong> <a href="../dns-caveats.html">DNS + Issues</a><br /> + <strong>See Also:</strong> <a href="../bind.html">Setting + which addresses and ports Apache uses</a><br /> + <strong>See Also:</strong> <a + href="http://www.apache.org/info/known_bugs.html#listenbug">Known + Bugs</a></p> + <hr /> + + <h2><a id="listenbacklog" name="listenbacklog">ListenBacklog + directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ListenBacklog + <em>backlog</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ListenBacklog + 511</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ListenBacklog is + only available in Apache versions after 1.2.0. + + <p>The maximum length of the queue of pending connections. + Generally no tuning is needed or desired, however on some + systems it is desirable to increase this when under a TCP SYN + flood attack. See the backlog parameter to the + <code>listen(2)</code> system call.</p> + + <p>This will often be limited to a smaller number by the + operating system. This varies from OS to OS. Also note that + many OSes do not use exactly what is specified as the backlog, + but use a number based on (but normally larger than) what is + set.</p> + <hr /> + + <h2><a id="location" name="location"><Location> + directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <Location + <em>URL-path</em>|<em>URL</em>> ... </Location><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Location is only + available in Apache 1.1 and later. + + <p>The <Location> directive provides for access control + by URL. It is similar to the <a + href="#directory"><Directory></a> directive, and starts a + subsection which is terminated with a </Location> + directive. <code><Location></code> sections are processed + in the order they appear in the configuration file, after the + <Directory> sections and <code>.htaccess</code> files are + read, and after the <Files> sections.</p> + + <p>Note that URLs do not have to line up with the filesystem at + all, it should be emphasized that <Location> operates + completely outside the filesystem.</p> + + <p>For all origin (non-proxy) requests, the URL to be matched + is of the form <code>/path/</code>, and you should not include + any <code>http://servername</code> prefix. For proxy requests, + the URL to be matched is of the form + <code>scheme://servername/path</code>, and you must include the + prefix.</p> + + <p>The URL may use wildcards In a wild-card string, `?' matches + any single character, and `*' matches any sequences of + characters.</p> + + <p><strong>Apache 1.2 and above:</strong> Extended regular + expressions can also be used, with the addition of the + <code>~</code> character. For example:</p> +<pre> + <Location ~ "/(extra|special)/data"> +</pre> + + <p>would match URLs that contained the substring "/extra/data" + or "/special/data". In Apache 1.3 and above, a new directive <a + href="#locationmatch"><LocationMatch></a> exists which + behaves identical to the regex version of + <code><Location></code>.</p> + + <p>The <code>Location</code> functionality is especially useful + when combined with the <code><a + href="mod_mime.html#sethandler">SetHandler</a></code> + directive. For example, to enable status requests, but allow + them only from browsers at foo.com, you might use:</p> +<pre> + <Location /status> + SetHandler server-status + Order Deny,Allow + Deny from all + Allow from .foo.com + </Location> +</pre> + + <p><strong>Apache 1.3 and above note about / (slash)</strong>: + The slash character has special meaning depending on where in a + URL it appears. People may be used to its behavior in the + filesystem where multiple adjacent slashes are frequently + collapsed to a single slash (<em>i.e.</em>, + <code>/home///foo</code> is the same as + <code>/home/foo</code>). In URL-space this is not necessarily + true. The <code><LocationMatch></code> directive and the + regex version of <code><Location></code> require you to + explicitly specify multiple slashes if that is your intention. + For example, <code><LocationMatch ^/abc></code> would + match the request URL <code>/abc</code> but not the request URL + <code>//abc</code>. The (non-regex) + <code><Location></code> directive behaves similarly when + used for proxy requests. But when (non-regex) + <code><Location></code> is used for non-proxy requests it + will implicitly match multiple slashes with a single slash. For + example, if you specify <code><Location /abc/def></code> + and the request is to <code>/abc//def</code> then it will + match.</p> + + <p><strong>See also</strong>: <a href="../sections.html">How + Directory, Location and Files sections work</a> for an + explanation of how these different sections are combined when a + request is received</p> + <hr /> + + <h2><a id="locationmatch" + name="locationmatch"><LocationMatch></a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <LocationMatch + <em>regex</em>> ... </LocationMatch><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> LocationMatch is + only available in Apache 1.3 and later. + + <p>The <LocationMatch> directive provides for access + control by URL, in an identical manner to <a + href="#location"><Location></a>. However, it takes a + regular expression as an argument instead of a simple string. + For example:</p> +<pre> + <LocationMatch "/(extra|special)/data"> +</pre> + + <p>would match URLs that contained the substring "/extra/data" + or "/special/data".</p> + <strong>See also</strong>: <a href="../sections.html">How + Directory, Location and Files sections work</a> for an + explanation of how these different sections are combined when a + request is received + <hr /> + + <h2><a id="lockfile" name="lockfile">LockFile + directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> LockFile + <em>file-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>LockFile + logs/accept.lock</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The LockFile directive sets the path to the lockfile used + when Apache is compiled with either USE_FCNTL_SERIALIZED_ACCEPT + or USE_FLOCK_SERIALIZED_ACCEPT. This directive should normally + be left at its default value. The main reason for changing it + is if the <code>logs</code> directory is NFS mounted, since + <strong>the lockfile must be stored on a local disk</strong>. + The PID of the main server process is automatically appended to + the filename.</p> + + <p><strong>SECURITY:</strong> It is best to avoid putting this + file in a world writable directory such as + <code>/var/tmp</code> because someone could create a denial of + service attack and prevent the server from starting by creating + a lockfile with the same name as the one the server will try to + create.</p> + <hr /> + + <h2><a id="loglevel" name="loglevel">LogLevel + directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> LogLevel + <em>level</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>LogLevel + warn</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> LogLevel is only + available in 1.3 or later. + + <p>LogLevel adjusts the verbosity of the messages recorded in + the error logs (see <a href="#errorlog">ErrorLog</a> + directive). The following <em>level</em>s are available, in + order of decreasing significance:</p> + + <table> + <tr> + <th align="LEFT"><strong>Level</strong> </th> + + <th align="LEFT"><strong>Description</strong> </th> + </tr> + + <tr> + <th> + </th> + + <th align="LEFT"><strong>Example</strong> </th> + </tr> + + <tr> + <td><code>emerg</code> </td> + + <td>Emergencies - system is unusable.</td> + </tr> + + <tr> + <td> + </td> + + <td>"Child cannot open lock file. Exiting"</td> + </tr> + + <tr> + <td><code>alert</code> </td> + + <td>Action must be taken immediately.</td> + </tr> + + <tr> + <td> + </td> + + <td>"getpwuid: couldn't determine user name from uid"</td> + </tr> + + <tr> + <td><code>crit</code> </td> + + <td>Critical Conditions.</td> + </tr> + + <tr> + <td> + </td> + + <td>"socket: Failed to get a socket, exiting child"</td> + </tr> + + <tr> + <td><code>error</code> </td> + + <td>Error conditions.</td> + </tr> + + <tr> + <td> + </td> + + <td>"Premature end of script headers"</td> + </tr> + + <tr> + <td><code>warn</code> </td> + + <td>Warning conditions.</td> + </tr> + + <tr> + <td> + </td> + + <td>"child process 1234 did not exit, sending another + SIGHUP"</td> + </tr> + + <tr> + <td><code>notice</code> </td> + + <td>Normal but significant condition.</td> + </tr> + + <tr> + <td> + </td> + + <td>"httpd: caught SIGBUS, attempting to dump core in + ..."</td> + </tr> + + <tr> + <td><code>info</code> </td> + + <td>Informational.</td> + </tr> + + <tr> + <td> + </td> + + <td>"Server seems busy, (you may need to increase + StartServers, or Min/MaxSpareServers)..."</td> + </tr> + + <tr> + <td><code>debug</code> </td> + + <td>Debug-level messages</td> + </tr> + + <tr> + <td> + </td> + + <td>"Opening config file ..."</td> + </tr> + </table> + + <p>When a particular level is specified, messages from all + other levels of higher significance will be reported as well. + <em>E.g.</em>, when <code>LogLevel info</code> is specified, + then messages with log levels of <code>notice</code> and + <code>warn</code> will also be posted.</p> + + <p>Using a level of at least <code>crit</code> is + recommended.</p> + <hr /> + + <h2><a id="maxclients" name="maxclients">MaxClients + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> MaxClients + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>MaxClients + 256</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The MaxClients directive sets the limit on the number of + simultaneous requests that can be supported; not more than this + number of child server processes will be created. To configure + more than 256 clients, you must edit the HARD_SERVER_LIMIT + entry in httpd.h and recompile.</p> + + <p>Any connection attempts over the MaxClients limit will + normally be queued, up to a number based on the <a + href="#listenbacklog">ListenBacklog</a> directive. Once a child + process is freed at the end of a different request, the + connection will then be serviced.</p> + <hr /> + + <h2><a id="maxkeepaliverequests" + name="maxkeepaliverequests">MaxKeepAliveRequests + directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> MaxKeepAliveRequests + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> + <code>MaxKeepAliveRequests 100</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Only available + in Apache 1.2 and later. + + <p>The MaxKeepAliveRequests directive limits the number of + requests 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. In Apache 1.1, this is controlled through + an option to the KeepAlive directive.</p> + <hr /> + + <h2><a id="maxrequestsperchild" + name="maxrequestsperchild">MaxRequestsPerChild + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> MaxRequestsPerChild + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> + <code>MaxRequestsPerChild 0</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The MaxRequestsPerChild directive sets the limit on the + number of requests that an individual child server process will + handle. After MaxRequestsPerChild requests, the child process + will die. If MaxRequestsPerChild is 0, then the process will + never expire.</p> + + <p>Setting MaxRequestsPerChild to a non-zero limit has two + beneficial effects:</p> + + <ul> + <li>it limits the amount of memory that process can consume + by (accidental) memory leakage;</li> + + <li>by giving processes a finite lifetime, it helps reduce + the number of processes when the server load reduces.</li> + </ul> + + <p>However, on Win32, It is recommended that this be set to 0. + If it is set to a non-zero value, when the request count is + reached, the child process exits, and is respawned, at which + time it re-reads the configuration files. This can lead to + unexpected behavior if you have modified a configuration file, + but are not expecting the changes to be applied yet. See also + <a href="#threadsperchild">ThreadsPerChild</a>.</p> + + <p><strong>NOTE:</strong> For <em>KeepAlive</em> requests, only + the first request is counted towards this limit. In effect, it + changes the behavior to limit the number of + <em>connections</em> per child.</p> + <hr /> + + <h2><a id="maxspareservers" + name="maxspareservers">MaxSpareServers directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> MaxSpareServers + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>MaxSpareServers + 10</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The MaxSpareServers directive sets the desired maximum + number of <em>idle</em> child server processes. An idle process + is one which is not handling a request. If there are more than + MaxSpareServers idle, then the parent process will kill off the + excess processes.</p> + + <p>Tuning of this parameter should only be necessary on very + busy sites. Setting this parameter to a large number is almost + always a bad idea.</p> + + <p>Note that this is the maximum number of <em>spare</em> servers, + not the maximum total number of client requests that can be handled + at one time. If you wish to limit that number, see the <a + href="#maxclients">MaxClients</a> directive.</p> + + <p>This directive has no effect when used with the Apache Web + server on a Microsoft Windows platform.</p> + + <p>See also <a href="#minspareservers">MinSpareServers</a>, + <a href="#startservers">StartServers</a>, and <a + href="#maxclients">MaxClients</a>.</p> + <hr /> + + <h2><a id="minspareservers" + name="minspareservers">MinSpareServers directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> MinSpareServers + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>MinSpareServers + 5</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The MinSpareServers directive sets the desired minimum + number of <em>idle</em> child server processes. An idle process + is one which is not handling a request. If there are fewer than + MinSpareServers idle, then the parent process creates new + children at a maximum rate of 1 per second.</p> + + <p>Tuning of this parameter should only be necessary on very + busy sites. Setting this parameter to a large number is almost + always a bad idea.</p> + + <p>Note that setting this directive to some value <i>m</i> ensures + that you will always have at least <i>n + m</i> <code>httpd</code> + processes running when you have <i>n</i> active client requests.</p> + + <p>This directive has no effect on Microsoft Windows.</p> + + <p>See also <a href="#maxspareservers">MaxSpareServers</a>, + <a href="#startservers">StartServers</a>, and <a + href="#maxclients">MaxClients</a>.</p> + <hr /> + + <h2><a id="namevirtualhost" + name="namevirtualhost">NameVirtualHost directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> NameVirtualHost + <em>addr</em>[:<em>port</em>]<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> NameVirtualHost + is only available in Apache 1.3 and later + + <p>The NameVirtualHost directive is a required directive if you + want to configure <a href="../vhosts/">name-based virtual + hosts</a>.</p> + + <p>Although <em>addr</em> can be hostname it is recommended + that you always use an IP address or wildcard, + <em>e.g.</em></p> + + <blockquote> + <code>NameVirtualHost 111.22.33.44</code> + </blockquote> + With the NameVirtualHost directive you specify the IP address + on which the server will receive requests for the name-based + virtual hosts. This will usually be the address to which your + name-based virtual host names resolve. In cases where a + firewall or other proxy receives the requests and forwards them + on a different IP address to the server, you must specify the + IP address of the physical interface on the machine which will + be servicing the requests. If you have multiple name-based + hosts on multiple addresses, repeat the directive for each + address. + + <p>Note: the "main server" and any _default_ servers will + <strong>never</strong> be served for a request to a + NameVirtualHost IP Address (unless for some reason you specify + NameVirtualHost but then don't define any VirtualHosts for that + address).</p> + + <p>Optionally you can specify a port number on which the + name-based virtual hosts should be used, <em>e.g.</em></p> + + <blockquote> + <code>NameVirtualHost 111.22.33.44:8080</code> + </blockquote> + In Apache 1.3.13 and greater you can specify a <code>*</code> + for the <em>addr</em>. This creates a wildcard NameVirtualHost + which will match connections to any address that isn't + configured with a more specific NameVirtualHost directive or <a + href="#virtualhost"><VirtualHost></a> section. This is + useful if you want only name-based virtual hosts and you don't + want to hard-code the server's IP address into the + configuration file. + + <p><strong>See also:</strong> <a href="../vhosts/">Apache + Virtual Host documentation</a></p> + <hr /> + + <h2><a id="options" name="options">Options directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> Options + [+|-]<em>option</em> [[+|-]<em>option</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> Options<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The Options directive controls which server features are + available in a particular directory.</p> + + <p><em>option</em> can be set to <code>None</code>, in which + case none of the extra features are enabled, or one or more of + the following:</p> + + <dl> + <dt>All</dt> + + <dd>All options except for MultiViews. This is the default + setting.</dd> + + <dt>ExecCGI</dt> + + <dd> + Execution of CGI scripts is permitted.</dd> + + <dt>FollowSymLinks</dt> + + <dd> + + The server will follow symbolic links in this + directory.<br /> + <strong>Note</strong>: even though the server follows the + symlink it does <em>not</em> change the pathname used to + match against <code><Directory></code> sections.<br /> + <strong>Note</strong>: this option gets ignored if set + inside a <Location> section.</dd> + + <dt>Includes</dt> + + <dd> + Server-side includes are permitted.</dd> + + <dt>IncludesNOEXEC</dt> + + <dd> + + Server-side includes are permitted, but the #exec command and + #exec CGI are disabled. It is still possible to #include + virtual CGI scripts from ScriptAliase'd directories.</dd> + + <dt>Indexes</dt> + + <dd> + If a URL which maps to a directory is requested, and the + there is no DirectoryIndex (<em>e.g.</em>, index.html) in + that directory, then the server will return a formatted + listing of the directory.</dd> + + <dt>MultiViews</dt> + + <dd> + <a href="../content-negotiation.html">Content negotiated</a> + MultiViews are allowed.</dd> + + <dt>SymLinksIfOwnerMatch</dt> + + <dd> + + The server will only follow symbolic links for which the + target file or directory is owned by the same user id as the + link.<br /> + <strong>Note</strong>: this option gets ignored if set + inside a <Location> section.</dd> + </dl> + Normally, if multiple <code>Options</code> could apply to a + directory, then the most specific one is taken complete; the + options are not merged. However if <em>all</em> the options on + the <code>Options</code> directive are preceded by a + or - + symbol, the options are merged. Any options preceded by a + are + added to the options currently in force, and any options + preceded by a - are removed from the options currently in + force. + + <p>For example, without any + and - symbols:</p> + + <blockquote> + <code><Directory /web/docs><br /> + Options Indexes FollowSymLinks<br /> + </Directory><br /> + <Directory /web/docs/spec><br /> + Options Includes<br /> + </Directory></code> + </blockquote> + then only <code>Includes</code> will be set for the + /web/docs/spec directory. However if the second + <code>Options</code> directive uses the + and - symbols: + + <blockquote> + <code><Directory /web/docs><br /> + Options Indexes FollowSymLinks<br /> + </Directory><br /> + <Directory /web/docs/spec><br /> + Options +Includes -Indexes<br /> + </Directory></code> + </blockquote> + then the options <code>FollowSymLinks</code> and + <code>Includes</code> are set for the /web/docs/spec directory. + + + <p><strong>Note:</strong> Using <code>-IncludesNOEXEC</code> or + <code>-Includes</code> disables server-side includes completely + regardless of the previous setting.</p> + + <p>The default in the absence of any other settings is + <code>All</code>.</p> + <hr /> + + <h2><a id="pidfile" name="pidfile">PidFile directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> PidFile + <em>file-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>PidFile + logs/httpd.pid</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The PidFile directive sets the file to which the server + records the process id of the daemon. If the filename does not + begin with a slash (/) then it is assumed to be relative to the + <a href="#serverroot">ServerRoot</a>. The PidFile is only used + in <a href="#servertype">standalone</a> mode.</p> + + <p>It is often useful to be able to send the server a signal, + so that it closes and then reopens its <a + href="#errorlog">ErrorLog</a> and TransferLog, and re-reads its + configuration files. This is done by sending a SIGHUP (kill -1) + signal to the process id listed in the PidFile.</p> + + <p>The PidFile is subject to the same warnings about log file + placement and <a + href="../misc/security_tips.html#serverroot">security</a>.</p> + <hr /> + + <h2><a id="port" name="port">Port directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> Port + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>Port + 80</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p><em>Number</em> is a number from 0 to 65535; some port + numbers (especially below 1024) are reserved for particular + protocols. See <code>/etc/services</code> for a list of some + defined ports; the standard port for the http protocol is + 80.</p> + + <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> + + <ul> + <li>In the absence of any <a href="#listen">Listen</a> or <a + href="#bindaddress">BindAddress</a> directives specifying a + port number, a Port directive given in the "main server" + (<em>i.e.</em>, outside any <a + href="#virtualhost"><VirtualHost></a> section) sets the + network port on which the server listens. If there are any + Listen or BindAddress directives specifying + <code>:number</code> then Port has no effect on what address + the server listens at.</li> + + <li>The Port directive sets the <code>SERVER_PORT</code> + environment variable (for <a href="mod_cgi.html">CGI</a> and + <a href="mod_include.html">SSI</a>), and is used when the + server must generate a URL that refers to itself (for example + when creating an external redirect to itself). This behavior + is modified by <a + href="#usecanonicalname">UseCanonicalName</a>.</li> + </ul> + The primary behavior of Port should be considered to be + similar to that of the <a href="#servername">ServerName</a> + directive. The ServerName and Port together specify what you + consider to be the <em>canonical</em> address of the server. + (See also <a href="#usecanonicalname">UseCanonicalName</a>.) + + <p>Port 80 is one of Unix's special ports. All ports numbered + below 1024 are reserved for system use, <em>i.e.</em>, regular + (non-root) users cannot make use of them; instead they can only + use higher port numbers. To use port 80, you must start the + server from the root account. After binding to the port and + before accepting requests, Apache will change to a low + privileged user as set by the <a href="#user">User + directive</a>.</p> + + <p>If you cannot use port 80, choose any other unused port. + Non-root users will have to choose a port number higher than + 1023, such as 8000.</p> + + <p>SECURITY: if you do start the server as root, be sure not to + set <a href="#user">User</a> to root. If you run the server as + root whilst handling connections, your site may be open to a + major security attack.</p> + <hr /> + + <h2><a id="require" name="require">Require directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> Require + <em>entity-name</em> [<em>entity-name</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> AuthConfig<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>This directive selects which authenticated users can access + a directory. The allowed syntaxes are:</p> + + <ul> + <li> + Require user <em>userid</em> [<em>userid</em>] ... + + <p>Only the named users can access the directory.</p> + </li> + + <li> + Require group <em>group-name</em> [<em>group-name</em>] ... + + + <p>Only users in the named groups can access the + directory.</p> + </li> + + <li> + Require valid-user + + <p>All valid users can access the directory.</p> + </li> + </ul> + + <p>Require must be accompanied by <a + href="#authname">AuthName</a> and <a + href="#authtype">AuthType</a> directives, and directives such + as <a href="mod_auth.html#authuserfile">AuthUserFile</a> and <a + href="mod_auth.html#authgroupfile">AuthGroupFile</a> (to define + users and groups) in order to work correctly. Example:</p> + + <blockquote> + <code>AuthType Basic<br /> + AuthName "Restricted Directory"<br /> + AuthUserFile /web/users<br /> + AuthGroupFile /web/groups<br /> + Require group admin<br /> + </code> + </blockquote> + Access controls which are applied in this way are effective for + <strong>all</strong> methods. <strong>This is what is normally + desired.</strong> If you wish to apply access controls only to + specific methods, while leaving other methods unprotected, then + place the <code>Require</code> statement into a <a + href="#limit"><Limit></a> section + + <p>See also <a href="#satisfy">Satisfy</a> and <a + href="mod_access.html">mod_access</a>.</p> + <hr /> + + <h2><a id="resourceconfig" name="resourceconfig">ResourceConfig + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ResourceConfig + <em>file-path</em>|<em>directory-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ResourceConfig + conf/srm.conf</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core <br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> The ability to + specify a directory, rather than a file name, is only available in + Apache 1.3.13 and later. + + <p>The server will read this file for more directives after + reading the httpd.conf file. <em>File-path</em> is relative to + the <a href="#serverroot">ServerRoot</a>. This feature can be + disabled using:</p> + + <blockquote> + <code>ResourceConfig /dev/null</code> + </blockquote> + Or, on Win32 servers, + + <blockquote> + <code>ResourceConfig nul</code> + </blockquote> + <p>Historically, this file contained most directives except for + server configuration directives and <a + href="#directory"><Directory></a> sections; in fact it + can now contain any server directive allowed in the <em>server + config</em> context. However, since Apache version 1.3.4, the + default <code>srm.conf</code> file which ships with Apache contains + only comments, and all directives are placed in the main server + configuration file, <code>httpd.conf</code>.</p> + + <p>If <code>ResourceConfig</code> points to a directory, rather than + a file, Apache will read all files in that directory, and any + subdirectory, and parse those as configuration files. Note that + <emph>any</emph> file in the specified directory will be loaded as a + configuration file, so make sure that you don't have any stray files + in this directory by mistake, such as temporary files created by + your editor, for example.</p> + + <p>See also <a href="#accessconfig">AccessConfig</a>.</p> + <hr /> + + <h2><a id="rlimit" name="rlimit">RLimitCPU</a> <a + id="rlimitcpu" name="rlimitcpu">directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RLimitCPU + <em>number</em>|max [<em>number</em>|max] <br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>Unset; uses + operating system defaults</em> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> RLimitCPU is + only available in Apache 1.2 and later + + <p>Takes 1 or 2 parameters. The first parameter sets the soft + resource limit for all processes and the second parameter sets + the maximum resource limit. Either parameter can be a number, + or <code>max</code> to indicate to the server that the limit + should be set to the maximum allowed by the operating system + configuration. Raising the maximum resource limit requires that + the server is running as root, or in the initial startup + phase.</p> + + <p>This applies to processes forked off from Apache children + servicing requests, not the Apache children themselves. This + includes CGI scripts and SSI exec commands, but not any + processes forked off from the Apache parent such as piped + logs.</p> + + <p>CPU resource limits are expressed in seconds per + process.</p> + + <p>See also <a href="#rlimitmem">RLimitMEM</a> or <a + href="#rlimitnproc">RLimitNPROC</a>.</p> + <hr /> + + <h2><a id="rlimitmem" name="rlimitmem">RLimitMEM + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RLimitMEM + <em>number</em>|max [<em>number</em>|max]<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>Unset; uses + operating system defaults</em> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> RLimitMEM is + only available in Apache 1.2 and later + + <p>Takes 1 or 2 parameters. The first parameter sets the soft + resource limit for all processes and the second parameter sets + the maximum resource limit. Either parameter can be a number, + or <code>max</code> to indicate to the server that the limit + should be set to the maximum allowed by the operating system + configuration. Raising the maximum resource limit requires that + the server is running as root, or in the initial startup + phase.</p> + + <p>This applies to processes forked off from Apache children + servicing requests, not the Apache children themselves. This + includes CGI scripts and SSI exec commands, but not any + processes forked off from the Apache parent such as piped + logs.</p> + + <p>Memory resource limits are expressed in bytes per + process.</p> + + <p>See also <a href="#rlimitcpu">RLimitCPU</a> or <a + href="#rlimitnproc">RLimitNPROC</a>.</p> + <hr /> + + <h2><a id="rlimitnproc" name="rlimitnproc">RLimitNPROC + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RLimitNPROC + <em>number</em>|max [<em>number</em>|max]<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>Unset; uses + operating system defaults</em> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> RLimitNPROC is + only available in Apache 1.2 and later + + <p>Takes 1 or 2 parameters. The first parameter sets the soft + resource limit for all processes and the second parameter sets + the maximum resource limit. Either parameter can be a number, + or <code>max</code> to indicate to the server that the limit + should be set to the maximum allowed by the operating system + configuration. Raising the maximum resource limit requires that + the server is running as root, or in the initial startup + phase.</p> + + <p>This applies to processes forked off from Apache children + servicing requests, not the Apache children themselves. This + includes CGI scripts and SSI exec commands, but not any + processes forked off from the Apache parent such as piped + logs.</p> + + <p>Process limits control the number of processes per user.</p> + + <p>Note: If CGI processes are <strong>not</strong> running + under userids other than the web server userid, this directive + will limit the number of processes that the server itself can + create. Evidence of this situation will be indicated by + <strong><em>cannot fork</em></strong> messages in the + error_log.</p> + + <p>See also <a href="#rlimitmem">RLimitMEM</a> or <a + href="#rlimitcpu">RLimitCPU</a>.</p> + <hr /> + + <h2><a id="satisfy" name="satisfy">Satisfy directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> Satisfy any|all<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> Satisfy all<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Satisfy is only + available in Apache 1.2 and later + + <p>Access policy if both <code>Allow</code> and + <code>Require</code> used. The parameter can be either + <em>'all'</em> or <em>'any'</em>. This directive is only useful + if access to a particular area is being restricted by both + username/password <em>and</em> client host address. In this + case the default behavior ("all") is to require that the client + passes the address access restriction <em>and</em> enters a + valid username and password. With the "any" option the client + will be granted access if they either pass the host restriction + or enter a valid username and password. This can be used to + password restrict an area, but to let clients from particular + addresses in without prompting for a password.</p> + + <p>See also <a href="#require">Require</a> and <a + href="mod_access.html#allow">Allow</a>.</p> + <hr /> + + <h2><a id="scoreboardfile" name="scoreboardfile">ScoreBoardFile + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ScoreBoardFile + <em>file-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ScoreBoardFile + logs/apache_status</code> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The ScoreBoardFile directive is required on some + architectures to place a file that the server will use to + communicate between its children and the parent. The easiest + way to find out if your architecture requires a scoreboard file + is to run Apache and see if it creates the file named by the + directive. If your architecture requires it then you must + ensure that this file is not used at the same time by more than + one invocation of Apache.</p> + + <p>If you have to use a ScoreBoardFile then you may see + improved speed by placing it on a RAM disk. But be careful that + you heed the same warnings about log file placement and <a + href="../misc/security_tips.html">security</a>.</p> + + <p>Apache 1.2 and above:</p> + + <p>Linux 1.x users might be able to add <code>-DHAVE_SHMGET + -DUSE_SHMGET_SCOREBOARD</code> to the <code>EXTRA_CFLAGS</code> + in your <code>Configuration</code>. This might work with some + 1.x installations, but won't work with all of them. (Prior to + 1.3b4, <code>HAVE_SHMGET</code> would have sufficed.)</p> + + <p>SVR4 users should consider adding <code>-DHAVE_SHMGET + -DUSE_SHMGET_SCOREBOARD</code> to the <code>EXTRA_CFLAGS</code> + in your <code>Configuration</code>. This is believed to work, + but we were unable to test it in time for 1.2 release. (Prior + to 1.3b4, <code>HAVE_SHMGET</code> would have sufficed.)</p> + + <p><strong>See Also</strong>: <a + href="../stopping.html">Stopping and Restarting Apache</a></p> + <hr /> + + <h2><a id="scriptinterpretersource" + name="scriptinterpretersource">ScriptInterpreterSource + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ScriptInterpreterSource + registry|script<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> + <code>ScriptInterpreterSource script</code> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core (Windows only) + + <p>This directive is used to control how Apache 1.3.5 and later + finds the interpreter used to run CGI scripts. The default + technique is to use the interpreter pointed to by the #! line + in the script. Setting ScriptInterpreterSource registry will + cause the Windows Registry to be searched using the script file + extension (e.g., .pl) as a search key.</p> + <hr /> + + <h2><a id="sendbuffersize" name="sendbuffersize">SendBufferSize + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> SendBufferSize + <em>bytes</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The server will set the TCP buffer size to the number of + bytes specified. Very useful to increase past standard OS + defaults on high speed high latency (<em>i.e.</em>, 100ms or + so, such as transcontinental fast pipes)</p> + <hr /> + + <h2><a id="serveradmin" name="serveradmin">ServerAdmin + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ServerAdmin + <em>email-address</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The ServerAdmin sets the e-mail address that the server + includes in any error messages it returns to the client.</p> + + <p>It may be worth setting up a dedicated address for this, + <em>e.g.</em></p> + + <blockquote> + <code>ServerAdmin www-admin@foo.bar.com</code> + </blockquote> + as users do not always mention that they are talking about the + server! + <hr /> + + <h2><a id="serveralias" name="serveralias">ServerAlias + directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ServerAlias + <em>hostname</em> [<em>hostname</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> virtual host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ServerAlias is + only available in Apache 1.1 and later. + + <p>The ServerAlias directive sets the alternate names for a + host, for use with <a + href="../vhosts/name-based.html">name-based virtual + hosts</a>.</p> + + <p><strong>See also:</strong> <a href="../vhosts/">Apache + Virtual Host documentation</a></p> + <hr /> + + <h2><a id="servername" name="servername">ServerName + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ServerName + <em>fully-qualified-domain-name</em> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The ServerName directive sets the hostname of the server; + this is used when creating redirection URLs. If it is not + specified, then the server attempts to deduce it from its own + IP address; however this may not work reliably, or may not + return the preferred hostname. For example:</p> + + <blockquote> + <code>ServerName www.example.com</code> + </blockquote> + would be used if the canonical (main) name of the actual + machine were <code>simple.example.com</code>. + + <p>If you are using <a + href="../vhosts/name-based.html">name-based virtual hosts</a>, + the <code>ServerName</code> inside a <a + href="#virtualhost"><code><VirtualHost></code></a> + section specifies what hostname must appear in the request's + <code>Host:</code> header to match this virtual host.</p> + + <p><strong>See Also</strong>:<br /> + <a href="../dns-caveats.html">DNS Issues</a><br /> + <a href="../vhosts/">Apache virtual host + documentation</a><br /> + <a href="#usecanonicalname">UseCanonicalName</a><br /> + <a href="#namevirtualhost">NameVirtualHost</a><br /> + <a href="#serveralias">ServerAlias</a><br /> + </p> + <hr /> + + <h2><a id="serverpath" name="serverpath">ServerPath + directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ServerPath + <em>directory-path</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> virtual host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ServerPath is + only available in Apache 1.1 and later. + + <p>The ServerPath directive sets the legacy URL pathname for a + host, for use with <a href="../vhosts/">name-based virtual + hosts</a>.</p> + + <p><strong>See also:</strong> <a href="../vhosts/">Apache + Virtual Host documentation</a></p> + <hr /> + + <h2><a id="serverroot" name="serverroot">ServerRoot + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ServerRoot + <em>directory-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ServerRoot + /usr/local/apache</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The ServerRoot directive sets the directory in which the + server lives. Typically it will contain the subdirectories + <code>conf/</code> and <code>logs/</code>. Relative paths for + other configuration files are taken as relative to this + directory.</p> + + <p>See also <a href="../invoking.html">the <code>-d</code> + option to httpd</a>.</p> + + <p>See also <a href="../misc/security_tips.html#serverroot">the + security tips</a> for information on how to properly set + permissions on the ServerRoot.</p> + <hr /> + + <h2><a id="serversignature" + name="serversignature">ServerSignature directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ServerSignature + On|Off|EMail<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ServerSignature + Off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ServerSignature + is only available in Apache 1.3 and later. + + <p>The ServerSignature directive allows the configuration of a + trailing footer line under server-generated documents (error + messages, mod_proxy ftp directory listings, mod_info output, + ...). The reason why you would want to enable such a footer + line is that in a chain of proxies, the user often has no + possibility to tell which of the chained servers actually + produced a returned error message.<br /> + The <samp>Off</samp> setting, which is the default, suppresses + the error line (and is therefore compatible with the behavior + of Apache-1.2 and below). The <samp>On</samp> setting simply + adds a line with the server version number and <a + href="#servername">ServerName</a> of the serving virtual host, + and the <samp>EMail</samp> setting additionally creates a + "mailto:" reference to the <a + href="#serveradmin">ServerAdmin</a> of the referenced + document.</p> + <hr /> + + <h2><a id="servertokens" name="servertokens">ServerTokens + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ServerTokens + Minimal|ProductOnly|OS|Full<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ServerTokens + Full</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config <br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ServerTokens is + only available in Apache 1.3 and later; the + <code>ProductOnly</code> keyword is only available in versions + later than 1.3.12 + + <p>This directive controls whether <samp>Server</samp> response + header field which is sent back to clients includes a + description of the generic OS-type of the server as well as + information about compiled-in modules.</p> + + <dl> + <dt><code>ServerTokens Prod[uctOnly]</code></dt> + + <dd>Server sends (<em>e.g.</em>): <samp>Server: + Apache</samp></dd> + + <dt><code>ServerTokens Min[imal]</code></dt> + + <dd>Server sends (<em>e.g.</em>): <samp>Server: + Apache/1.3.0</samp></dd> + + <dt><code>ServerTokens OS</code></dt> + + <dd>Server sends (<em>e.g.</em>): <samp>Server: Apache/1.3.0 + (Unix)</samp></dd> + + <dt><code>ServerTokens Full</code> (or not specified)</dt> + + <dd>Server sends (<em>e.g.</em>): <samp>Server: Apache/1.3.0 + (Unix) PHP/3.0 MyMod/1.2</samp></dd> + </dl> + + <p>This setting applies to the entire server, and cannot be + enabled or disabled on a virtualhost-by-virtualhost basis.</p> + <hr /> + + <h2><a id="servertype" name="servertype">ServerType + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ServerType + <em>type</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ServerType + standalone</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The ServerType directive sets how the server is executed by + the system. <em>Type</em> is one of</p> + + <dl> + <dt>inetd</dt> + + <dd>The server will be run from the system process inetd; the + command to start the server is added to + <code>/etc/inetd.conf</code></dd> + + <dt>standalone</dt> + + <dd>The server will run as a daemon process; the command to + start the server is added to the system startup scripts. + (<code>/etc/rc.local</code> or + <code>/etc/rc3.d/...</code>.)</dd> + </dl> + Inetd is the lesser used of the two options. For each http + connection received, a new copy of the server is started from + scratch; after the connection is complete, this program exits. + There is a high price to pay per connection, but for security + reasons, some admins prefer this option. <font + color="red">Inetd mode is no longer recommended and does not + always work properly. Avoid it if at all possible.</font> + + <p>Standalone is the most common setting for ServerType since + it is far more efficient. The server is started once, and + services all subsequent connections. If you intend running + Apache to serve a busy site, standalone will probably be your + only option.</p> + <hr /> + + <h2><a id="startservers" name="startservers">StartServers + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> StartServers + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>StartServers + 5</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The StartServers directive sets the number of child server + processes created on startup. As the number of processes is + dynamically controlled depending on the load, there is usually + little reason to adjust this parameter.</p> + + <p>When running under Microsoft Windows, this directive has no + effect. There is always one child which handles all requests. + Within the child requests are handled by separate threads. The + <a href="#threadsperchild">ThreadsPerChild</a> directive + controls the maximum number of child threads handling requests, + which will have a similar effect to the setting of + <samp>StartServers</samp> on Unix.</p> + + <p>See also <a href="#minspareservers">MinSpareServers</a> and + <a href="#maxspareservers">MaxSpareServers</a>.</p> + <hr /> + + <h2><a id="threadsperchild" + name="threadsperchild">ThreadsPerChild</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ThreadsPerChild + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ThreadsPerChild + 50</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core (Windows, + NetWare)<br /> + <strong>Compatibility:</strong> Available only with Apache 1.3 + and later with Windows + + <p>This directive tells the server how many threads it should + use. This is the maximum number of connections the server can + handle at once; be sure and set this number high enough for + your site if you get a lot of hits.</p> + + <p>This directive has no effect on Unix systems. Unix users + should look at <a href="#startservers">StartServers</a> and <a + href="#maxrequestsperchild">MaxRequestsPerChild</a>.</p> + <hr /> + + <h2><a id="threadstacksize" + name="threadstacksize">ThreadStackSize</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ThreadStackSize + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ThreadStackSize + 65536</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core (NetWare)<br /> + <strong>Compatibility:</strong> Available only with Apache 1.3 + and later with NetWare + + <p>This directive tells the server what stack size to use for + each of the running threads. If you ever get a stack overflow + you will need to bump this number to a higher setting.</p> + + <p>This directive has no effect on other systems.</p> + <hr /> + + <h2><a id="timeout" name="timeout">TimeOut directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> TimeOut + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>TimeOut + 300</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The TimeOut directive currently defines the amount of time + Apache will wait for three things:</p> + + <ol> + <li>The total amount of time it takes to receive a GET + request.</li> + + <li>The amount of time between receipt of TCP packets on a + POST or PUT request.</li> + + <li>The amount of time between ACKs on transmissions of TCP + packets in responses.</li> + </ol> + We plan on making these separately configurable at some point + down the road. The timer used to default to 1200 before 1.2, + but has been lowered to 300 which is still far more than + necessary in most situations. It is not set any lower by + default because there may still be odd places in the code where + the timer is not reset when a packet is sent. + <hr /> + + <h2><a id="usecanonicalname" + name="usecanonicalname">UseCanonicalName directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> UseCanonicalName + on|off|dns<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>UseCanonicalName + on</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> Options<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> UseCanonicalName + is only available in Apache 1.3 and later + + <p>In many situations Apache has to construct a + <em>self-referential</em> URL. That is, a URL which refers back + to the same server. With <code>UseCanonicalName on</code> (and + in all versions prior to 1.3) Apache will use the <a + href="#servername">ServerName</a> and <a href="#port">Port</a> + directives to construct a canonical name for the server. This + name is used in all self-referential URLs, and for the values + of <code>SERVER_NAME</code> and <code>SERVER_PORT</code> in + CGIs.</p> + + <p>With <code>UseCanonicalName off</code> Apache will form + self-referential URLs using the hostname and port supplied by + the client if any are supplied (otherwise it will use the + canonical name). These values are the same that are used to + implement <a href="../vhosts/name-based.html">name based + virtual hosts</a>, and are available with the same clients. The + CGI variables <code>SERVER_NAME</code> and + <code>SERVER_PORT</code> will be constructed from the client + supplied values as well.</p> + + <p>An example where this may be useful is on an intranet server + where you have users connecting to the machine using short + names such as <code>www</code>. You'll notice that if the users + type a shortname, and a URL which is a directory, such as + <code>http://www/splat</code>, <em>without the trailing + slash</em> then Apache will redirect them to + <code>http://www.domain.com/splat/</code>. If you have + authentication enabled, this will cause the user to have to + reauthenticate twice (once for <code>www</code> and once again + for <code>www.domain.com</code>). But if + <code>UseCanonicalName</code> is set off, then Apache will + redirect to <code>http://www/splat/</code>.</p> + + <p>There is a third option, <code>UseCanonicalName DNS</code>, + which is intended for use with mass IP-based virtual hosting to + support ancient clients that do not provide a + <code>Host:</code> header. With this option Apache does a + reverse DNS lookup on the server IP address that the client + connected to in order to work out self-referential URLs.</p> + + <p><strong>Warning:</strong> if CGIs make assumptions about the + values of <code>SERVER_NAME</code> they may be broken by this + option. The client is essentially free to give whatever value + they want as a hostname. But if the CGI is only using + <code>SERVER_NAME</code> to construct self-referential URLs + then it should be just fine.</p> + + <p><strong>See also:</strong> <a + href="#servername">ServerName</a>, <a href="#port">Port</a></p> + <hr /> + + <h2><a id="user" name="user">User directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> User + <em>unix-userid</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>User + #-1</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The User directive sets the userid as which the server will + answer requests. In order to use this directive, the standalone + server must be run initially as root. <em>Unix-userid</em> is + one of:</p> + + <dl> + <dt>A username</dt> + + <dd>Refers to the given user by name.</dd> + + <dt># followed by a user number.</dt> + + <dd>Refers to a user by their number.</dd> + </dl> + The user should have no privileges which result in it being + able to access files which are not intended to be visible to + the outside world, and similarly, the user should not be able + to execute code which is not meant for httpd requests. It is + recommended that you set up a new user and group specifically + for running the server. Some admins use user + <code>nobody</code>, but this is not always possible or + desirable. For example mod_proxy's cache, when enabled, must be + accessible to this user (see the <a + href="mod_proxy.html#cacheroot"><code>CacheRoot</code> + directive</a>). + + <p>Notes: If you start the server as a non-root user, it will + fail to change to the lesser privileged user, and will instead + continue to run as that original user. If you do start the + server as root, then it is normal for the parent process to + remain running as root.</p> + + <p>Special note: Use of this directive in <VirtualHost> + requires a properly configured <a href="../suexec.html">suEXEC + wrapper</a>. When used inside a <VirtualHost> in this + manner, only the user that CGIs are run as is affected. Non-CGI + requests are still processed with the user specified in the + main User directive.</p> + + <p>SECURITY: Don't set User (or <a href="#group">Group</a>) to + <code>root</code> unless you know exactly what you are doing, + and what the dangers are.</p> + <hr /> + + <h2><a id="virtualhost" name="virtualhost"><VirtualHost> + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <VirtualHost + <em>addr</em>[:<em>port</em>] [<em>addr</em>[:<em>port</em>]] + ...> ... </VirtualHost> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core.<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Non-IP + address-based Virtual Hosting only available in Apache 1.1 and + later.<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Multiple address + support only available in Apache 1.2 and later. + + <p><VirtualHost> and </VirtualHost> are used to + enclose a group of directives which will apply only to a + particular virtual host. Any directive which is allowed in a + virtual host context may be used. When the server receives a + request for a document on a particular virtual host, it uses + the configuration directives enclosed in the + <VirtualHost> section. <em>Addr</em> can be</p> + + <ul> + <li>The IP address of the virtual host</li> + + <li>A fully qualified domain name for the IP address of the + virtual host.</li> + </ul> + Example: + + <blockquote> + <code><VirtualHost 10.1.2.3><br /> + ServerAdmin webmaster@host.foo.com<br /> + DocumentRoot /www/docs/host.foo.com<br /> + ServerName host.foo.com<br /> + ErrorLog logs/host.foo.com-error_log<br /> + TransferLog logs/host.foo.com-access_log<br /> + </VirtualHost></code> + </blockquote> + Each VirtualHost must correspond to a different IP address, + different port number or a different host name for the server, + in the former case the server machine must be configured to + accept IP packets for multiple addresses. (If the machine does + not have multiple network interfaces, then this can be + accomplished with the <code>ifconfig alias</code> command (if + your OS supports it), or with kernel patches like <a + href="../misc/vif-info.html">VIF</a> (for SunOS(TM) 4.1.x)). + + <p>You can specify more than one IP address. This is useful if + a machine responds to the same name on two different + interfaces. For example, if you have a VirtualHost that is + available to hosts on an internal (intranet) as well as + external (internet) network. Example:</p> + + <blockquote> + <code><VirtualHost 192.168.1.2 204.255.176.199><br /> + DocumentRoot /www/docs/host.foo.com<br /> + ServerName host.foo.com<br /> + ServerAlias host<br /> + </VirtualHost></code> + </blockquote> + 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>You can specify a <code>:port</code> to change the port that + is matched. If unspecified then it defaults to the same port as + the most recent <code><a href="#port">Port</a></code> statement + of the main server. You may also specify <code>:*</code> to + match all ports on that address. (This is recommended when used + with <code>_default_</code>.)</p> + + <p><strong>SECURITY</strong>: See the <a + href="../misc/security_tips.html">security tips</a> document + for details on why your security could be compromised if the + directory where logfiles are stored is writable by anyone other + than the user that starts the server.</p> + + <p><strong>NOTE</strong>: The use of <VirtualHost> does + <strong>not</strong> affect what addresses Apache listens on. + You may need to ensure that Apache is listening on the correct + addresses using either <a href="#bindaddress">BindAddress</a> + or <a href="#listen">Listen</a>.</p> + + <p><strong>See also:</strong> <a href="../vhosts/">Apache + Virtual Host documentation</a><br /> + <strong>See also:</strong> <a + href="../dns-caveats.html">Warnings about DNS and + Apache</a><br /> + <strong>See also:</strong> <a href="../bind.html">Setting + which addresses and ports Apache uses</a><br /> + <strong>See also</strong>: <a href="../sections.html">How + Directory, Location and Files sections work</a> for an + explanation of how these different sections are combined when a + request is received</p> + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + + </body> +</html> + + + diff --git a/usr.sbin/httpd/htdocs/manual/mod/directive-dict.html.fr b/usr.sbin/httpd/htdocs/manual/mod/directive-dict.html.fr new file mode 100644 index 00000000000..817a984f246 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/mod/directive-dict.html.fr @@ -0,0 +1,261 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--Traduction anglais 1.4 --> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + <meta http-equiv="Content-Type" + content="text/html; charset=iso-8859-1" /> + + <title>Termes utilisés pour décrire les + directives Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + + + <h1 align="CENTER">Termes utilisés pour décrire + les directives Apache</h1> + + <p>Chaque directive de configuration d'Apache est + décrite selon un format de présentation commun + ressemblant à ceci :</p> + + <dl> + <dd><a href="#Syntax" + rel="Help"><strong>Syntaxe:</strong></a> + <em>nomDirective</em> <em>arguments</em><br /> + <a href="#Default" + rel="Help"><strong>Défaut:</strong></a> + <samp><em>nomDirective + valeursParDéfaut</em></samp><br /> + <a href="#Context" rel="Help"><strong>Contexte:</strong></a> + <em>listeDeContextes</em><br /> + <a href="#Override" + rel="Help"><strong>Surcharge:</strong></a> + <em>DirectivesSurchargées</em><br /> + <a href="#Status" rel="Help"><strong>Statut:</strong></a> + <em>statut</em><br /> + <a href="#Module" rel="Help"><strong>Module:</strong></a> + <em>nomModule</em><br /> + <a href="#Compatibility" + rel="Help"><strong>Compatibilité:</strong></a> + <em>notes concernant la compatibilité</em></dd> + </dl> + + <p>Chacun des attributs possibles pour les directives, avec + toutes leurs valeurs possibles sont décrites dans ce + document.</p> + + <h2>Termes employés pour les directives</h2> + + <ul> + <li><a href="#Syntax">Syntaxe</a></li> + + <li><a href="#Default">Défaut</a></li> + + <li><a href="#Context">Contexte</a></li> + + <li><a href="#Override">Surcharge</a></li> + + <li><a href="#Status">Statut</a></li> + + <li><a href="#Module">Module</a></li> + + <li><a href="#Compatibility">Compatibilité</a></li> + </ul> + <hr /> + + <h2><a id="Syntax" name="Syntax">Syntaxe</a></h2> + + <p>Indique le format dans laquelle la directive doit être + inscrite dans les fichiers de configuration. Cette syntaxe est + très spécifique pour chaque directive, et est + décrite en détail dans la définition de la + directive. Généralement, le nom de la directive + est suivi d'un ou de plusieurs arguments. Les arguments + optionnels sont entourés de crochets Quand un argument + peut prendre plus d'une valeur possible, les valeurs possibles + sont séparées par une barre verticale. Les + valeurs littérales sont affichée avec la fontes + par défaut, tandis qur les type d'arguments pour + lesquels une substitution doit être faite sont en + italique. Les diretrives pouvant avoir un nombre variable + d'arguments se terminent avec "..." indiquant que le dernier + argument se répète.</p> + <hr /> + + <h2><a id="Default" name="Default">Défaut</a></h2> + + <p>Si la directive a une valeur par défaut + (<em>c-à-d.</em>, si elle n'apparait pas du tout dans le + fichier de configuration, le serveur Apache se comportera comme + si cette directive avait été écrite en + mentionnant cette valeur), elle est spécifiée + ici. Si aucune valeur n'est définie par défaut, + cette section précisera "<em>Non + précisé</em>".</p> + <hr /> + + <h2><a id="Context" name="Context">Contexte</a></h2> + + <p>Indique là ou l'implantation de la directive dans le + fichier de configuration est licite. Il est exprimé + comme une liste séparée par des virgules, et + pouvant contenir les éléments suivants :</p> + + <dl> + <dt><strong>configuration serveur</strong></dt> + + <dd>La directive peut être utilisée dans le + fichier de configuration du serveur (<em>ex.</em>, + <samp>httpd.conf</samp>, <samp>srm.conf</samp>, et + <samp>access.conf</samp>), mais dans <strong>aucune</strong> + des sections intérieures des containers + <samp><VirtualHost></samp> ni <Directory>. Elle + n'est pas permise dans aucun des fichiers + <samp>.htaccess</samp>.</dd> + + <dt><strong>hôte virtuel</strong></dt> + + <dd>Dans ce contexte, la directive peut apparaître dans + les containers <samp><VirtualHost></samp> écrits + dans les fichiers de configuration du serveur.</dd> + + <dt><strong>répertoire</strong></dt> + + <dd>La directive peut apparaître dans les containers + <samp><Directory></samp> écrits dans les + fichiers de configuration du serveur.</dd> + + <dt><strong>.htaccess</strong></dt> + + <dd>La directive peut apparaître dans les fichiers + <samp>.htaccess</samp> situé dans chacun des + répertoires. Elle peut ou ne pas être + interprétée, suivant la configuration des + directives <a href="#Override" rel="Help">de + surcharge</a>.</dd> + </dl> + + <p>Les directives ne sont autorisées <em>que</em> dans + les contextes cités ; si vous essayez de les + écrire ailleurs, vous provoquerez une erreur de + configuration qui soit conduira le serveur à ignorer les + requêtes dans le contexte spécifié, soit + peut empêcher le serveur de fonctionner -- + <em>c-à-d.</em>, le serveur refusera de + démarrer.</p> + + <p>Les emplacements valides pour les directives sont le + résultat d'un OU booléen de tous les contextes + cités. En d'autres termes, une directive marquée + comma étant valide dans le contexte "<samp>configuration + serveur, .htaccess</samp>" peut être utilisée dans + le fichier <samp>httpd.conf</samp> et dans les fichiers + <samp>.htaccess</samp>, mais pas dans le container + <Directory> ni <VirtualHost>.</p> + <hr /> + + <h2><a id="Override" name="Override">Surcharge</a></h2> + + <p>Cet attribut de directive précise quelle surcharge + doit être permise pour que la directive puisse être + interprétée lorsqu'elle apparaît dans un + fichier <samp>.htaccess</samp>. Si le <a href="#Context" + rel="Help">contexte</a> de directive ne permet pas une + écriture dans les fichiers <samp>.htaccess</samp>, cet + attribut doit mentionner "<em>Non applicable</em>".</p> + + <p>Les surcharges sont gérées par la directive <a + href="core.html#allowoverrides" + rel="Help"><samp>AllowOverrides</samp></a>, et ont une + portée définie, par exemple un répertoire + donné et tous ses descendants, sauf si la configuration + de surcharge est changée à un endroit de la + descendance par une directive <samp>AllowOverrides</samp> d'un + niveau inférieur. La documentation pour cette directive + liste aussi les noms possibles de surcharges disponibles.</p> + <hr /> + + <h2><a id="Status" name="Status">Statut</a></h2> + + <p>Indique à quel module du serveur Apache Web la + directive est rattachée ; en d'autres termes, vous + devrez peut être recompiler le serveur en + précisant un ensemble plus large de modules pour pouvoir + bénéficier de cette fonctionnalité. Les + valeurs possibles pour cet attribut sont :</p> + + <dl> + <dt><strong>Noyau</strong></dt> + + <dd>Il s'agit d'une directive du noyau d'Apache et est de ce + fait toujours disponible.</dd> + + <dt><strong>Base</strong></dt> + + <dd>La directive est implémentée dans un module + d'Apache faisant partie de l'ensemble de compilation de base, + et est normalement disponible sauf si vous avez explicitement + enlevé ce module à la compilation.</dd> + + <dt><strong>Extension</strong></dt> + + <dd>La directive est implémentée par un module + faisant partie de l'Apache Server Kit, mais ce module n'est + pas compilé par défaut. Pour activer cette + directive, et rendre opérationnelle cette + fonctionnalité, vous devrez modifier le fichier de + configuration de compilation et recompiler Apache.</dd> + + <dt><strong>Expérimental</strong></dt> + + <dd>Le statut "Experimental" indique que la directive est + disponible dans le Kit Apache, mais que vous ne pouvez + l'utiliser qu'à vos risques et périls. La + directive est documenté dans un souci + d'exhaustivité mais n'est pas forcément + supportée. Le module qui donne accès à + cette directive peut être ou ne pas être + compilé par défaut ; reportez vous en + tête de la page qui décrit la directive et le + module pour toute remarque concernant sa + disponibilité.</dd> + </dl> + <hr /> + + <h2><a id="Module" name="Module">Module</a></h2> + + <p>Donne simplement le nom du module ou est + implémentée cette fonctionnalité.</p> + <hr /> + + <h2><a id="Compatibility" + name="Compatibility">Compatibilité</a></h2> + + <p>Si la directive ne faisait pas partie de la version 1 + d'Apache, le numéro indique la version dans laquelle + elle a été introduite. Si la directive a le + même nom qu'une ancienne directive du serveur HTTPd du + NCSA, toute différence de comportement y sera + mentionnée. Dans les autres cas, cette rubrique + affichera "<em>Pas de remarques sur + compatiblité.</em>"</p> + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/mod/directives.html.de b/usr.sbin/httpd/htdocs/manual/mod/directives.html.de new file mode 100644 index 00000000000..b0fb88568c1 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/mod/directives.html.de @@ -0,0 +1,253 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<HTML> +<HEAD> +<TITLE>Apache Konfigurationsdirektiven</TITLE> +</HEAD> + +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> +<BODY + BGCOLOR="#FFFFFF" + TEXT="#000000" + LINK="#0000FF" + VLINK="#000080" + ALINK="#FF0000" +> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + +<H1 ALIGN="CENTER">Apache Konfigurationsdirektiven</H1> +<P> +Dieses Dokument enthält eine vollständige Liste aller +Konfigurationsdirektiven der Apache Standard-Distribution. +Die Beschreibungen sind dabei in einem einheitlichen Format verfasst, +wobei es zu den im Beschreibungsformat verwendeten Feldern eine eigene +<A + HREF="directive-dict.html" + REL="Glossary" +>Legende</A> +gibt. +</P> +<UL> +<LI><A HREF="core.html#accessconfig">AccessConfig</A> +<LI><A HREF="core.html#accessfilename">AccessFileName</A> +<LI><A HREF="mod_actions.html#action">Action</A> +<LI><A HREF="mod_autoindex.html#addalt">AddAlt</A> +<LI><A HREF="mod_autoindex.html#addaltbyencoding">AddAltByEncoding</A> +<LI><A HREF="mod_autoindex.html#addaltbytype">AddAltByType</A> +<LI><A HREF="mod_mime.html#addcharset">AddCharset</A> +<LI><A HREF="core.html#adddefaultcharset">AddDefaultCharset</A> +<LI><A HREF="mod_autoindex.html#adddescription">AddDescription</A> +<LI><A HREF="mod_mime.html#addencoding">AddEncoding</A> +<LI><A HREF="mod_mime.html#addhandler">AddHandler</A> +<LI><A HREF="mod_autoindex.html#addicon">AddIcon</A> +<LI><A HREF="mod_autoindex.html#addiconbyencoding">AddIconByEncoding</A> +<LI><A HREF="mod_autoindex.html#addiconbytype">AddIconByType</A> +<LI><A HREF="mod_mime.html#addlanguage">AddLanguage</A> +<LI><A HREF="core.html#addmodule">AddModule</A> +<LI><A HREF="mod_info.html#addmoduleinfo">AddModuleInfo</A> +<LI><A HREF="mod_mime.html#addtype">AddType</A> +<LI><A HREF="mod_log_agent.html#agentlog">AgentLog</A> +<LI><A HREF="mod_alias.html#alias">Alias</A> +<LI><A HREF="mod_alias.html#aliasmatch">AliasMatch</A> +<LI><A HREF="mod_access.html#allow">Allow</A> +<LI><A HREF="mod_proxy.html#allowconnect">AllowCONNECT</A> +<LI><A HREF="core.html#allowoverride">AllowOverride</A> +<LI><A HREF="mod_auth_anon.html#anonymous">Anonymous</A> +<LI><A HREF="mod_auth_anon.html#Authoritative">Anonymous_Authoritative</A> +<LI><A HREF="mod_auth_anon.html#LogEmail">Anonymous_LogEmail</A> +<LI><A HREF="mod_auth_anon.html#MustGiveEmail">Anonymous_MustGiveEmail</A> +<LI><A HREF="mod_auth_anon.html#NoUserID">Anonymous_NoUserID</A> +<LI><A HREF="mod_auth_anon.html#VerifyEmail">Anonymous_VerifyEmail</A> +<LI><A HREF="mod_auth.html#authauthoritative">AuthAuthoritative</A> +<LI><A HREF="mod_auth_db.html#authdbauthoritative">AuthDBAuthoritative</A> +<LI><A HREF="mod_auth_db.html#authdbgroupfile">AuthDBGroupFile</A> +<LI><A HREF="mod_auth_dbm.html#authdbmauthoritative">AuthDBMAuthoritative</A> +<LI><A HREF="mod_auth_dbm.html#authdbmgroupfile">AuthDBMGroupFile</A> +<LI><A HREF="mod_auth_dbm.html#authdbmgroupfile">AuthDBMGroupFile</A> +<LI><A HREF="mod_auth_db.html#authdbuserfile">AuthDBUserFile</A> +<LI><A HREF="mod_auth_dbm.html#authdbmuserfile">AuthDBMUserFile</A> +<LI><A HREF="mod_digest.html#authdigestfile">AuthDigestFile</A> +<LI><A HREF="mod_auth.html#authgroupfile">AuthGroupFile</A> +<LI><A HREF="core.html#authname">AuthName</A> +<LI><A HREF="core.html#authtype">AuthType</A> +<LI><A HREF="mod_auth.html#authuserfile">AuthUserFile</A> +<LI><A HREF="core.html#bindaddress">BindAddress</A> +<LI><A HREF="mod_setenvif.html#BrowserMatch">BrowserMatch</A> +<LI><A HREF="mod_setenvif.html#BrowserMatchNoCase">BrowserMatchNoCase</A> +<LI><A HREF="core.html#bs2000account">BS2000Account</A> +<LI><A HREF="mod_proxy.html#cachedefaultexpire">CacheDefaultExpire</A> +<LI><A HREF="mod_proxy.html#cachedirlength">CacheDirLength</A> +<LI><A HREF="mod_proxy.html#cachedirlevels">CacheDirLevels</A> +<LI><A HREF="mod_proxy.html#cacheforcecompletion">CacheForceCompletion</A> +<LI><A HREF="mod_proxy.html#cachegcinterval">CacheGcInterval</A> +<LI><A HREF="mod_proxy.html#cachelastmodifiedfactor">CacheLastModifiedFactor</A> +<LI><A HREF="mod_proxy.html#cachemaxexpire">CacheMaxExpire</A> +<LI><A HREF="mod_negotiation.html#cachenegotiateddocs">CacheNegotiatedDocs</A> +<LI><A HREF="mod_proxy.html#cacheroot">CacheRoot</A> +<LI><A HREF="mod_proxy.html#cachesize">CacheSize</A> +<LI><A HREF="mod_speling.html#checkspelling">CheckSpelling</A> +<LI><A HREF="core.html#clearmodulelist">ClearModuleList</A> +<LI><A HREF="core.html#contentdigest">ContentDigest</A> +<LI><A HREF="mod_usertrack.html#cookieexpires">CookieExpires</A> +<LI><A HREF="mod_cookies.html#cookielog">CookieLog</A> (mod_cookies) +<LI><A HREF="mod_log_config.html#cookielog">CookieLog</A> (mod_log_config) +<LI><A HREF="mod_usertrack.html#cookietracking">CookieTracking</A> +<LI><A HREF="core.html#coredumpdirectory">CoreDumpDirectory</A> +<LI><A HREF="mod_log_config.html#customlog">CustomLog</A> +<LI><A HREF="mod_autoindex.html#defaulticon">DefaultIcon</A> +<LI><A HREF="mod_mime.html#defaultlanguage">DefaultLanguage</A> +<LI><A HREF="core.html#defaulttype">DefaultType</A> +<LI><A HREF="mod_access.html#deny">Deny</A> +<LI><A HREF="core.html#directory"><Directory></A> +<LI><A HREF="core.html#directorymatch"><DirectoryMatch></A> +<LI><A HREF="mod_dir.html#directoryindex">DirectoryIndex</A> +<LI><A HREF="core.html#documentroot">DocumentRoot</A> +<LI><A HREF="core.html#ebcdicconvert">EBCDICConvert</A> +<LI><A HREF="core.html#ebcdicconvertbytype">EBCDICConvertByType</A> +<LI><A HREF="core.html#ebcdickludge">EBCDICKludge</A> +<LI><A HREF="core.html#errordocument">ErrorDocument</A> +<LI><A HREF="core.html#errorlog">ErrorLog</A> +<LI><A HREF="mod_example.html#example">Example</A> +<LI><A HREF="mod_expires.html#expiresactive">ExpiresActive</A> +<LI><A HREF="mod_expires.html#expiresbytype">ExpiresByType</A> +<LI><A HREF="mod_expires.html#expiresdefault">ExpiresDefault</A> +<LI><A HREF="mod_status.html#extendedstatus">ExtendedStatus</A> +<LI><A HREF="mod_autoindex.html#fancyindexing">FancyIndexing</A> +<LI><A HREF="core.html#files"><Files></A> +<LI><A HREF="core.html#filesmatch"><FilesMatch></A> +<LI><A HREF="mod_mime.html#forcetype">ForceType</A> +<LI><A HREF="core.html#group">Group</A> +<LI><A HREF="mod_headers.html#header">Header</A> +<LI><A HREF="mod_autoindex.html#headername">HeaderName</A> +<LI><A HREF="core.html#hostnamelookups">HostNameLookups</A> +<LI><A HREF="core.html#identitycheck">IdentityCheck</A> +<LI><A HREF="core.html#ifdefine"><IfDefine></A> +<LI><A HREF="core.html#ifmodule"><IfModule></A> +<LI><A HREF="mod_imap.html#imapbase">ImapBase</A> +<LI><A HREF="mod_imap.html#imapdefault">ImapDefault</A> +<LI><A HREF="mod_imap.html#imapmenu">ImapMenu</A> +<LI><A HREF="core.html#include">Include</A> +<LI><A HREF="mod_autoindex.html#indexignore">IndexIgnore</A> +<LI><A HREF="mod_autoindex.html#indexoptions">IndexOptions</A> +<LI><A HREF="mod_autoindex.html#indexorderdefault">IndexOrderDefault</A> +<LI><A HREF="mod_isapi.html#isapireadaheadbuffer">ISAPIReadAheadBuffer</A> +<LI><A HREF="mod_isapi.html#isapilognotsupported">ISAPILogNotSupported</A> +<LI><A HREF="mod_isapi.html#isapiappendlogtoerrors">ISAPIAppendLogToErrors</A> +<LI><A HREF="mod_isapi.html#isapiappendlogtoquery">ISAPIAppendLogToQuery</A> +<LI><A HREF="core.html#keepalive">KeepAlive</A> +<LI><A HREF="core.html#keepalivetimeout">KeepAliveTimeout</A> +<LI><A HREF="mod_negotiation.html#languagepriority">LanguagePriority</A> +<LI><A HREF="core.html#limit"><Limit></A> +<LI><A HREF="core.html#limitexcept"><LimitExcept></A> +<LI><A HREF="core.html#limitrequestbody">LimitRequestBody</A> +<LI><A HREF="core.html#limitrequestfields">LimitRequestFields</A> +<LI><A HREF="core.html#limitrequestfieldsize">LimitRequestFieldsize</A> +<LI><A HREF="core.html#limitrequestline">LimitRequestLine</A> +<LI><A HREF="core.html#listen">Listen</A> +<LI><A HREF="core.html#listenbacklog">ListenBacklog</A> +<LI><A HREF="mod_so.html#loadfile">LoadFile</A> +<LI><A HREF="mod_so.html#loadmodule">LoadModule</A> +<LI><A HREF="core.html#location"><Location></A> +<LI><A HREF="core.html#locationmatch"><LocationMatch></A> +<LI><A HREF="core.html#lockfile">LockFile</A> +<LI><A HREF="mod_log_config.html#logformat">LogFormat</A> +<LI><A HREF="core.html#loglevel">LogLevel</A> +<LI><A HREF="core.html#maxclients">MaxClients</A> +<LI><A HREF="core.html#maxkeepaliverequests">MaxKeepAliveRequests</A> +<LI><A HREF="core.html#maxrequestsperchild">MaxRequestsPerChild</A> +<LI><A HREF="core.html#maxspareservers">MaxSpareServers</A> +<LI><A HREF="mod_cern_meta.html#metadir">MetaDir</A> +<LI><A HREF="mod_cern_meta.html#metafiles">MetaFiles</A> +<LI><A HREF="mod_cern_meta.html#metasuffix">MetaSuffix</A> +<LI><A HREF="mod_mime_magic.html#mimemagicfile">MimeMagicFile</A> +<LI><A HREF="core.html#minspareservers">MinSpareServers</A> +<LI><A HREF="mod_mmap_static.html#mmapfile">MMapFile</A> +<LI><A HREF="core.html#namevirtualhost">NameVirtualHost</A> +<LI><A HREF="mod_proxy.html#nocache">NoCache</A> +<LI><A HREF="core.html#options">Options</A> +<LI><A HREF="mod_access.html#order">Order</A> +<LI><A HREF="mod_env.html#passenv">PassEnv</A> +<LI><A HREF="core.html#pidfile">PidFile</A> +<LI><A HREF="core.html#port">Port</A> +<LI><A HREF="mod_proxy.html#proxyblock">ProxyBlock</A> +<LI><A HREF="mod_proxy.html#proxydomain">ProxyDomain</A> +<LI><A HREF="mod_proxy.html#proxypass">ProxyPass</A> +<LI><A HREF="mod_proxy.html#proxypassreverse">ProxyPassReverse</A> +<LI><A HREF="mod_proxy.html#proxyreceivebuffersize">ProxyReceiveBufferSize</A> +<LI><A HREF="mod_proxy.html#proxyremote">ProxyRemote</A> +<LI><A HREF="mod_proxy.html#proxyrequests">ProxyRequests</A> +<LI><A HREF="mod_proxy.html#proxyvia">ProxyVia</A> +<LI><A HREF="mod_autoindex.html#readmename">ReadmeName</A> +<LI><A HREF="mod_alias.html#redirect">Redirect</A> +<LI><A HREF="mod_alias.html#redirectmatch">RedirectMatch</A> +<LI><A HREF="mod_alias.html#redirectperm">RedirectPermanent</A> +<LI><A HREF="mod_alias.html#redirecttemp">RedirectTemp</A> +<LI><A HREF="mod_log_referer.html#refererignore">RefererIgnore</A> +<LI><A HREF="mod_log_referer.html#refererlog">RefererLog</A> +<LI><A HREF="mod_mime.html#removeencoding">RemoveEncoding</A> +<LI><A HREF="mod_mime.html#removehandler">RemoveHandler</A> +<LI><A HREF="mod_mime.html#removetype">RemoveType</A> +<LI><A HREF="core.html#require">Require</A> +<LI><A HREF="core.html#resourceconfig">ResourceConfig</A> +<LI><A HREF="mod_rewrite.html#RewriteBase">RewriteBase</A> +<LI><A HREF="mod_rewrite.html#RewriteCond">RewriteCond</A> +<LI><A HREF="mod_rewrite.html#RewriteEngine">RewriteEngine</A> +<LI><A HREF="mod_rewrite.html#RewriteLock">RewriteLock</A> +<LI><A HREF="mod_rewrite.html#RewriteLog">RewriteLog</A> +<LI><A HREF="mod_rewrite.html#RewriteLogLevel">RewriteLogLevel</A> +<LI><A HREF="mod_rewrite.html#RewriteMap">RewriteMap</A> +<LI><A HREF="mod_rewrite.html#RewriteOptions">RewriteOptions</A> +<LI><A HREF="mod_rewrite.html#RewriteRule">RewriteRule</A> +<LI><A HREF="core.html#rlimitcpu">RLimitCPU</A> +<LI><A HREF="core.html#rlimitmem">RLimitMEM</A> +<LI><A HREF="core.html#rlimitnproc">RLimitNPROC</A> +<LI><A HREF="core.html#satisfy">Satisfy</A> +<LI><A HREF="core.html#scoreboardfile">ScoreBoardFile</A> +<LI><A HREF="mod_actions.html#script">Script</A> +<LI><A HREF="mod_alias.html#scriptalias">ScriptAlias</A> +<LI><A HREF="mod_alias.html#scriptaliasmatch">ScriptAliasMatch</A> +<LI><A HREF="core.html#scriptinterpretersource">ScriptInterpreterSource</A> +<LI><A HREF="mod_cgi.html#scriptlog">ScriptLog</A> +<LI><A HREF="mod_cgi.html#scriptlogbuffer">ScriptLogBuffer</A> +<LI><A HREF="mod_cgi.html#scriptloglength">ScriptLogLength</A> +<LI><A HREF="core.html#sendbuffersize">SendBufferSize</A> +<LI><A HREF="core.html#serveradmin">ServerAdmin</A> +<LI><A HREF="core.html#serveralias">ServerAlias</A> +<LI><A HREF="core.html#servername">ServerName</A> +<LI><A HREF="core.html#serverpath">ServerPath</A> +<LI><A HREF="core.html#serverroot">ServerRoot</A> +<LI><A HREF="core.html#serversignature">ServerSignature</A> +<LI><A HREF="core.html#servertokens">ServerTokens</A> +<LI><A HREF="core.html#servertype">ServerType</A> +<LI><A HREF="mod_env.html#setenv">SetEnv</A> +<LI><A HREF="mod_setenvif.html#setenvif">SetEnvIf</A> +<LI><A HREF="mod_setenvif.html#SetEnvIfNoCase">SetEnvIfNoCase</A> +<LI><A HREF="mod_mime.html#sethandler">SetHandler</A> +<LI><A HREF="core.html#startservers">StartServers</A> +<LI><A HREF="core.html#threadsperchild">ThreadsPerChild</A> +<LI><A HREF="core.html#timeout">TimeOut</A> +<LI><A HREF="mod_log_config.html#transferlog">TransferLog</A> +<LI><A HREF="mod_mime.html#typesconfig">TypesConfig</A> +<LI><A HREF="mod_env.html#unsetenv">UnsetEnv</A> +<LI><A HREF="core.html#usecanonicalname">UseCanonicalName</A> +<LI><A HREF="core.html#user">User</A> +<LI><A HREF="mod_userdir.html#userdir">UserDir</A> +<LI><A HREF="core.html#virtualhost"><VirtualHost></A> +<LI><A HREF="mod_vhost_alias.html#virtualdocumentroot">VirtualDocumentRoot</A> +<LI><A HREF="mod_vhost_alias.html#virtualdocumentrootip">VirtualDocumentRootIP</A> +<LI><A HREF="mod_vhost_alias.html#virtualscriptalias">VirtualScriptAlias</A> +<LI><A HREF="mod_vhost_alias.html#virtualscriptaliasip">VirtualScriptAliasIP</A> +<LI><A HREF="mod_include.html#xbithack">XBitHack</A> +</UL> + + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + +</BODY> +</HTML> diff --git a/usr.sbin/httpd/htdocs/manual/mod/directives.html.en b/usr.sbin/httpd/htdocs/manual/mod/directives.html.en new file mode 100644 index 00000000000..4445c7aa3e9 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/mod/directives.html.en @@ -0,0 +1,602 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache directives</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + + + <h1 align="CENTER">Apache Directives</h1> + + <p>Each Apache directive available in the standard Apache + distribution is listed here. They are described using a + consistent format, and there is <a href="directive-dict.html" + rel="Glossary">a dictionary</a> of the terms used in their + descriptions available.</p> + + <ul> + <li><a href="core.html#acceptfilter">AcceptFilter</a></li> + + <li><a href="core.html#acceptmutex">AcceptMutex</a></li> + + <li><a href="core.html#accessconfig">AccessConfig</a></li> + + <li><a + href="core.html#accessfilename">AccessFileName</a></li> + + <li><a href="mod_actions.html#action">Action</a></li> + + <li><a href="mod_autoindex.html#addalt">AddAlt</a></li> + + <li><a + href="mod_autoindex.html#addaltbyencoding">AddAltByEncoding</a></li> + + <li><a + href="mod_autoindex.html#addaltbytype">AddAltByType</a></li> + + <li><a href="mod_mime.html#addcharset">AddCharset</a></li> + + <li><a + href="core.html#adddefaultcharset">AddDefaultCharset</a></li> + + <li><a + href="mod_autoindex.html#adddescription">AddDescription</a></li> + + <li><a href="mod_mime.html#addencoding">AddEncoding</a></li> + + <li><a href="mod_mime.html#addhandler">AddHandler</a></li> + + <li><a href="mod_autoindex.html#addicon">AddIcon</a></li> + + <li><a + href="mod_autoindex.html#addiconbyencoding">AddIconByEncoding</a></li> + + <li><a + href="mod_autoindex.html#addiconbytype">AddIconByType</a></li> + + <li><a href="mod_mime.html#addlanguage">AddLanguage</a></li> + + <li><a href="core.html#addmodule">AddModule</a></li> + + <li><a + href="mod_info.html#addmoduleinfo">AddModuleInfo</a></li> + + <li><a href="mod_mime.html#addtype">AddType</a></li> + + <li><a href="mod_log_agent.html#agentlog">AgentLog</a></li> + + <li><a href="mod_alias.html#alias">Alias</a></li> + + <li><a href="mod_alias.html#aliasmatch">AliasMatch</a></li> + + <li><a href="mod_access.html#allow">Allow</a></li> + + <li><a + href="mod_proxy.html#allowconnect">AllowCONNECT</a></li> + + <li><a href="core.html#allowoverride">AllowOverride</a></li> + + <li><a href="mod_auth_anon.html#anonymous">Anonymous</a></li> + + <li><a + href="mod_auth_anon.html#Authoritative">Anonymous_Authoritative</a></li> + + <li><a + href="mod_auth_anon.html#LogEmail">Anonymous_LogEmail</a></li> + + <li><a + href="mod_auth_anon.html#MustGiveEmail">Anonymous_MustGiveEmail</a></li> + + <li><a + href="mod_auth_anon.html#NoUserID">Anonymous_NoUserID</a></li> + + <li><a + href="mod_auth_anon.html#VerifyEmail">Anonymous_VerifyEmail</a></li> + + <li><a + href="mod_auth.html#authauthoritative">AuthAuthoritative</a></li> + + <li><a + href="mod_auth_db.html#authdbauthoritative">AuthDBAuthoritative</a></li> + + <li><a + href="mod_auth_db.html#authdbgroupfile">AuthDBGroupFile</a></li> + + <li><a + href="mod_auth_dbm.html#authdbmauthoritative">AuthDBMAuthoritative</a></li> + + <li><a + href="mod_auth_dbm.html#authdbmgroupfile">AuthDBMGroupFile</a></li> + + <li><a + href="mod_auth_dbm.html#authdbmgroupfile">AuthDBMGroupFile</a></li> + + <li><a + href="mod_auth_db.html#authdbuserfile">AuthDBUserFile</a></li> + + <li><a + href="mod_auth_dbm.html#authdbmuserfile">AuthDBMUserFile</a></li> + + <li><a + href="mod_digest.html#authdigestfile">AuthDigestFile</a></li> + + <li><a + href="mod_auth.html#authgroupfile">AuthGroupFile</a></li> + + <li><a href="core.html#authname">AuthName</a></li> + + <li><a href="core.html#authtype">AuthType</a></li> + + <li><a + href="mod_auth.html#authuserfile">AuthUserFile</a></li> + + <li><a href="core.html#bindaddress">BindAddress</a></li> + + <li><a + href="mod_setenvif.html#BrowserMatch">BrowserMatch</a></li> + + <li><a + href="mod_setenvif.html#BrowserMatchNoCase">BrowserMatchNoCase</a></li> + + <li><a href="core.html#bs2000account">BS2000Account</a></li> + + <li><a + href="mod_proxy.html#cachedefaultexpire">CacheDefaultExpire</a></li> + + <li><a + href="mod_proxy.html#cachedirlength">CacheDirLength</a></li> + + <li><a + href="mod_proxy.html#cachedirlevels">CacheDirLevels</a></li> + + <li><a + href="mod_proxy.html#cacheforcecompletion">CacheForceCompletion</a></li> + + <li><a + href="mod_proxy.html#cachegcinterval">CacheGcInterval</a></li> + + <li><a + href="mod_proxy.html#cachelastmodifiedfactor">CacheLastModifiedFactor</a></li> + + <li><a + href="mod_proxy.html#cachemaxexpire">CacheMaxExpire</a></li> + + <li><a + href="mod_negotiation.html#cachenegotiateddocs">CacheNegotiatedDocs</a></li> + + <li><a href="mod_proxy.html#cacheroot">CacheRoot</a></li> + + <li><a href="mod_proxy.html#cachesize">CacheSize</a></li> + + <li><a + href="mod_speling.html#checkspelling">CheckSpelling</a></li> + + <li><a + href="core.html#clearmodulelist">ClearModuleList</a></li> + + <li><a href="core.html#contentdigest">ContentDigest</a></li> + + <li><a + href="mod_usertrack.html#cookieexpires">CookieExpires</a></li> + + <li><a href="mod_cookies.html#cookielog">CookieLog</a> + (mod_cookies)</li> + + <li><a href="mod_log_config.html#cookielog">CookieLog</a> + (mod_log_config)</li> + + <li><a + href="mod_usertrack.html#cookietracking">CookieTracking</a></li> + + <li><a + href="core.html#coredumpdirectory">CoreDumpDirectory</a></li> + + <li><a + href="mod_log_config.html#customlog">CustomLog</a></li> + + <li><a + href="mod_autoindex.html#defaulticon">DefaultIcon</a></li> + + <li><a + href="mod_mime.html#defaultlanguage">DefaultLanguage</a></li> + + <li><a href="core.html#defaulttype">DefaultType</a></li> + + <li><a href="mod_define.html#define">Define</a> + + <li><a href="mod_access.html#deny">Deny</a></li> + + <li><a href="core.html#directory"><Directory></a></li> + + <li><a + href="core.html#directorymatch"><DirectoryMatch></a></li> + + <li><a + href="mod_dir.html#directoryindex">DirectoryIndex</a></li> + + <li><a href="core.html#documentroot">DocumentRoot</a></li> + + <li><a href="core.html#ebcdicconvert">EBCDICConvert</a></li> + + <li><a + href="core.html#ebcdicconvertbytype">EBCDICConvertByType</a></li> + + <li><a href="core.html#ebcdickludge">EBCDICKludge</a></li> + + <li><a href="core.html#errordocument">ErrorDocument</a></li> + + <li><a href="core.html#errorlog">ErrorLog</a></li> + + <li><a href="mod_example.html#example">Example</a></li> + + <li><a + href="mod_expires.html#expiresactive">ExpiresActive</a></li> + + <li><a + href="mod_expires.html#expiresbytype">ExpiresByType</a></li> + + <li><a + href="mod_expires.html#expiresdefault">ExpiresDefault</a></li> + + <li><a + href="mod_status.html#extendedstatus">ExtendedStatus</a></li> + + <li><a + href="mod_autoindex.html#fancyindexing">FancyIndexing</a></li> + + <li><a href="core.html#fileetag">FileETag</a></li> + + <li><a href="core.html#files"><Files></a></li> + + <li><a + href="core.html#filesmatch"><FilesMatch></a></li> + + <li><a href="mod_mime.html#forcetype">ForceType</a></li> + + <li><a href="core.html#group">Group</a></li> + + <li><a href="mod_headers.html#header">Header</a></li> + + <li><a + href="mod_autoindex.html#headername">HeaderName</a></li> + + <li><a + href="core.html#hostnamelookups">HostnameLookups</a></li> + + <li><a href="core.html#identitycheck">IdentityCheck</a></li> + + <li><a href="core.html#ifdefine"><IfDefine></a></li> + + <li><a href="core.html#ifmodule"><IfModule></a></li> + + <li><a href="mod_imap.html#imapbase">ImapBase</a></li> + + <li><a href="mod_imap.html#imapdefault">ImapDefault</a></li> + + <li><a href="mod_imap.html#imapmenu">ImapMenu</a></li> + + <li><a href="core.html#include">Include</a></li> + + <li><a + href="mod_autoindex.html#indexignore">IndexIgnore</a></li> + + <li><a + href="mod_autoindex.html#indexoptions">IndexOptions</a></li> + + <li><a + href="mod_autoindex.html#indexorderdefault">IndexOrderDefault</a></li> + + <li><a + href="mod_isapi.html#isapireadaheadbuffer">ISAPIReadAheadBuffer</a></li> + + <li><a + href="mod_isapi.html#isapilognotsupported">ISAPILogNotSupported</a></li> + + <li><a + href="mod_isapi.html#isapiappendlogtoerrors">ISAPIAppendLogToErrors</a></li> + + <li><a + href="mod_isapi.html#isapiappendlogtoquery">ISAPIAppendLogToQuery</a></li> + + <li><a href="core.html#keepalive">KeepAlive</a></li> + + <li><a + href="core.html#keepalivetimeout">KeepAliveTimeout</a></li> + + <li><a + href="mod_negotiation.html#languagepriority">LanguagePriority</a></li> + + <li><a href="core.html#limit"><Limit></a></li> + + <li><a + href="core.html#limitexcept"><LimitExcept></a></li> + + <li><a + href="core.html#limitrequestbody">LimitRequestBody</a></li> + + <li><a + href="core.html#limitrequestfields">LimitRequestFields</a></li> + + <li><a + href="core.html#limitrequestfieldsize">LimitRequestFieldsize</a></li> + + <li><a + href="core.html#limitrequestline">LimitRequestLine</a></li> + + <li><a href="core.html#listen">Listen</a></li> + + <li><a href="core.html#listenbacklog">ListenBacklog</a></li> + + <li><a href="mod_so.html#loadfile">LoadFile</a></li> + + <li><a href="mod_so.html#loadmodule">LoadModule</a></li> + + <li><a href="core.html#location"><Location></a></li> + + <li><a + href="core.html#locationmatch"><LocationMatch></a></li> + + <li><a href="core.html#lockfile">LockFile</a></li> + + <li><a + href="mod_log_config.html#logformat">LogFormat</a></li> + + <li><a href="core.html#loglevel">LogLevel</a></li> + + <li><a href="core.html#maxclients">MaxClients</a></li> + + <li><a + href="core.html#maxkeepaliverequests">MaxKeepAliveRequests</a></li> + + <li><a + href="core.html#maxrequestsperchild">MaxRequestsPerChild</a></li> + + <li><a + href="core.html#maxspareservers">MaxSpareServers</a></li> + + <li><a href="mod_cern_meta.html#metadir">MetaDir</a></li> + + <li><a href="mod_cern_meta.html#metafiles">MetaFiles</a></li> + + <li><a + href="mod_cern_meta.html#metasuffix">MetaSuffix</a></li> + + <li><a + href="mod_mime_magic.html#mimemagicfile">MimeMagicFile</a></li> + + <li><a + href="core.html#minspareservers">MinSpareServers</a></li> + + <li><a href="mod_mmap_static.html#mmapfile">MMapFile</a></li> + + <li><a + href="core.html#namevirtualhost">NameVirtualHost</a></li> + + <li><a href="mod_proxy.html#nocache">NoCache</a></li> + + <li><a href="core.html#options">Options</a></li> + + <li><a href="mod_access.html#order">Order</a></li> + + <li><a href="mod_env.html#passenv">PassEnv</a></li> + + <li><a href="core.html#pidfile">PidFile</a></li> + + <li><a href="core.html#port">Port</a></li> + + <li><a href="mod_proxy.html#proxyblock">ProxyBlock</a></li> + + <li><a href="mod_proxy.html#proxydomain">ProxyDomain</a></li> + + <li><a href="mod_proxy.html#proxypass">ProxyPass</a></li> + + <li><a + href="mod_proxy.html#proxypassreverse">ProxyPassReverse</a></li> + + <li><a + href="mod_proxy.html#proxyreceivebuffersize">ProxyReceiveBufferSize</a></li> + + <li><a href="mod_proxy.html#proxyremote">ProxyRemote</a></li> + + <li><a + href="mod_proxy.html#proxyrequests">ProxyRequests</a></li> + + <li><a href="mod_proxy.html#proxyvia">ProxyVia</a></li> + + <li><a + href="mod_autoindex.html#readmename">ReadmeName</a></li> + + <li><a href="mod_alias.html#redirect">Redirect</a></li> + + <li><a + href="mod_alias.html#redirectmatch">RedirectMatch</a></li> + + <li><a + href="mod_alias.html#redirectperm">RedirectPermanent</a></li> + + <li><a + href="mod_alias.html#redirecttemp">RedirectTemp</a></li> + + <li><a + href="mod_log_referer.html#refererignore">RefererIgnore</a></li> + + <li><a + href="mod_log_referer.html#refererlog">RefererLog</a></li> + + <li><a + href="mod_mime.html#removeencoding">RemoveEncoding</a></li> + + <li><a + href="mod_mime.html#removehandler">RemoveHandler</a></li> + + <li><a href="mod_mime.html#removetype">RemoveType</a></li> + + <li><a href="core.html#require">Require</a></li> + + <li><a + href="core.html#resourceconfig">ResourceConfig</a></li> + + <li><a + href="mod_rewrite.html#RewriteBase">RewriteBase</a></li> + + <li><a + href="mod_rewrite.html#RewriteCond">RewriteCond</a></li> + + <li><a + href="mod_rewrite.html#RewriteEngine">RewriteEngine</a></li> + + <li><a + href="mod_rewrite.html#RewriteLock">RewriteLock</a></li> + + <li><a href="mod_rewrite.html#RewriteLog">RewriteLog</a></li> + + <li><a + href="mod_rewrite.html#RewriteLogLevel">RewriteLogLevel</a></li> + + <li><a href="mod_rewrite.html#RewriteMap">RewriteMap</a></li> + + <li><a + href="mod_rewrite.html#RewriteOptions">RewriteOptions</a></li> + + <li><a + href="mod_rewrite.html#RewriteRule">RewriteRule</a></li> + + <li><a href="core.html#rlimitcpu">RLimitCPU</a></li> + + <li><a href="core.html#rlimitmem">RLimitMEM</a></li> + + <li><a href="core.html#rlimitnproc">RLimitNPROC</a></li> + + <li><a href="core.html#satisfy">Satisfy</a></li> + + <li><a + href="core.html#scoreboardfile">ScoreBoardFile</a></li> + + <li><a href="mod_actions.html#script">Script</a></li> + + <li><a href="mod_alias.html#scriptalias">ScriptAlias</a></li> + + <li><a + href="mod_alias.html#scriptaliasmatch">ScriptAliasMatch</a></li> + + <li><a + href="core.html#scriptinterpretersource">ScriptInterpreterSource</a></li> + + <li><a href="mod_cgi.html#scriptlog">ScriptLog</a></li> + + <li><a + href="mod_cgi.html#scriptlogbuffer">ScriptLogBuffer</a></li> + + <li><a + href="mod_cgi.html#scriptloglength">ScriptLogLength</a></li> + + <li><a + href="core.html#sendbuffersize">SendBufferSize</a></li> + + <li><a href="core.html#serveradmin">ServerAdmin</a></li> + + <li><a href="core.html#serveralias">ServerAlias</a></li> + + <li><a href="core.html#servername">ServerName</a></li> + + <li><a href="core.html#serverpath">ServerPath</a></li> + + <li><a href="core.html#serverroot">ServerRoot</a></li> + + <li><a + href="core.html#serversignature">ServerSignature</a></li> + + <li><a href="core.html#servertokens">ServerTokens</a></li> + + <li><a href="core.html#servertype">ServerType</a></li> + + <li><a href="mod_env.html#setenv">SetEnv</a></li> + + <li><a href="mod_setenvif.html#setenvif">SetEnvIf</a></li> + + <li><a + href="mod_setenvif.html#SetEnvIfNoCase">SetEnvIfNoCase</a></li> + + <li><a href="mod_mime.html#sethandler">SetHandler</a></li> + + <li><a href="mod_ssl/ssl_reference.html#SSLPassPhraseDialog">SSLPassPhraseDialog</a> + <li><a href="mod_ssl/ssl_reference.html#SSLMutex">SSLMutex</a> + <li><a href="mod_ssl/ssl_reference.html#SSLRandomSeed">SSLRandomSeed</a> + <li><a href="mod_ssl/ssl_reference.html#SSLSessionCache">SSLSessionCache</a> + <li><a href="mod_ssl/ssl_reference.html#SSLSessionCacheTimeout">SSLSessionCacheTimeout</a> + <li><a href="mod_ssl/ssl_reference.html#SSLEngine">SSLEngine</a> + <li><a href="mod_ssl/ssl_reference.html#SSLProtocol">SSLProtocol</a> + <li><a href="mod_ssl/ssl_reference.html#SSLCipherSuite">SSLCipherSuite</a> + <li><a href="mod_ssl/ssl_reference.html#SSLCertificateFile">SSLCertificateFile</a> + <li><a href="mod_ssl/ssl_reference.html#SSLCertificateKeyFile">SSLCertificateKeyFile</a> + <li><a href="mod_ssl/ssl_reference.html#SSLCACertificatePath">SSLCACertificatePath</a> + <li><a href="mod_ssl/ssl_reference.html#SSLCACertificateFile">SSLCACertificateFile</a> + <li><a href="mod_ssl/ssl_reference.html#SSLCARevocationPath">SSLCARevocationPath</a> + <li><a href="mod_ssl/ssl_reference.html#SSLCARevocationFile">SSLCARevocationFile</a> + <li><a href="mod_ssl/ssl_reference.html#SSLVerifyClient">SSLVerifyClient</a> + <li><a href="mod_ssl/ssl_reference.html#SSLVerifyDepth">SSLVerifyDepth</a> + <li><a href="mod_ssl/ssl_reference.html#SSLLog">SSLLog</a> + <li><a href="mod_ssl/ssl_reference.html#SSLLogLevel">SSLLogLevel</a> + <li><a href="mod_ssl/ssl_reference.html#SSLOptions">SSLOptions</a> + <li><a href="mod_ssl/ssl_reference.html#SSLRequireSSL">SSLRequireSSL</a> + <li><a href="mod_ssl/ssl_reference.html#SSLRequire">SSLRequire</a> + + <li><a href="core.html#startservers">StartServers</a></li> + + <li><a + href="core.html#threadsperchild">ThreadsPerChild</a></li> + + <li><a href="core.html#timeout">TimeOut</a></li> + + <li><a + href="mod_log_config.html#transferlog">TransferLog</a></li> + + <li><a href="mod_mime.html#typesconfig">TypesConfig</a></li> + + <li><a href="mod_env.html#unsetenv">UnsetEnv</a></li> + + <li><a + href="core.html#usecanonicalname">UseCanonicalName</a></li> + + <li><a href="core.html#user">User</a></li> + + <li><a href="mod_userdir.html#userdir">UserDir</a></li> + + <li><a + href="core.html#virtualhost"><VirtualHost></a></li> + + <li><a + href="mod_vhost_alias.html#virtualdocumentroot">VirtualDocumentRoot</a></li> + + <li><a + href="mod_vhost_alias.html#virtualdocumentrootip">VirtualDocumentRootIP</a></li> + + <li><a + href="mod_vhost_alias.html#virtualscriptalias">VirtualScriptAlias</a></li> + + <li><a + href="mod_vhost_alias.html#virtualscriptaliasip">VirtualScriptAliasIP</a></li> + + <li><a href="mod_include.html#xbithack">XBitHack</a></li> + </ul> + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/mod/directives.html.fr b/usr.sbin/httpd/htdocs/manual/mod/directives.html.fr new file mode 100644 index 00000000000..89a7fccde4a --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/mod/directives.html.fr @@ -0,0 +1,580 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--Traduction anglais 1.69 --> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + <meta http-equiv="Content-Type" + content="text/html; charset=iso-8859-1" /> + + <title>Directives Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + + + <h1 align="CENTER">Directives Apache</h1> + + <p>Chacune des directives Apache disponible dans la + distribution standard est listée ici. Elles sont + décrites selon un format précis, et nous + fournissons un <a href="directive-dict.html" + rel="Glossary">dictionnaire</a> des termes utilisés pour + leur description.</p> + + <ul> + <li><a href="core.html#acceptfilter">AcceptFilter</a></li> + + <li><a href="core.html#acceptmutex">AcceptMutex</a></li> + + <li><a href="core.html#accessconfig">AccessConfig</a></li> + + <li><a + href="core.html#accessfilename">AccessFileName</a></li> + + <li><a href="mod_actions.html#action">Action</a></li> + + <li><a href="mod_autoindex.html#addalt">AddAlt</a></li> + + <li><a + href="mod_autoindex.html#addaltbyencoding">AddAltByEncoding</a></li> + + <li><a + href="mod_autoindex.html#addaltbytype">AddAltByType</a></li> + + <li><a href="mod_mime.html#addcharset">AddCharset</a></li> + + <li><a + href="core.html#adddefaultcharset">AddDefaultCharset</a></li> + + <li><a + href="mod_autoindex.html#adddescription">AddDescription</a></li> + + <li><a href="mod_mime.html#addencoding">AddEncoding</a></li> + + <li><a href="mod_mime.html#addhandler">AddHandler</a></li> + + <li><a href="mod_autoindex.html#addicon">AddIcon</a></li> + + <li><a + href="mod_autoindex.html#addiconbyencoding">AddIconByEncoding</a></li> + + <li><a + href="mod_autoindex.html#addiconbytype">AddIconByType</a></li> + + <li><a href="mod_mime.html#addlanguage">AddLanguage</a></li> + + <li><a href="core.html#addmodule">AddModule</a></li> + + <li><a + href="mod_info.html#addmoduleinfo">AddModuleInfo</a></li> + + <li><a href="mod_mime.html#addtype">AddType</a></li> + + <li><a href="mod_log_agent.html#agentlog">AgentLog</a></li> + + <li><a href="mod_alias.html#alias">Alias</a></li> + + <li><a href="mod_alias.html#aliasmatch">AliasMatch</a></li> + + <li><a href="mod_access.html#allow">allow</a></li> + + <li><a + href="mod_proxy.html#allowconnect">AllowCONNECT</a></li> + + <li><a href="core.html#allowoverride">AllowOverride</a></li> + + <li><a href="mod_auth_anon.html#anonymous">Anonymous</a></li> + + <li><a + href="mod_auth_anon.html#Authoritative">Anonymous_Authoritative</a></li> + + <li><a + href="mod_auth_anon.html#LogEmail">Anonymous_LogEmail</a></li> + + <li><a + href="mod_auth_anon.html#MustGiveEmail">Anonymous_MustGiveEmail</a></li> + + <li><a + href="mod_auth_anon.html#NoUserID">Anonymous_NoUserID</a></li> + + <li><a + href="mod_auth_anon.html#VerifyEmail">Anonymous_VerifyEmail</a></li> + + <li><a + href="mod_auth.html#authauthoritative">AuthAuthoritative</a></li> + + <li><a + href="mod_auth_db.html#authdbauthoritative">AuthDBAuthoritative</a></li> + + <li><a + href="mod_auth_db.html#authdbgroupfile">AuthDBGroupFile</a></li> + + <li><a + href="mod_auth_dbm.html#authdbmauthoritative">AuthDBMAuthoritative</a></li> + + <li><a + href="mod_auth_dbm.html#authdbmgroupfile">AuthDBMGroupFile</a></li> + + <li><a + href="mod_auth_dbm.html#authdbmgroupfile">AuthDBMGroupFile</a></li> + + <li><a + href="mod_auth_db.html#authdbuserfile">AuthDBUserFile</a></li> + + <li><a + href="mod_auth_dbm.html#authdbmuserfile">AuthDBMUserFile</a></li> + + <li><a + href="mod_digest.html#authdigestfile">AuthDigestFile</a></li> + + <li><a + href="mod_auth.html#authgroupfile">AuthGroupFile</a></li> + + <li><a href="core.html#authname">AuthName</a></li> + + <li><a href="core.html#authtype">AuthType</a></li> + + <li><a + href="mod_auth.html#authuserfile">AuthUserFile</a></li> + + <li><a href="core.html#bindaddress">BindAddress</a></li> + + <li><a + href="mod_setenvif.html#BrowserMatch">BrowserMatch</a></li> + + <li><a + href="mod_setenvif.html#BrowserMatchNoCase">BrowserMatchNoCase</a></li> + + <li><a href="core.html#bs2000account">BS2000Account</a></li> + + <li><a + href="mod_proxy.html#cachedefaultexpire">CacheDefaultExpire</a></li> + + <li><a + href="mod_proxy.html#cachedirlength">CacheDirLength</a></li> + + <li><a + href="mod_proxy.html#cachedirlevels">CacheDirLevels</a></li> + + <li><a + href="mod_proxy.html#cacheforcecompletion">CacheForceCompletion</a></li> + + <li><a + href="mod_proxy.html#cachegcinterval">CacheGcInterval</a></li> + + <li><a + href="mod_proxy.html#cachelastmodifiedfactor">CacheLastModifiedFactor</a></li> + + <li><a + href="mod_proxy.html#cachemaxexpire">CacheMaxExpire</a></li> + + <li><a + href="mod_negotiation.html#cachenegotiateddocs">CacheNegotiatedDocs</a></li> + + <li><a href="mod_proxy.html#cacheroot">CacheRoot</a></li> + + <li><a href="mod_proxy.html#cachesize">CacheSize</a></li> + + <li><a + href="mod_speling.html#checkspelling">CheckSpelling</a></li> + + <li><a + href="core.html#clearmodulelist">ClearModuleList</a></li> + + <li><a href="core.html#contentdigest">ContentDigest</a></li> + + <li><a + href="mod_usertrack.html#cookieexpires">CookieExpires</a></li> + + <li><a href="mod_cookies.html#cookielog">CookieLog</a> + (mod_cookies)</li> + + <li><a href="mod_log_config.html#cookielog">CookieLog</a> + (mod_log_config)</li> + + <li><a + href="mod_usertrack.html#cookietracking">CookieTracking</a></li> + + <li><a + href="core.html#coredumpdirectory">CoreDumpDirectory</a></li> + + <li><a + href="mod_log_config.html#customlog">CustomLog</a></li> + + <li><a + href="mod_autoindex.html#defaulticon">DefaultIcon</a></li> + + <li><a + href="mod_mime.html#defaultlanguage">DefaultLanguage</a></li> + + <li><a href="core.html#defaulttype">DefaultType</a></li> + + <li><a href="mod_access.html#deny">deny</a></li> + + <li><a href="core.html#directory"><Directory></a></li> + + <li><a + href="core.html#directorymatch"><DirectoryMatch></a></li> + + <li><a + href="mod_dir.html#directoryindex">DirectoryIndex</a></li> + + <li><a href="core.html#documentroot">DocumentRoot</a></li> + + <li><a href="core.html#ebcdicconvert">EBCDICConvert</a></li> + + <li><a + href="core.html#ebcdicconvertbytype">EBCDICConvertByType</a></li> + + <li><a href="core.html#ebcdickludge">EBCDICKludge</a></li> + + <li><a href="core.html#errordocument">ErrorDocument</a></li> + + <li><a href="core.html#errorlog">ErrorLog</a></li> + + <li><a href="mod_example.html#example">Example</a></li> + + <li><a + href="mod_expires.html#expiresactive">ExpiresActive</a></li> + + <li><a + href="mod_expires.html#expiresbytype">ExpiresByType</a></li> + + <li><a + href="mod_expires.html#expiresdefault">ExpiresDefault</a></li> + + <li><a + href="mod_status.html#extendedstatus">ExtendedStatus</a></li> + + <li><a + href="mod_autoindex.html#fancyindexing">FancyIndexing</a></li> + + <li><a href="core.html#files"><Files></a></li> + + <li><a + href="core.html#filesmatch"><FilesMatch></a></li> + + <li><a href="mod_mime.html#forcetype">ForceType</a></li> + + <li><a href="core.html#group">Group</a></li> + + <li><a href="mod_headers.html#header">Header</a></li> + + <li><a + href="mod_autoindex.html#headername">HeaderName</a></li> + + <li><a + href="core.html#hostnamelookups">HostNameLookups</a></li> + + <li><a href="core.html#identitycheck">IdentityCheck</a></li> + + <li><a href="core.html#ifdefine"><IfDefine></a></li> + + <li><a href="core.html#ifmodule"><IfModule></a></li> + + <li><a href="mod_imap.html#imapbase">ImapBase</a></li> + + <li><a href="mod_imap.html#imapdefault">ImapDefault</a></li> + + <li><a href="mod_imap.html#imapmenu">ImapMenu</a></li> + + <li><a href="core.html#include">Include</a></li> + + <li><a + href="mod_autoindex.html#indexignore">IndexIgnore</a></li> + + <li><a + href="mod_autoindex.html#indexoptions">IndexOptions</a></li> + + <li><a + href="mod_autoindex.html#indexorderdefault">IndexOrderDefault</a></li> + + <li><a + href="mod_isapi.html#isapireadaheadbuffer">ISAPIReadAheadBuffer</a></li> + + <li><a + href="mod_isapi.html#isapilognotsupported">ISAPILogNotSupported</a></li> + + <li><a + href="mod_isapi.html#isapiappendlogtoerrors">ISAPIAppendLogToErrors</a></li> + + <li><a + href="mod_isapi.html#isapiappendlogtoquery">ISAPIAppendLogToQuery</a></li> + + <li><a href="core.html#keepalive">KeepAlive</a></li> + + <li><a + href="core.html#keepalivetimeout">KeepAliveTimeout</a></li> + + <li><a + href="mod_negotiation.html#languagepriority">LanguagePriority</a></li> + + <li><a href="core.html#limit"><Limit></a></li> + + <li><a + href="core.html#limitexcept"><LimitExcept></a></li> + + <li><a + href="core.html#limitrequestbody">LimitRequestBody</a></li> + + <li><a + href="core.html#limitrequestfields">LimitRequestFields</a></li> + + <li><a + href="core.html#limitrequestfieldsize">LimitRequestFieldsize</a></li> + + <li><a + href="core.html#limitrequestline">LimitRequestLine</a></li> + + <li><a href="core.html#listen">Listen</a></li> + + <li><a href="core.html#listenbacklog">ListenBacklog</a></li> + + <li><a href="mod_so.html#loadfile">LoadFile</a></li> + + <li><a href="mod_so.html#loadmodule">LoadModule</a></li> + + <li><a href="core.html#location"><Location></a></li> + + <li><a + href="core.html#locationmatch"><LocationMatch></a></li> + + <li><a href="core.html#lockfile">LockFile</a></li> + + <li><a + href="mod_log_config.html#logformat">LogFormat</a></li> + + <li><a href="core.html#loglevel">LogLevel</a></li> + + <li><a href="core.html#maxclients">MaxClients</a></li> + + <li><a + href="core.html#maxkeepaliverequests">MaxKeepAliveRequests</a></li> + + <li><a + href="core.html#maxrequestsperchild">MaxRequestsPerChild</a></li> + + <li><a + href="core.html#maxspareservers">MaxSpareServers</a></li> + + <li><a href="mod_cern_meta.html#metadir">MetaDir</a></li> + + <li><a href="mod_cern_meta.html#metafiles">MetaFiles</a></li> + + <li><a + href="mod_cern_meta.html#metasuffix">MetaSuffix</a></li> + + <li><a + href="mod_mime_magic.html#mimemagicfile">MimeMagicFile</a></li> + + <li><a + href="core.html#minspareservers">MinSpareServers</a></li> + + <li><a href="mod_mmap_static.html#mmapfile">MMapFile</a></li> + + <li><a + href="core.html#namevirtualhost">NameVirtualHost</a></li> + + <li><a href="mod_proxy.html#nocache">NoCache</a></li> + + <li><a href="core.html#options">Options</a></li> + + <li><a href="mod_access.html#order">order</a></li> + + <li><a href="mod_env.html#passenv">PassEnv</a></li> + + <li><a href="core.html#pidfile">PidFile</a></li> + + <li><a href="core.html#port">Port</a></li> + + <li><a href="mod_proxy.html#proxyblock">ProxyBlock</a></li> + + <li><a href="mod_proxy.html#proxydomain">ProxyDomain</a></li> + + <li><a href="mod_proxy.html#proxypass">ProxyPass</a></li> + + <li><a + href="mod_proxy.html#proxypassreverse">ProxyPassReverse</a></li> + + <li><a + href="mod_proxy.html#proxyreceivebuffersize">ProxyReceiveBufferSize</a></li> + + <li><a href="mod_proxy.html#proxyremote">ProxyRemote</a></li> + + <li><a + href="mod_proxy.html#proxyrequests">ProxyRequests</a></li> + + <li><a href="mod_proxy.html#proxyvia">ProxyVia</a></li> + + <li><a + href="mod_autoindex.html#readmename">ReadmeName</a></li> + + <li><a href="mod_alias.html#redirect">Redirect</a></li> + + <li><a + href="mod_alias.html#redirectmatch">RedirectMatch</a></li> + + <li><a + href="mod_alias.html#redirectperm">RedirectPermanent</a></li> + + <li><a + href="mod_alias.html#redirecttemp">RedirectTemp</a></li> + + <li><a + href="mod_log_referer.html#refererignore">RefererIgnore</a></li> + + <li><a + href="mod_log_referer.html#refererlog">RefererLog</a></li> + + <li><a + href="mod_mime.html#removeencoding">RemoveEncoding</a></li> + + <li><a + href="mod_mime.html#removehandler">RemoveHandler</a></li> + + <li><a href="mod_mime.html#removetype">RemoveType</a></li> + + <li><a href="core.html#require">require</a></li> + + <li><a + href="core.html#resourceconfig">ResourceConfig</a></li> + + <li><a + href="mod_rewrite.html#RewriteBase">RewriteBase</a></li> + + <li><a + href="mod_rewrite.html#RewriteCond">RewriteCond</a></li> + + <li><a + href="mod_rewrite.html#RewriteEngine">RewriteEngine</a></li> + + <li><a + href="mod_rewrite.html#RewriteLock">RewriteLock</a></li> + + <li><a href="mod_rewrite.html#RewriteLog">RewriteLog</a></li> + + <li><a + href="mod_rewrite.html#RewriteLogLevel">RewriteLogLevel</a></li> + + <li><a href="mod_rewrite.html#RewriteMap">RewriteMap</a></li> + + <li><a + href="mod_rewrite.html#RewriteOptions">RewriteOptions</a></li> + + <li><a + href="mod_rewrite.html#RewriteRule">RewriteRule</a></li> + + <li><a href="core.html#rlimitcpu">RLimitCPU</a></li> + + <li><a href="core.html#rlimitmem">RLimitMEM</a></li> + + <li><a href="core.html#rlimitnproc">RLimitNPROC</a></li> + + <li><a href="core.html#satisfy">Satisfy</a></li> + + <li><a + href="core.html#scoreboardfile">ScoreBoardFile</a></li> + + <li><a href="mod_actions.html#script">Script</a></li> + + <li><a href="mod_alias.html#scriptalias">ScriptAlias</a></li> + + <li><a + href="mod_alias.html#scriptaliasmatch">ScriptAliasMatch</a></li> + + <li><a + href="core.html#scriptinterpretersource">ScriptInterpreterSource</a></li> + + <li><a href="mod_cgi.html#scriptlog">ScriptLog</a></li> + + <li><a + href="mod_cgi.html#scriptlogbuffer">ScriptLogBuffer</a></li> + + <li><a + href="mod_cgi.html#scriptloglength">ScriptLogLength</a></li> + + <li><a + href="core.html#sendbuffersize">SendBufferSize</a></li> + + <li><a href="core.html#serveradmin">ServerAdmin</a></li> + + <li><a href="core.html#serveralias">ServerAlias</a></li> + + <li><a href="core.html#servername">ServerName</a></li> + + <li><a href="core.html#serverpath">ServerPath</a></li> + + <li><a href="core.html#serverroot">ServerRoot</a></li> + + <li><a + href="core.html#serversignature">ServerSignature</a></li> + + <li><a href="core.html#servertokens">ServerTokens</a></li> + + <li><a href="core.html#servertype">ServerType</a></li> + + <li><a href="mod_env.html#setenv">SetEnv</a></li> + + <li><a href="mod_setenvif.html#setenvif">SetEnvIf</a></li> + + <li><a + href="mod_setenvif.html#SetEnvIfNoCase">SetEnvIfNoCase</a></li> + + <li><a href="mod_mime.html#sethandler">SetHandler</a></li> + + <li><a href="core.html#startservers">StartServers</a></li> + + <li><a + href="core.html#threadsperchild">ThreadsPerChild</a></li> + + <li><a href="core.html#timeout">TimeOut</a></li> + + <li><a + href="mod_log_config.html#transferlog">TransferLog</a></li> + + <li><a href="mod_mime.html#typesconfig">TypesConfig</a></li> + + <li><a href="mod_env.html#unsetenv">UnsetEnv</a></li> + + <li><a + href="core.html#usecanonicalname">UseCanonicalName</a></li> + + <li><a href="core.html#user">User</a></li> + + <li><a href="mod_userdir.html#userdir">UserDir</a></li> + + <li><a + href="core.html#virtualhost"><VirtualHost></a></li> + + <li><a + href="mod_vhost_alias.html#virtualdocumentroot">VirtualDocumentRoot</a></li> + + <li><a + href="mod_vhost_alias.html#virtualdocumentrootip">VirtualDocumentRootIP</a></li> + + <li><a + href="mod_vhost_alias.html#virtualscriptalias">VirtualScriptAlias</a></li> + + <li><a + href="mod_vhost_alias.html#virtualscriptaliasip">VirtualScriptAliasIP</a></li> + + <li><a href="mod_include.html#xbithack">XBitHack</a></li> + </ul> + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/mod/directives.html.html b/usr.sbin/httpd/htdocs/manual/mod/directives.html.html new file mode 100644 index 00000000000..e61cb60d3c1 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/mod/directives.html.html @@ -0,0 +1,582 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache directives</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + + + <h1 align="CENTER">Apache Directives</h1> + + <p>Each Apache directive available in the standard Apache + distribution is listed here. They are described using a + consistent format, and there is <a href="directive-dict.html" + rel="Glossary">a dictionary</a> of the terms used in their + descriptions available.</p> + + <ul> + <li><a href="core.html#acceptfilter">AcceptFilter</a></li> + + <li><a href="core.html#acceptmutex">AcceptMutex</a></li> + + <li><a href="core.html#accessconfig">AccessConfig</a></li> + + <li><a + href="core.html#accessfilename">AccessFileName</a></li> + + <li><a href="mod_actions.html#action">Action</a></li> + + <li><a href="mod_autoindex.html#addalt">AddAlt</a></li> + + <li><a + href="mod_autoindex.html#addaltbyencoding">AddAltByEncoding</a></li> + + <li><a + href="mod_autoindex.html#addaltbytype">AddAltByType</a></li> + + <li><a href="mod_mime.html#addcharset">AddCharset</a></li> + + <li><a + href="core.html#adddefaultcharset">AddDefaultCharset</a></li> + + <li><a + href="mod_autoindex.html#adddescription">AddDescription</a></li> + + <li><a href="mod_mime.html#addencoding">AddEncoding</a></li> + + <li><a href="mod_mime.html#addhandler">AddHandler</a></li> + + <li><a href="mod_autoindex.html#addicon">AddIcon</a></li> + + <li><a + href="mod_autoindex.html#addiconbyencoding">AddIconByEncoding</a></li> + + <li><a + href="mod_autoindex.html#addiconbytype">AddIconByType</a></li> + + <li><a href="mod_mime.html#addlanguage">AddLanguage</a></li> + + <li><a href="core.html#addmodule">AddModule</a></li> + + <li><a + href="mod_info.html#addmoduleinfo">AddModuleInfo</a></li> + + <li><a href="mod_mime.html#addtype">AddType</a></li> + + <li><a href="mod_log_agent.html#agentlog">AgentLog</a></li> + + <li><a href="mod_alias.html#alias">Alias</a></li> + + <li><a href="mod_alias.html#aliasmatch">AliasMatch</a></li> + + <li><a href="mod_access.html#allow">Allow</a></li> + + <li><a + href="mod_proxy.html#allowconnect">AllowCONNECT</a></li> + + <li><a href="core.html#allowoverride">AllowOverride</a></li> + + <li><a href="mod_auth_anon.html#anonymous">Anonymous</a></li> + + <li><a + href="mod_auth_anon.html#Authoritative">Anonymous_Authoritative</a></li> + + <li><a + href="mod_auth_anon.html#LogEmail">Anonymous_LogEmail</a></li> + + <li><a + href="mod_auth_anon.html#MustGiveEmail">Anonymous_MustGiveEmail</a></li> + + <li><a + href="mod_auth_anon.html#NoUserID">Anonymous_NoUserID</a></li> + + <li><a + href="mod_auth_anon.html#VerifyEmail">Anonymous_VerifyEmail</a></li> + + <li><a + href="mod_auth.html#authauthoritative">AuthAuthoritative</a></li> + + <li><a + href="mod_auth_db.html#authdbauthoritative">AuthDBAuthoritative</a></li> + + <li><a + href="mod_auth_db.html#authdbgroupfile">AuthDBGroupFile</a></li> + + <li><a + href="mod_auth_dbm.html#authdbmauthoritative">AuthDBMAuthoritative</a></li> + + <li><a + href="mod_auth_dbm.html#authdbmgroupfile">AuthDBMGroupFile</a></li> + + <li><a + href="mod_auth_dbm.html#authdbmgroupfile">AuthDBMGroupFile</a></li> + + <li><a + href="mod_auth_db.html#authdbuserfile">AuthDBUserFile</a></li> + + <li><a + href="mod_auth_dbm.html#authdbmuserfile">AuthDBMUserFile</a></li> + + <li><a + href="mod_digest.html#authdigestfile">AuthDigestFile</a></li> + + <li><a + href="mod_auth.html#authgroupfile">AuthGroupFile</a></li> + + <li><a href="core.html#authname">AuthName</a></li> + + <li><a href="core.html#authtype">AuthType</a></li> + + <li><a + href="mod_auth.html#authuserfile">AuthUserFile</a></li> + + <li><a href="core.html#bindaddress">BindAddress</a></li> + + <li><a + href="mod_setenvif.html#BrowserMatch">BrowserMatch</a></li> + + <li><a + href="mod_setenvif.html#BrowserMatchNoCase">BrowserMatchNoCase</a></li> + + <li><a href="core.html#bs2000account">BS2000Account</a></li> + + <li><a + href="mod_proxy.html#cachedefaultexpire">CacheDefaultExpire</a></li> + + <li><a + href="mod_proxy.html#cachedirlength">CacheDirLength</a></li> + + <li><a + href="mod_proxy.html#cachedirlevels">CacheDirLevels</a></li> + + <li><a + href="mod_proxy.html#cacheforcecompletion">CacheForceCompletion</a></li> + + <li><a + href="mod_proxy.html#cachegcinterval">CacheGcInterval</a></li> + + <li><a + href="mod_proxy.html#cachelastmodifiedfactor">CacheLastModifiedFactor</a></li> + + <li><a + href="mod_proxy.html#cachemaxexpire">CacheMaxExpire</a></li> + + <li><a + href="mod_negotiation.html#cachenegotiateddocs">CacheNegotiatedDocs</a></li> + + <li><a href="mod_proxy.html#cacheroot">CacheRoot</a></li> + + <li><a href="mod_proxy.html#cachesize">CacheSize</a></li> + + <li><a + href="mod_speling.html#checkspelling">CheckSpelling</a></li> + + <li><a + href="core.html#clearmodulelist">ClearModuleList</a></li> + + <li><a href="core.html#contentdigest">ContentDigest</a></li> + + <li><a + href="mod_usertrack.html#cookieexpires">CookieExpires</a></li> + + <li><a href="mod_cookies.html#cookielog">CookieLog</a> + (mod_cookies)</li> + + <li><a href="mod_log_config.html#cookielog">CookieLog</a> + (mod_log_config)</li> + + <li><a + href="mod_usertrack.html#cookietracking">CookieTracking</a></li> + + <li><a + href="core.html#coredumpdirectory">CoreDumpDirectory</a></li> + + <li><a + href="mod_log_config.html#customlog">CustomLog</a></li> + + <li><a + href="mod_autoindex.html#defaulticon">DefaultIcon</a></li> + + <li><a + href="mod_mime.html#defaultlanguage">DefaultLanguage</a></li> + + <li><a href="core.html#defaulttype">DefaultType</a></li> + + <li><a href="mod_access.html#deny">Deny</a></li> + + <li><a href="core.html#directory"><Directory></a></li> + + <li><a + href="core.html#directorymatch"><DirectoryMatch></a></li> + + <li><a + href="mod_dir.html#directoryindex">DirectoryIndex</a></li> + + <li><a href="core.html#documentroot">DocumentRoot</a></li> + + <li><a href="core.html#ebcdicconvert">EBCDICConvert</a></li> + + <li><a + href="core.html#ebcdicconvertbytype">EBCDICConvertByType</a></li> + + <li><a href="core.html#ebcdickludge">EBCDICKludge</a></li> + + <li><a href="core.html#errordocument">ErrorDocument</a></li> + + <li><a href="core.html#errorlog">ErrorLog</a></li> + + <li><a href="mod_example.html#example">Example</a></li> + + <li><a + href="mod_expires.html#expiresactive">ExpiresActive</a></li> + + <li><a + href="mod_expires.html#expiresbytype">ExpiresByType</a></li> + + <li><a + href="mod_expires.html#expiresdefault">ExpiresDefault</a></li> + + <li><a + href="mod_status.html#extendedstatus">ExtendedStatus</a></li> + + <li><a + href="mod_autoindex.html#fancyindexing">FancyIndexing</a></li> + + <li><a href="core.html#fileetag">FileETag</a></li> + + <li><a href="core.html#files"><Files></a></li> + + <li><a + href="core.html#filesmatch"><FilesMatch></a></li> + + <li><a href="mod_mime.html#forcetype">ForceType</a></li> + + <li><a href="core.html#group">Group</a></li> + + <li><a href="mod_headers.html#header">Header</a></li> + + <li><a + href="mod_autoindex.html#headername">HeaderName</a></li> + + <li><a + href="core.html#hostnamelookups">HostnameLookups</a></li> + + <li><a href="core.html#identitycheck">IdentityCheck</a></li> + + <li><a href="core.html#ifdefine"><IfDefine></a></li> + + <li><a href="core.html#ifmodule"><IfModule></a></li> + + <li><a href="mod_imap.html#imapbase">ImapBase</a></li> + + <li><a href="mod_imap.html#imapdefault">ImapDefault</a></li> + + <li><a href="mod_imap.html#imapmenu">ImapMenu</a></li> + + <li><a href="core.html#include">Include</a></li> + + <li><a + href="mod_autoindex.html#indexignore">IndexIgnore</a></li> + + <li><a + href="mod_autoindex.html#indexoptions">IndexOptions</a></li> + + <li><a + href="mod_autoindex.html#indexorderdefault">IndexOrderDefault</a></li> + + <li><a + href="mod_isapi.html#isapireadaheadbuffer">ISAPIReadAheadBuffer</a></li> + + <li><a + href="mod_isapi.html#isapilognotsupported">ISAPILogNotSupported</a></li> + + <li><a + href="mod_isapi.html#isapiappendlogtoerrors">ISAPIAppendLogToErrors</a></li> + + <li><a + href="mod_isapi.html#isapiappendlogtoquery">ISAPIAppendLogToQuery</a></li> + + <li><a href="core.html#keepalive">KeepAlive</a></li> + + <li><a + href="core.html#keepalivetimeout">KeepAliveTimeout</a></li> + + <li><a + href="mod_negotiation.html#languagepriority">LanguagePriority</a></li> + + <li><a href="core.html#limit"><Limit></a></li> + + <li><a + href="core.html#limitexcept"><LimitExcept></a></li> + + <li><a + href="core.html#limitrequestbody">LimitRequestBody</a></li> + + <li><a + href="core.html#limitrequestfields">LimitRequestFields</a></li> + + <li><a + href="core.html#limitrequestfieldsize">LimitRequestFieldsize</a></li> + + <li><a + href="core.html#limitrequestline">LimitRequestLine</a></li> + + <li><a href="core.html#listen">Listen</a></li> + + <li><a href="core.html#listenbacklog">ListenBacklog</a></li> + + <li><a href="mod_so.html#loadfile">LoadFile</a></li> + + <li><a href="mod_so.html#loadmodule">LoadModule</a></li> + + <li><a href="core.html#location"><Location></a></li> + + <li><a + href="core.html#locationmatch"><LocationMatch></a></li> + + <li><a href="core.html#lockfile">LockFile</a></li> + + <li><a + href="mod_log_config.html#logformat">LogFormat</a></li> + + <li><a href="core.html#loglevel">LogLevel</a></li> + + <li><a href="core.html#maxclients">MaxClients</a></li> + + <li><a + href="core.html#maxkeepaliverequests">MaxKeepAliveRequests</a></li> + + <li><a + href="core.html#maxrequestsperchild">MaxRequestsPerChild</a></li> + + <li><a + href="core.html#maxspareservers">MaxSpareServers</a></li> + + <li><a href="mod_cern_meta.html#metadir">MetaDir</a></li> + + <li><a href="mod_cern_meta.html#metafiles">MetaFiles</a></li> + + <li><a + href="mod_cern_meta.html#metasuffix">MetaSuffix</a></li> + + <li><a + href="mod_mime_magic.html#mimemagicfile">MimeMagicFile</a></li> + + <li><a + href="core.html#minspareservers">MinSpareServers</a></li> + + <li><a href="mod_mmap_static.html#mmapfile">MMapFile</a></li> + + <li><a + href="core.html#namevirtualhost">NameVirtualHost</a></li> + + <li><a href="mod_proxy.html#nocache">NoCache</a></li> + + <li><a href="core.html#options">Options</a></li> + + <li><a href="mod_access.html#order">Order</a></li> + + <li><a href="mod_env.html#passenv">PassEnv</a></li> + + <li><a href="core.html#pidfile">PidFile</a></li> + + <li><a href="core.html#port">Port</a></li> + + <li><a href="mod_proxy.html#proxyblock">ProxyBlock</a></li> + + <li><a href="mod_proxy.html#proxydomain">ProxyDomain</a></li> + + <li><a href="mod_proxy.html#proxypass">ProxyPass</a></li> + + <li><a + href="mod_proxy.html#proxypassreverse">ProxyPassReverse</a></li> + + <li><a + href="mod_proxy.html#proxyreceivebuffersize">ProxyReceiveBufferSize</a></li> + + <li><a href="mod_proxy.html#proxyremote">ProxyRemote</a></li> + + <li><a + href="mod_proxy.html#proxyrequests">ProxyRequests</a></li> + + <li><a href="mod_proxy.html#proxyvia">ProxyVia</a></li> + + <li><a + href="mod_autoindex.html#readmename">ReadmeName</a></li> + + <li><a href="mod_alias.html#redirect">Redirect</a></li> + + <li><a + href="mod_alias.html#redirectmatch">RedirectMatch</a></li> + + <li><a + href="mod_alias.html#redirectperm">RedirectPermanent</a></li> + + <li><a + href="mod_alias.html#redirecttemp">RedirectTemp</a></li> + + <li><a + href="mod_log_referer.html#refererignore">RefererIgnore</a></li> + + <li><a + href="mod_log_referer.html#refererlog">RefererLog</a></li> + + <li><a + href="mod_mime.html#removeencoding">RemoveEncoding</a></li> + + <li><a + href="mod_mime.html#removehandler">RemoveHandler</a></li> + + <li><a href="mod_mime.html#removetype">RemoveType</a></li> + + <li><a href="core.html#require">Require</a></li> + + <li><a + href="core.html#resourceconfig">ResourceConfig</a></li> + + <li><a + href="mod_rewrite.html#RewriteBase">RewriteBase</a></li> + + <li><a + href="mod_rewrite.html#RewriteCond">RewriteCond</a></li> + + <li><a + href="mod_rewrite.html#RewriteEngine">RewriteEngine</a></li> + + <li><a + href="mod_rewrite.html#RewriteLock">RewriteLock</a></li> + + <li><a href="mod_rewrite.html#RewriteLog">RewriteLog</a></li> + + <li><a + href="mod_rewrite.html#RewriteLogLevel">RewriteLogLevel</a></li> + + <li><a href="mod_rewrite.html#RewriteMap">RewriteMap</a></li> + + <li><a + href="mod_rewrite.html#RewriteOptions">RewriteOptions</a></li> + + <li><a + href="mod_rewrite.html#RewriteRule">RewriteRule</a></li> + + <li><a href="core.html#rlimitcpu">RLimitCPU</a></li> + + <li><a href="core.html#rlimitmem">RLimitMEM</a></li> + + <li><a href="core.html#rlimitnproc">RLimitNPROC</a></li> + + <li><a href="core.html#satisfy">Satisfy</a></li> + + <li><a + href="core.html#scoreboardfile">ScoreBoardFile</a></li> + + <li><a href="mod_actions.html#script">Script</a></li> + + <li><a href="mod_alias.html#scriptalias">ScriptAlias</a></li> + + <li><a + href="mod_alias.html#scriptaliasmatch">ScriptAliasMatch</a></li> + + <li><a + href="core.html#scriptinterpretersource">ScriptInterpreterSource</a></li> + + <li><a href="mod_cgi.html#scriptlog">ScriptLog</a></li> + + <li><a + href="mod_cgi.html#scriptlogbuffer">ScriptLogBuffer</a></li> + + <li><a + href="mod_cgi.html#scriptloglength">ScriptLogLength</a></li> + + <li><a + href="core.html#sendbuffersize">SendBufferSize</a></li> + + <li><a href="core.html#serveradmin">ServerAdmin</a></li> + + <li><a href="core.html#serveralias">ServerAlias</a></li> + + <li><a href="core.html#servername">ServerName</a></li> + + <li><a href="core.html#serverpath">ServerPath</a></li> + + <li><a href="core.html#serverroot">ServerRoot</a></li> + + <li><a + href="core.html#serversignature">ServerSignature</a></li> + + <li><a href="core.html#servertokens">ServerTokens</a></li> + + <li><a href="core.html#servertype">ServerType</a></li> + + <li><a href="mod_env.html#setenv">SetEnv</a></li> + + <li><a href="mod_setenvif.html#setenvif">SetEnvIf</a></li> + + <li><a + href="mod_setenvif.html#SetEnvIfNoCase">SetEnvIfNoCase</a></li> + + <li><a href="mod_mime.html#sethandler">SetHandler</a></li> + + <li><a href="core.html#startservers">StartServers</a></li> + + <li><a + href="core.html#threadsperchild">ThreadsPerChild</a></li> + + <li><a href="core.html#timeout">TimeOut</a></li> + + <li><a + href="mod_log_config.html#transferlog">TransferLog</a></li> + + <li><a href="mod_mime.html#typesconfig">TypesConfig</a></li> + + <li><a href="mod_env.html#unsetenv">UnsetEnv</a></li> + + <li><a + href="core.html#usecanonicalname">UseCanonicalName</a></li> + + <li><a href="core.html#user">User</a></li> + + <li><a href="mod_userdir.html#userdir">UserDir</a></li> + + <li><a + href="core.html#virtualhost"><VirtualHost></a></li> + + <li><a + href="mod_vhost_alias.html#virtualdocumentroot">VirtualDocumentRoot</a></li> + + <li><a + href="mod_vhost_alias.html#virtualdocumentrootip">VirtualDocumentRootIP</a></li> + + <li><a + href="mod_vhost_alias.html#virtualscriptalias">VirtualScriptAlias</a></li> + + <li><a + href="mod_vhost_alias.html#virtualscriptaliasip">VirtualScriptAliasIP</a></li> + + <li><a href="mod_include.html#xbithack">XBitHack</a></li> + </ul> + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + + </body> +</html> + + + diff --git a/usr.sbin/httpd/htdocs/manual/mod/directives.html.ja.jis b/usr.sbin/httpd/htdocs/manual/mod/directives.html.ja.jis new file mode 100644 index 00000000000..e8ac8186960 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/mod/directives.html.ja.jis @@ -0,0 +1,249 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<title>Apache $B%G%#%l%/%F%#%V(B</title> +</head> +<!-- English revision: 1.68 --> +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> +<body + bgcolor="#FFFFFF" + text="#000000" + link="#0000FF" + vlink="#000080" + alink="#FF0000" +> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + +<h1 align="CENTER">Apache $B%G%#%l%/%F%#%V(B</h1> +<p> +$BDL>o$N(B Apache $BG[I[$K4^$^$l$k(B Apache $B$N%G%#%l%/%F%#%V$O!"<!$N$h$&$K$J$j$^$9!#(B +$B5-=R$K4X$9$k4pK\=q<0$K$D$$$F$O!"(B +$B$=$l$i$NM-8z$JI=5-$K4X$9$k(B <a + href="directive-dict.html" + rel="Glossary" +>$B<-=q(B</a> $B$,MQ0U$5$l$F$$$^$9!#(B +</p> +<ul> +<li><a HREF="core.html#acceptfilter">AcceptFilter</a> +<li><a HREF="core.html#acceptmutex">AcceptMutex</a> +<li><a href="core.html#accessconfig">AccessConfig</a> +<li><a href="core.html#accessfilename">AccessFileName</a> +<li><a href="mod_actions.html#action">Action</a> +<li><a href="mod_autoindex.html#addalt">AddAlt</a> +<li><a href="mod_autoindex.html#addaltbyencoding">AddAltByEncoding</a> +<li><a href="mod_autoindex.html#addaltbytype">AddAltByType</a> +<li><a href="mod_mime.html#addcharset">AddCharset</a> +<li><a href="core.html#adddefaultcharset">AddDefaultCharset</a> +<li><a href="mod_autoindex.html#adddescription">AddDescription</a> +<li><a href="mod_mime.html#addencoding">AddEncoding</a> +<li><a href="mod_mime.html#addhandler">AddHandler</a> +<li><a href="mod_autoindex.html#addicon">AddIcon</a> +<li><a href="mod_autoindex.html#addiconbyencoding">AddIconByEncoding</a> +<li><a href="mod_autoindex.html#addiconbytype">AddIconByType</a> +<li><a href="mod_mime.html#addlanguage">AddLanguage</a> +<li><a href="core.html#addmodule">AddModule</a> +<li><a href="mod_info.html#addmoduleinfo">AddModuleInfo</a> +<li><a href="mod_mime.html#addtype">AddType</a> +<li><a href="mod_log_agent.html#agentlog">AgentLog</a> +<li><a href="mod_alias.html#alias">Alias</a> +<li><a href="mod_alias.html#aliasmatch">AliasMatch</a> +<li><a href="mod_access.html#allow">Allow</a> +<li><a href="mod_proxy.html#allowconnect">AllowCONNECT</a> +<li><a href="core.html#allowoverride">AllowOverride</a> +<li><a href="mod_auth_anon.html#anonymous">Anonymous</a> +<li><a href="mod_auth_anon.html#Authoritative">Anonymous_Authoritative</a> +<li><a href="mod_auth_anon.html#LogEmail">Anonymous_LogEmail</a> +<li><a href="mod_auth_anon.html#MustGiveEmail">Anonymous_MustGiveEmail</a> +<li><a href="mod_auth_anon.html#NoUserID">Anonymous_NoUserID</a> +<li><a href="mod_auth_anon.html#VerifyEmail">Anonymous_VerifyEmail</a> +<li><a href="mod_auth.html#authauthoritative">AuthAuthoritative</a> +<li><a href="mod_auth_db.html#authdbauthoritative">AuthDBAuthoritative</a> +<li><a href="mod_auth_db.html#authdbgroupfile">AuthDBGroupFile</a> +<li><a href="mod_auth_dbm.html#authdbmauthoritative">AuthDBMAuthoritative</a> +<li><a href="mod_auth_dbm.html#authdbmgroupfile">AuthDBMGroupFile</a> +<li><a href="mod_auth_dbm.html#authdbmgroupfile">AuthDBMGroupFile</a> +<li><a href="mod_auth_db.html#authdbuserfile">AuthDBUserFile</a> +<li><a href="mod_auth_dbm.html#authdbmuserfile">AuthDBMUserFile</a> +<li><a href="mod_digest.html#authdigestfile">AuthDigestFile</a> +<li><a href="mod_auth.html#authgroupfile">AuthGroupFile</a> +<li><a href="core.html#authname">AuthName</a> +<li><a href="core.html#authtype">AuthType</a> +<li><a href="mod_auth.html#authuserfile">AuthUserFile</a> +<li><a href="core.html#bindaddress">BindAddress</a> +<li><a href="mod_setenvif.html#BrowserMatch">BrowserMatch</a> +<li><a href="mod_setenvif.html#BrowserMatchNoCase">BrowserMatchNoCase</a> +<li><a href="core.html#bs2000account">BS2000Account</a> +<li><a href="mod_proxy.html#cachedefaultexpire">CacheDefaultExpire</a> +<li><a href="mod_proxy.html#cachedirlength">CacheDirLength</a> +<li><a href="mod_proxy.html#cachedirlevels">CacheDirLevels</a> +<li><a href="mod_proxy.html#cacheforcecompletion">CacheForceCompletion</a> +<li><a href="mod_proxy.html#cachegcinterval">CacheGcInterval</a> +<li><a href="mod_proxy.html#cachelastmodifiedfactor">CacheLastModifiedFactor</a> +<li><a href="mod_proxy.html#cachemaxexpire">CacheMaxExpire</a> +<li><a href="mod_negotiation.html#cachenegotiateddocs">CacheNegotiatedDocs</a> +<li><a href="mod_proxy.html#cacheroot">CacheRoot</a> +<li><a href="mod_proxy.html#cachesize">CacheSize</a> +<li><a href="mod_speling.html#checkspelling">CheckSpelling</a> +<li><a href="core.html#clearmodulelist">ClearModuleList</a> +<li><a href="core.html#contentdigest">ContentDigest</a> +<li><a href="mod_usertrack.html#cookieexpires">CookieExpires</a> +<li><a href="mod_cookies.html#cookielog">CookieLog</a> (mod_cookies) +<li><a href="mod_log_config.html#cookielog">CookieLog</a> (mod_log_config) +<li><a href="mod_usertrack.html#cookietracking">CookieTracking</a> +<li><a href="core.html#coredumpdirectory">CoreDumpDirectory</a> +<li><a href="mod_log_config.html#customlog">CustomLog</a> +<li><a href="mod_autoindex.html#defaulticon">DefaultIcon</a> +<li><a href="mod_mime.html#defaultlanguage">DefaultLanguage</a> +<li><a href="core.html#defaulttype">DefaultType</a> +<li><a href="mod_access.html#deny">Deny</a> +<li><a href="core.html#directory"><Directory></a> +<li><a href="core.html#directorymatch"><DirectoryMatch></a> +<li><a href="mod_dir.html#directoryindex">DirectoryIndex</a> +<li><a href="core.html#documentroot">DocumentRoot</a> +<li><a href="core.html#errordocument">ErrorDocument</a> +<li><a href="core.html#errorlog">ErrorLog</a> +<li><a href="mod_example.html#example">Example</a> +<li><a href="mod_expires.html#expiresactive">ExpiresActive</a> +<li><a href="mod_expires.html#expiresbytype">ExpiresByType</a> +<li><a href="mod_expires.html#expiresdefault">ExpiresDefault</a> +<li><a href="mod_status.html#extendedstatus">ExtendedStatus</a> +<li><a href="mod_autoindex.html#fancyindexing">FancyIndexing</a> +<li><a href="core.html#files"><Files></a> +<li><a href="core.html#filesmatch"><FilesMatch></a> +<li><a href="mod_mime.html#forcetype">ForceType</a> +<li><a href="core.html#group">Group</a> +<li><a href="mod_headers.html#header">Header</a> +<li><a href="mod_autoindex.html#headername">HeaderName</a> +<li><a href="core.html#hostnamelookups">HostNameLookups</a> +<li><a href="core.html#identitycheck">IdentityCheck</a> +<li><a href="core.html#ifdefine"><IfDefine></a> +<li><a href="core.html#ifmodule"><IfModule></a> +<li><a href="mod_imap.html#imapbase">ImapBase</a> +<li><a href="mod_imap.html#imapdefault">ImapDefault</a> +<li><a href="mod_imap.html#imapmenu">ImapMenu</a> +<li><a href="core.html#include">Include</a> +<li><a href="mod_autoindex.html#indexignore">IndexIgnore</a> +<li><a href="mod_autoindex.html#indexoptions">IndexOptions</a> +<li><a href="mod_autoindex.html#indexorderdefault">IndexOrderDefault</a> +<li><a href="mod_isapi.html#isapireadaheadbuffer">ISAPIReadAheadBuffer</a> +<li><a href="mod_isapi.html#isapilognotsupported">ISAPILogNotSupported</a> +<li><a href="mod_isapi.html#isapiappendlogtoerrors">ISAPIAppendLogToErrors</a> +<li><a href="mod_isapi.html#isapiappendlogtoquery">ISAPIAppendLogToQuery</a> +<li><a href="core.html#keepalive">KeepAlive</a> +<li><a href="core.html#keepalivetimeout">KeepAliveTimeout</a> +<li><a href="mod_negotiation.html#languagepriority">LanguagePriority</a> +<li><a href="core.html#limit"><Limit></a> +<li><a href="core.html#limitexcept"><LimitExcept></a> +<li><a href="core.html#limitrequestbody">LimitRequestBody</a> +<li><a href="core.html#limitrequestfields">LimitRequestFields</a> +<li><a href="core.html#limitrequestfieldsize">LimitRequestFieldsize</a> +<li><a href="core.html#limitrequestline">LimitRequestLine</a> +<li><a href="core.html#listen">Listen</a> +<li><a href="core.html#listenbacklog">ListenBacklog</a> +<li><a href="mod_so.html#loadfile">LoadFile</a> +<li><a href="mod_so.html#loadmodule">LoadModule</a> +<li><a href="core.html#location"><Location></a> +<li><a href="core.html#locationmatch"><LocationMatch></a> +<li><a href="core.html#lockfile">LockFile</a> +<li><a href="mod_log_config.html#logformat">LogFormat</a> +<li><a href="core.html#loglevel">LogLevel</a> +<li><a href="core.html#maxclients">MaxClients</a> +<li><a href="core.html#maxkeepaliverequests">MaxKeepAliveRequests</a> +<li><a href="core.html#maxrequestsperchild">MaxRequestsPerChild</a> +<li><a href="core.html#maxspareservers">MaxSpareServers</a> +<li><a href="mod_cern_meta.html#metadir">MetaDir</a> +<li><a href="mod_cern_meta.html#metafiles">MetaFiles</a> +<li><a href="mod_cern_meta.html#metasuffix">MetaSuffix</a> +<li><a href="mod_mime_magic.html#mimemagicfile">MimeMagicFile</a> +<li><a href="core.html#minspareservers">MinSpareServers</a> +<li><a href="mod_mmap_static.html#mmapfile">MMapFile</a> +<li><a href="core.html#namevirtualhost">NameVirtualHost</a> +<li><a href="mod_proxy.html#nocache">NoCache</a> +<li><a href="core.html#options">Options</a> +<li><a href="mod_access.html#order">Order</a> +<li><a href="mod_env.html#passenv">PassEnv</a> +<li><a href="core.html#pidfile">PidFile</a> +<li><a href="core.html#port">Port</a> +<li><a href="mod_proxy.html#proxyblock">ProxyBlock</a> +<li><a href="mod_proxy.html#proxydomain">ProxyDomain</a> +<li><a href="mod_proxy.html#proxypass">ProxyPass</a> +<li><a href="mod_proxy.html#proxypassreverse">ProxyPassReverse</a> +<li><a href="mod_proxy.html#proxyreceivebuffersize">ProxyReceiveBufferSize</a> +<li><a href="mod_proxy.html#proxyremote">ProxyRemote</a> +<li><a href="mod_proxy.html#proxyrequests">ProxyRequests</a> +<li><a href="mod_proxy.html#proxyvia">ProxyVia</a> +<li><a href="mod_autoindex.html#readmename">ReadmeName</a> +<li><a href="mod_alias.html#redirect">Redirect</a> +<li><a href="mod_alias.html#redirectmatch">RedirectMatch</a> +<li><a href="mod_alias.html#redirectperm">RedirectPermanent</a> +<li><a href="mod_alias.html#redirecttemp">RedirectTemp</a> +<li><a href="mod_log_referer.html#refererignore">RefererIgnore</a> +<li><a href="mod_log_referer.html#refererlog">RefererLog</a> +<li><a href="mod_mime.html#removeencoding">RemoveEncoding</a> +<li><a href="mod_mime.html#removehandler">RemoveHandler</a> +<li><a href="mod_mime.html#removetype">RemoveType</a> +<li><a href="core.html#require">Require</a> +<li><a href="core.html#resourceconfig">ResourceConfig</a> +<li><a href="mod_rewrite.html#RewriteBase">RewriteBase</a> +<li><a href="mod_rewrite.html#RewriteCond">RewriteCond</a> +<li><a href="mod_rewrite.html#RewriteEngine">RewriteEngine</a> +<li><a href="mod_rewrite.html#RewriteLock">RewriteLock</a> +<li><a href="mod_rewrite.html#RewriteLog">RewriteLog</a> +<li><a href="mod_rewrite.html#RewriteLogLevel">RewriteLogLevel</a> +<li><a href="mod_rewrite.html#RewriteMap">RewriteMap</a> +<li><a href="mod_rewrite.html#RewriteOptions">RewriteOptions</a> +<li><a href="mod_rewrite.html#RewriteRule">RewriteRule</a> +<li><a href="core.html#rlimitcpu">RLimitCPU</a> +<li><a href="core.html#rlimitmem">RLimitMEM</a> +<li><a href="core.html#rlimitnproc">RLimitNPROC</a> +<li><a href="core.html#satisfy">Satisfy</a> +<li><a href="core.html#scoreboardfile">ScoreBoardFile</a> +<li><a href="mod_actions.html#script">Script</a> +<li><a href="mod_alias.html#scriptalias">ScriptAlias</a> +<li><a href="mod_alias.html#scriptaliasmatch">ScriptAliasMatch</a> +<li><a href="core.html#scriptinterpretersource">ScriptInterpreterSource</a> +<li><a href="mod_cgi.html#scriptlog">ScriptLog</a> +<li><a href="mod_cgi.html#scriptlogbuffer">ScriptLogBuffer</a> +<li><a href="mod_cgi.html#scriptloglength">ScriptLogLength</a> +<li><a href="core.html#sendbuffersize">SendBufferSize</a> +<li><a href="core.html#serveradmin">ServerAdmin</a> +<li><a href="core.html#serveralias">ServerAlias</a> +<li><a href="core.html#servername">ServerName</a> +<li><a href="core.html#serverpath">ServerPath</a> +<li><a href="core.html#serverroot">ServerRoot</a> +<li><a href="core.html#serversignature">ServerSignature</a> +<li><a href="core.html#servertokens">ServerTokens</a> +<li><a href="core.html#servertype">ServerType</a> +<li><a href="mod_env.html#setenv">SetEnv</a> +<li><a href="mod_setenvif.html#setenvif">SetEnvIf</a> +<li><a href="mod_setenvif.html#SetEnvIfNoCase">SetEnvIfNoCase</a> +<li><a href="mod_mime.html#sethandler">SetHandler</a> +<li><a href="core.html#startservers">StartServers</a> +<li><a href="core.html#threadsperchild">ThreadsPerChild</a> +<li><a href="core.html#timeout">TimeOut</a> +<li><a href="mod_log_config.html#transferlog">TransferLog</a> +<li><a href="mod_mime.html#typesconfig">TypesConfig</a> +<li><a href="mod_env.html#unsetenv">UnsetEnv</a> +<li><a href="core.html#usecanonicalname">UseCanonicalName</a> +<li><a href="core.html#user">User</a> +<li><a href="mod_userdir.html#userdir">UserDir</a> +<li><a href="core.html#virtualhost"><VirtualHost></a> +<li><a href="mod_vhost_alias.html#virtualdocumentroot">VirtualDocumentRoot</a> +<li><a href="mod_vhost_alias.html#virtualdocumentrootip">VirtualDocumentRootIP</a> +<li><a href="mod_vhost_alias.html#virtualscriptalias">VirtualScriptAlias</a> +<li><a href="mod_vhost_alias.html#virtualscriptaliasip">VirtualScriptAliasIP</a> +<li><a href="mod_include.html#xbithack">XBitHack</a> +</ul> + + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + +</body> +</html> diff --git a/usr.sbin/httpd/htdocs/manual/mod/index-bytype.html.en b/usr.sbin/httpd/htdocs/manual/mod/index-bytype.html.en new file mode 100644 index 00000000000..b211f866f46 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/mod/index-bytype.html.en @@ -0,0 +1,308 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache modules</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + + + <h1 align="CENTER">Apache modules</h1> + + <p>Below is a list of all of the modules that come as part of + the Apache distribution. See also the list of modules <a + href="./">sorted alphabetically</a> and the complete + alphabetical list of <a href="directives.html">all Apache + directives</a>. For modules that are not part of the Apache + distribution, please see <a + href="http://modules.apache.org/">http://modules.apache.org</a>.</p> + + <h2>Core</h2> + + <dl> + <dt><a href="core.html">Core</a></dt> + + <dd>Core Apache features</dd> + </dl> + + <h2>Environment Creation</h2> + + <dl> + <dt><a href="mod_env.html">mod_env</a></dt> + + <dd>Passing of environments to CGI scripts</dd> + + <dt><a href="mod_setenvif.html">mod_setenvif</a> Apache 1.3 + and up</dt> + + <dd>Set environment variables based on client + information</dd> + + <dt><a href="mod_unique_id.html">mod_unique_id</a> Apache 1.3 + and up</dt> + + <dd>Generate unique request identifier for every request</dd> + </dl> + + <h2>Content Type Decisions</h2> + + <dl> + <dt><a href="mod_mime.html">mod_mime</a></dt> + + <dd>Determining document types using file extensions</dd> + + <dt><a href="mod_mime_magic.html">mod_mime_magic</a></dt> + + <dd>Determining document types using "magic numbers"</dd> + + <dt><a href="mod_negotiation.html">mod_negotiation</a></dt> + + <dd>Content negotiation</dd> + </dl> + + <h2>URL Mapping</h2> + + <dl> + <dt><a href="mod_alias.html">mod_alias</a></dt> + + <dd>Mapping different parts of the host filesystem in the + document tree, and URL redirection</dd> + + <dt><a href="mod_rewrite.html">mod_rewrite</a> Apache 1.2 and + up</dt> + + <dd>Powerful URI-to-filename mapping using regular + expressions</dd> + + <dt><a href="mod_userdir.html">mod_userdir</a></dt> + + <dd>User home directories</dd> + + <dt><a href="mod_speling.html">mod_speling</a> Apache 1.3 and + up</dt> + + <dd>Automatically correct minor typos in URLs</dd> + + <dt><a href="mod_vhost_alias.html">mod_vhost_alias</a> Apache + 1.3.7 and up</dt> + + <dd>Support for dynamically configured mass virtual + hosting</dd> + </dl> + + <h2>Directory Handling</h2> + + <dl> + <dt><a href="mod_dir.html">mod_dir</a></dt> + + <dd>Basic directory handling</dd> + + <dt><a href="mod_autoindex.html">mod_autoindex</a></dt> + + <dd>Automatic directory listings</dd> + </dl> + + <h2>Access Control</h2> + + <dl> + <dt><a href="mod_access.html">mod_access</a></dt> + + <dd>Access control based on client hostname or IP + address</dd> + + <dt><a href="mod_auth.html">mod_auth</a></dt> + + <dd>User authentication using text files</dd> + + <dt><a href="mod_auth_dbm.html">mod_auth_dbm</a></dt> + + <dd>User authentication using DBM files</dd> + + <dt><a href="mod_auth_db.html">mod_auth_db</a></dt> + + <dd>User authentication using Berkeley DB files</dd> + + <dt><a href="mod_auth_anon.html">mod_auth_anon</a> Apache 1.1 + and up</dt> + + <dd>Anonymous user access to authenticated areas</dd> + + <dt><a href="mod_auth_digest.html">mod_auth_digest</a> Apache + 1.3.8 and up</dt> + + <dd>Experimental MD5 authentication</dd> + + <dt><a href="mod_digest.html">mod_digest</a> Apache 1.1 and + up</dt> + + <dd>MD5 authentication</dd> + </dl> + + <h2>HTTP Response</h2> + + <dl> + <dt><a href="mod_headers.html">mod_headers</a> Apache 1.2 and + up</dt> + + <dd>Add arbitrary HTTP headers to resources</dd> + + <dt><a href="mod_cern_meta.html">mod_cern_meta</a> Apache 1.1 + and up</dt> + + <dd>Support for HTTP header metafiles</dd> + + <dt><a href="mod_expires.html">mod_expires</a> Apache 1.2 and + up</dt> + + <dd>Apply Expires: headers to resources</dd> + + <dt><a href="mod_asis.html">mod_asis</a></dt> + + <dd>Sending files which contain their own HTTP headers</dd> + </dl> + + <h2>Dynamic Content</h2> + + <dl> + <dt><a href="mod_include.html">mod_include</a></dt> + + <dd>Server-parsed documents</dd> + + <dt><a href="mod_cgi.html">mod_cgi</a></dt> + + <dd>Invoking CGI scripts</dd> + + <dt><a href="mod_actions.html">mod_actions</a> Apache 1.1 and + up</dt> + + <dd>Executing CGI scripts based on media type or request + method</dd> + + <dt><a href="mod_isapi.html">mod_isapi</a> WIN32 only</dt> + + <dd>Windows ISAPI Extension support</dd> + </dl> + + <h2>Internal Content Handlers</h2> + + <dl> + <dt><a href="mod_status.html">mod_status</a> Apache 1.1 and + up</dt> + + <dd>Server status display</dd> + + <dt><a href="mod_info.html">mod_info</a> Apache 1.1 and + up</dt> + + <dd>Server configuration information</dd> + </dl> + + <h2>Logging</h2> + + <dl> + <dt><a href="mod_log_config.html">mod_log_config</a></dt> + + <dd>User-configurable logging replacement for + mod_log_common</dd> + + <dt><a href="mod_log_agent.html">mod_log_agent</a></dt> + + <dd>Logging of User Agents</dd> + + <dt><a href="mod_log_referer.html">mod_log_referer</a></dt> + + <dd>Logging of document references</dd> + + <dt><a href="mod_usertrack.html">mod_usertrack</a> Apache 1.2 + and up</dt> + + <dd>User tracking using Cookies (replacement for + mod_cookies.c)</dd> + </dl> + + <h2>Miscellaneous</h2> + + <dl> + <dt><a href="mod_imap.html">mod_imap</a> Apache 1.1 and + up</dt> + + <dd>The imagemap file handler</dd> + + <dt><a href="mod_proxy.html">mod_proxy</a> Apache 1.1 and + up</dt> + + <dd>Caching proxy abilities</dd> + + <dt><a href="mod_so.html">mod_so</a> Apache 1.3 and up</dt> + + <dd>Support for loading modules (DLLs on Windows) at + runtime</dd> + + <dt><a href="mod_mmap_static.html">mod_mmap_static</a> Apache + 1.3 and up</dt> + + <dd>Experimental file caching, mapping files into memory to + improve performace</dd> + + <dt><a href="mod_ssl/index.html">mod_ssl</a> Apache 1.3 with mod_ssl + applied</dt> + + <dd>Apache SSL interface to OpenSSL</dd> + </dl> + + <h2>Development</h2> + + <dl> + <dt><a href="mod_example.html">mod_example</a> Apache 1.2 and + up</dt> + + <dd>Demonstrates Apache API</dd> + </dl> + + <h2>Obsolete</h2> + + <dl> + <dt><a href="mod_browser.html">mod_browser</a> Apache 1.2.* + only</dt> + + <dd>Set environment variables based on User-Agent strings. + Replaced by mod_setenvif in Apache 1.3 and up</dd> + + <dt><a href="mod_cookies.html">mod_cookies</a> up to Apache + 1.1.1</dt> + + <dd>Support for Netscape-like cookies. Replaced in Apache 1.2 + by mod_usertrack</dd> + + <dt><a href="mod_dld.html">mod_dld</a> Apache 1.2.* and + earlier</dt> + + <dd>Start-time linking with the GNU libdld. Replaced in + Apache 1.3 by mod_so</dd> + + <dt><a href="mod_log_common.html">mod_log_common</a> up to + Apache 1.1.1</dt> + + <dd>Standard logging in the Common Logfile Format. Replaced + by the mod_log_config module in Apache 1.2 and up</dd> + </dl> + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/mod/index-bytype.html.fr b/usr.sbin/httpd/htdocs/manual/mod/index-bytype.html.fr new file mode 100644 index 00000000000..f8542681efa --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/mod/index-bytype.html.fr @@ -0,0 +1,329 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!-- Traduction anglais 1.11 --> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + <meta http-equiv="Content-Type" + content="text/html; charset=iso-8859-1" /> + + <title>Modules Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + + + <h1 align="CENTER">Modules Apache</h1> + + <p>Ci dessous est donnée une liste des modules faisant + partie de la distribution Apache. Voir aussi la liste des + modules <a href="./">triés alphabétiquement</a> + et la liste complète alphabétique de <a + href="directives.html">toutes les directives d'Apache</a>. Pour + les modules d'Apache qui ne font pas partie de la distribution, + vous pouvez consulter <a + href="http://modules.apache.org/">http://modules.apache.org</a></p> + + <h2>Base</h2> + + <dl> + <dt><a href="core.html">Base</a></dt> + + <dd>Fonctionnalités de base d'Apache</dd> + </dl> + + <h2>Création de l'environnement</h2> + + <dl> + <dt><a href="mod_env.html">mod_env</a> Apache 1.1 et + supérieur</dt> + + <dd>Passage d'environnement aux scripts CGI</dd> + + <dt><a href="mod_setenvif.html">mod_setenvif</a> Apache 1.3 + et supérieur</dt> + + <dd>Définition de variables d'environnement en + fonction des informations client</dd> + + <dt><a href="mod_unique_id.html">mod_unique_id</a> Apache 1.3 + et supérieur</dt> + + <dd>Génération d'identifiants uniques de + requête</dd> + </dl> + + <h2>Gestion du type de contenu</h2> + + <dl> + <dt><a href="mod_mime.html">mod_mime</a></dt> + + <dd>Détermination du type des documents en fonction de + l'extension du fichier</dd> + + <dt><a href="mod_mime_magic.html">mod_mime_magic</a></dt> + + <dd>Détermination du type des documents en fonction de + "nombres magiques"</dd> + + <dt><a href="mod_negotiation.html">mod_negotiation</a></dt> + + <dd>Négotiation de contenu</dd> + </dl> + + <h2>Transformation d'URL</h2> + + <dl> + <dt><a href="mod_alias.html">mod_alias</a></dt> + + <dd>Association de différentes parties du + système de fichier de l'hôte dans l'arborescence + des documents, et redirection des URL.</dd> + + <dt><a href="mod_rewrite.html">mod_rewrite</a> Apache 1.2 et + supérieur</dt> + + <dd>Association des URI à des fichiers en utilisant + des expressions régulières</dd> + + <dt><a href="mod_userdir.html">mod_userdir</a></dt> + + <dd>Répertoires personnels d'utilisateurs</dd> + + <dt><a href="mod_speling.html">mod_speling</a> Apache 1.3 et + supérieur</dt> + + <dd>Correction automatique d'erreurs de frappe mineures dans + les URL</dd> + + <dt><a href="mod_vhost_alias.html">mod_vhost_alias</a> Apache + 1.3.7 et supérieur</dt> + + <dd>Support d'hôtes virtuels dynamiquement + configurables</dd> + </dl> + + <h2>Gestion des répertoires</h2> + + <dl> + <dt><a href="mod_dir.html">mod_dir</a></dt> + + <dd>Gestion de base des répertoires</dd> + + <dt><a href="mod_autoindex.html">mod_autoindex</a></dt> + + <dd>Création automatique des listes des + répertoires</dd> + </dl> + + <h2>Contrôle d'accès</h2> + + <dl> + <dt><a href="mod_access.html">mod_access</a></dt> + + <dd>Contrôle d'accès basé sur le nom du + client ou son adresse IP</dd> + + <dt><a href="mod_auth.html">mod_auth</a></dt> + + <dd>Authentification des utilisateurs à partir d'un + fichier texte</dd> + + <dt><a href="mod_auth_dbm.html">mod_auth_dbm</a></dt> + + <dd>Authentification des utilisateurs à partir d'un + fichier DBM</dd> + + <dt><a href="mod_auth_db.html">mod_auth_db</a> Apache 1.1 and + up</dt> + + <dd>Authentification des utilisateurs à partir d'une + base Berkeley</dd> + + <dt><a href="mod_auth_anon.html">mod_auth_anon</a> Apache 1.1 + et supérieur</dt> + + <dd>Accès aux utilisateurs anonymes à des zones + authentifiées</dd> + + <dt><a href="mod_auth_digest.html">mod_auth_digest</a> Apache + 1.3.8 et supérieur</dt> + + <dd>Authentication des utilisateurs à partir d'un + fichier MD5 (expérimental)</dd> + + <dt><a href="mod_digest.html">mod_digest</a> Apache 1.1 et + supérieur</dt> + + <dd>Authentication des utilisateurs à partir d'un + fichier MD5</dd> + </dl> + + <h2>Réponse HTTP</h2> + + <dl> + <dt><a href="mod_headers.html">mod_headers</a> Apache 1.2 et + supérieur</dt> + + <dd>Ajout d'en-têtes HTTP aux ressources</dd> + + <dt><a href="mod_cern_meta.html">mod_cern_meta</a> Apache 1.1 + et supérieur</dt> + + <dd>Support des métafichiers d'en-tête HTTP</dd> + + <dt><a href="mod_expires.html">mod_expires</a> Apache 1.2 et + supérieur</dt> + + <dd>Ajout de l'en-tête Expires: pour les ressources + demandées</dd> + + <dt><a href="mod_asis.html">mod_asis</a></dt> + + <dd>Envoi de fichiers contenant leurs propres en-têtes + HTTP</dd> + </dl> + + <h2>Contenu dynamique</h2> + + <dl> + <dt><a href="mod_include.html">mod_include</a></dt> + + <dd>Documents analysés par le serveur</dd> + + <dt><a href="mod_cgi.html">mod_cgi</a></dt> + + <dd>Appel des scripts CGI</dd> + + <dt><a href="mod_actions.html">mod_actions</a> Apache 1.1 et + supérieur</dt> + + <dd>Exécution de scripts CGI en fonction du type de + média ou de la requête</dd> + + <dt><a href="mod_isapi.html">mod_isapi</a> WIN32 + seulement</dt> + + <dd>Support des extensions Windows ISAPI</dd> + </dl> + + <h2>Gestion du contenu interne</h2> + + <dl> + <dt><a href="mod_status.html">mod_status</a> Apache 1.1 et + supérieur</dt> + + <dd>Affichage de l'état du système</dd> + + <dt><a href="mod_info.html">mod_info</a> Apache 1.1 et + supérieur</dt> + + <dd>Informations sur la configuration du serveur</dd> + </dl> + + <h2>Trace</h2> + + <dl> + <dt><a href="mod_log_config.html">mod_log_config</a></dt> + + <dd>Trace configurable des accès. Remplace + mod_log_common</dd> + + <dt><a href="mod_log_agent.html">mod_log_agent</a></dt> + + <dd>Trace des User Agents</dd> + + <dt><a href="mod_log_referer.html">mod_log_referer</a></dt> + + <dd>Trace des référence d'un document</dd> + + <dt><a href="mod_usertrack.html">mod_usertrack</a> Apache 1.2 + et supérieur</dt> + + <dd>Suivi des utilisateurs à l'aide de cookies + (remplacement de mod_cookies)</dd> + </dl> + + <h2>Divers</h2> + + <dl> + <dt><a href="mod_imap.html">mod_imap</a> Apache 1.1 et + supérieur</dt> + + <dd>Gestion des fichiers imagemap</dd> + + <dt><a href="mod_proxy.html">mod_proxy</a> Apache 1.1 et + supérieur</dt> + + <dd>Module de cache par proxy</dd> + + <dt><a href="mod_so.html">mod_so</a> Apache 1.3 et + supérieur</dt> + + <dd>Support des modules dynamiques (.so sur Unix, .dll sur + Win32)</dd> + + <dt><a href="mod_mmap_static.html">mod_mmap_static</a> Apache + 1.3 et supérieur</dt> + + <dd>Module expérimental de cache mémoire des + fichiers afin d'améliorer les performances</dd> + </dl> + + <h2>Développement</h2> + + <dl> + <dt><a href="mod_example.html">mod_example</a> Apache 1.2 et + supérieur</dt> + + <dd>Démonstration de l'API Apache</dd> + </dl> + + <h2>Obsolète</h2> + + <dl> + <dt><a href="mod_browser.html">mod_browser</a> Apache 1.2.* + seulement</dt> + + <dd>Définition de variables d'environnement en + fonction de la chaîne User-Agent. Ce module est + remplacé par mod_setenvif à partir de la + version 1.3</dd> + + <dt><a href="mod_cookies.html">mod_cookies</a> jusqu'à + Apache 1.1.1</dt> + + <dd>Support des cookies Netscape. Ce module est + remplacé dans Apache 1.2 par le module + mod_usertrack</dd> + + <dt><a href="mod_dld.html">mod_dld</a> Apache 1.2.* et + précédents</dt> + + <dd>Lien au lancement en utilisant la librairie GNU libdld. + Ce module est remplcé dans Apache 1.3 par mod_so</dd> + + <dt><a href="mod_log_common.html">mod_log_common</a> + jusqu'à Apache 1.1.1</dt> + + <dd>Trace des accès utilisant le "Common Logfile + Format". Ce module est remplacé par mod_log_config + à partir d'Apache 1.2</dd> + </dl> + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/mod/index-bytype.html.html b/usr.sbin/httpd/htdocs/manual/mod/index-bytype.html.html new file mode 100644 index 00000000000..215017c4b01 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/mod/index-bytype.html.html @@ -0,0 +1,307 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache modules</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + + + <h1 align="CENTER">Apache modules</h1> + + <p>Below is a list of all of the modules that come as part of + the Apache distribution. See also the list of modules <a + href="./">sorted alphabetically</a> and the complete + alphabetical list of <a href="directives.html">all Apache + directives</a>. For modules that are not part of the Apache + distribution, please see <a + href="http://modules.apache.org/">http://modules.apache.org</a>.</p> + + <h2>Core</h2> + + <dl> + <dt><a href="core.html">Core</a></dt> + + <dd>Core Apache features</dd> + </dl> + + <h2>Environment Creation</h2> + + <dl> + <dt><a href="mod_env.html">mod_env</a></dt> + + <dd>Passing of environments to CGI scripts</dd> + + <dt><a href="mod_setenvif.html">mod_setenvif</a> Apache 1.3 + and up</dt> + + <dd>Set environment variables based on client + information</dd> + + <dt><a href="mod_unique_id.html">mod_unique_id</a> Apache 1.3 + and up</dt> + + <dd>Generate unique request identifier for every request</dd> + </dl> + + <h2>Content Type Decisions</h2> + + <dl> + <dt><a href="mod_mime.html">mod_mime</a></dt> + + <dd>Determining document types using file extensions</dd> + + <dt><a href="mod_mime_magic.html">mod_mime_magic</a></dt> + + <dd>Determining document types using "magic numbers"</dd> + + <dt><a href="mod_negotiation.html">mod_negotiation</a></dt> + + <dd>Content negotiation</dd> + </dl> + + <h2>URL Mapping</h2> + + <dl> + <dt><a href="mod_alias.html">mod_alias</a></dt> + + <dd>Mapping different parts of the host filesystem in the + document tree, and URL redirection</dd> + + <dt><a href="mod_rewrite.html">mod_rewrite</a> Apache 1.2 and + up</dt> + + <dd>Powerful URI-to-filename mapping using regular + expressions</dd> + + <dt><a href="mod_userdir.html">mod_userdir</a></dt> + + <dd>User home directories</dd> + + <dt><a href="mod_speling.html">mod_speling</a> Apache 1.3 and + up</dt> + + <dd>Automatically correct minor typos in URLs</dd> + + <dt><a href="mod_vhost_alias.html">mod_vhost_alias</a> Apache + 1.3.7 and up</dt> + + <dd>Support for dynamically configured mass virtual + hosting</dd> + </dl> + + <h2>Directory Handling</h2> + + <dl> + <dt><a href="mod_dir.html">mod_dir</a></dt> + + <dd>Basic directory handling</dd> + + <dt><a href="mod_autoindex.html">mod_autoindex</a></dt> + + <dd>Automatic directory listings</dd> + </dl> + + <h2>Access Control</h2> + + <dl> + <dt><a href="mod_access.html">mod_access</a></dt> + + <dd>Access control based on client hostname or IP + address</dd> + + <dt><a href="mod_auth.html">mod_auth</a></dt> + + <dd>User authentication using text files</dd> + + <dt><a href="mod_auth_dbm.html">mod_auth_dbm</a></dt> + + <dd>User authentication using DBM files</dd> + + <dt><a href="mod_auth_db.html">mod_auth_db</a></dt> + + <dd>User authentication using Berkeley DB files</dd> + + <dt><a href="mod_auth_anon.html">mod_auth_anon</a> Apache 1.1 + and up</dt> + + <dd>Anonymous user access to authenticated areas</dd> + + <dt><a href="mod_auth_digest.html">mod_auth_digest</a> Apache + 1.3.8 and up</dt> + + <dd>Experimental MD5 authentication</dd> + + <dt><a href="mod_digest.html">mod_digest</a> Apache 1.1 and + up</dt> + + <dd>MD5 authentication</dd> + </dl> + + <h2>HTTP Response</h2> + + <dl> + <dt><a href="mod_headers.html">mod_headers</a> Apache 1.2 and + up</dt> + + <dd>Add arbitrary HTTP headers to resources</dd> + + <dt><a href="mod_cern_meta.html">mod_cern_meta</a> Apache 1.1 + and up</dt> + + <dd>Support for HTTP header metafiles</dd> + + <dt><a href="mod_expires.html">mod_expires</a> Apache 1.2 and + up</dt> + + <dd>Apply Expires: headers to resources</dd> + + <dt><a href="mod_asis.html">mod_asis</a></dt> + + <dd>Sending files which contain their own HTTP headers</dd> + </dl> + + <h2>Dynamic Content</h2> + + <dl> + <dt><a href="mod_include.html">mod_include</a></dt> + + <dd>Server-parsed documents</dd> + + <dt><a href="mod_cgi.html">mod_cgi</a></dt> + + <dd>Invoking CGI scripts</dd> + + <dt><a href="mod_actions.html">mod_actions</a> Apache 1.1 and + up</dt> + + <dd>Executing CGI scripts based on media type or request + method</dd> + + <dt><a href="mod_isapi.html">mod_isapi</a> WIN32 only</dt> + + <dd>Windows ISAPI Extension support</dd> + </dl> + + <h2>Internal Content Handlers</h2> + + <dl> + <dt><a href="mod_status.html">mod_status</a> Apache 1.1 and + up</dt> + + <dd>Server status display</dd> + + <dt><a href="mod_info.html">mod_info</a> Apache 1.1 and + up</dt> + + <dd>Server configuration information</dd> + </dl> + + <h2>Logging</h2> + + <dl> + <dt><a href="mod_log_config.html">mod_log_config</a></dt> + + <dd>User-configurable logging replacement for + mod_log_common</dd> + + <dt><a href="mod_log_agent.html">mod_log_agent</a></dt> + + <dd>Logging of User Agents</dd> + + <dt><a href="mod_log_referer.html">mod_log_referer</a></dt> + + <dd>Logging of document references</dd> + + <dt><a href="mod_usertrack.html">mod_usertrack</a> Apache 1.2 + and up</dt> + + <dd>User tracking using Cookies (replacement for + mod_cookies.c)</dd> + </dl> + + <h2>Miscellaneous</h2> + + <dl> + <dt><a href="mod_imap.html">mod_imap</a> Apache 1.1 and + up</dt> + + <dd>The imagemap file handler</dd> + + <dt><a href="mod_proxy.html">mod_proxy</a> Apache 1.1 and + up</dt> + + <dd>Caching proxy abilities</dd> + + <dt><a href="mod_so.html">mod_so</a> Apache 1.3 and up</dt> + + <dd>Support for loading modules (DLLs on Windows) at + runtime</dd> + + <dt><a href="mod_mmap_static.html">mod_mmap_static</a> Apache + 1.3 and up</dt> + + <dd>Experimental file caching, mapping files into memory to + improve performace</dd> + </dl> + + <h2>Development</h2> + + <dl> + <dt><a href="mod_example.html">mod_example</a> Apache 1.2 and + up</dt> + + <dd>Demonstrates Apache API</dd> + </dl> + + <h2>Obsolete</h2> + + <dl> + <dt><a href="mod_browser.html">mod_browser</a> Apache 1.2.* + only</dt> + + <dd>Set environment variables based on User-Agent strings. + Replaced by mod_setenvif in Apache 1.3 and up</dd> + + <dt><a href="mod_cookies.html">mod_cookies</a> up to Apache + 1.1.1</dt> + + <dd>Support for Netscape-like cookies. Replaced in Apache 1.2 + by mod_usertrack</dd> + + <dt><a href="mod_dld.html">mod_dld</a> Apache 1.2.* and + earlier</dt> + + <dd>Start-time linking with the GNU libdld. Replaced in + Apache 1.3 by mod_so</dd> + + <dt><a href="mod_log_common.html">mod_log_common</a> up to + Apache 1.1.1</dt> + + <dd>Standard logging in the Common Logfile Format. Replaced + by the mod_log_config module in Apache 1.2 and up</dd> + </dl> + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + + </body> +</html> + + + diff --git a/usr.sbin/httpd/htdocs/manual/mod/index.html.en b/usr.sbin/httpd/htdocs/manual/mod/index.html.en new file mode 100644 index 00000000000..1773eab64fb --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/mod/index.html.en @@ -0,0 +1,263 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache modules</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + + + <h1 align="CENTER">Apache modules</h1> + + <p>Below is a list of all of the modules that come as part of + the Apache distribution. See also the list of modules <a + href="index-bytype.html">sorted by type</a> and the complete + alphabetical list of <a href="directives.html">all Apache + directives</a>. For Apache modules that are not part of the + Apache distribution, please see <a + href="http://modules.apache.org/">http://modules.apache.org</a></p> + + <dl> + <dt><a href="core.html">Core</a></dt> + + <dd>Core Apache features</dd> + + <dt><a href="mod_access.html">mod_access</a></dt> + + <dd>Access control based on client hostname or IP + address</dd> + + <dt><a href="mod_actions.html">mod_actions</a> Apache 1.1 and + up</dt> + + <dd>Executing CGI scripts based on media type or request + method</dd> + + <dt><a href="mod_alias.html">mod_alias</a></dt> + + <dd>Mapping different parts of the host filesystem in the + document tree, and URL redirection</dd> + + <dt><a href="mod_asis.html">mod_asis</a></dt> + + <dd>Sending files which contain their own HTTP headers</dd> + + <dt><a href="mod_auth.html">mod_auth</a></dt> + + <dd>User authentication using text files</dd> + + <dt><a href="mod_auth_anon.html">mod_auth_anon</a> Apache 1.1 + and up</dt> + + <dd>Anonymous user access to authenticated areas</dd> + + <dt><a href="mod_auth_db.html">mod_auth_db</a> Apache 1.1 and + up</dt> + + <dd>User authentication using Berkeley DB files</dd> + + <dt><a href="mod_auth_dbm.html">mod_auth_dbm</a></dt> + + <dd>User authentication using DBM files</dd> + + <dt><a href="mod_auth_digest.html">mod_auth_digest</a> Apache + 1.3.8 and up</dt> + + <dd>MD5 authentication</dd> + + <dt><a href="mod_autoindex.html">mod_autoindex</a></dt> + + <dd>Automatic directory listings</dd> + + <dt><a href="mod_browser.html">mod_browser</a> Apache 1.2.* + only</dt> + + <dd>Set environment variables based on User-Agent strings. + Replaced by mod_setenvif in Apache 1.3 and up</dd> + + <dt><a href="mod_cern_meta.html">mod_cern_meta</a> Apache 1.1 + and up</dt> + + <dd>Support for HTTP header metafiles</dd> + + <dt><a href="mod_cgi.html">mod_cgi</a></dt> + + <dd>Invoking CGI scripts</dd> + + <dt><a href="mod_cookies.html">mod_cookies</a> up to Apache + 1.1.1</dt> + + <dd>Support for Netscape-like cookies. Replaced in Apache 1.2 + by mod_usertrack</dd> + + <dt><a href="mod_define.html">mod_define</a></dt> + + <dd>Variable Definition for Arbitrary Directives</dd> + + <dt><a href="mod_digest.html">mod_digest</a> Apache 1.1 and + up</dt> + + <dd>MD5 authentication (deprecated by mod_auth_digest)</dd> + + <dt><a href="mod_dir.html">mod_dir</a></dt> + + <dd>Basic directory handling</dd> + + <dt><a href="mod_dld.html">mod_dld</a> Apache 1.2.* and + earlier</dt> + + <dd>Start-time linking with the GNU libdld. Replaced in + Apache 1.3 by mod_so</dd> + + <dt><a href="mod_env.html">mod_env</a> Apache 1.1 and up</dt> + + <dd>Passing of environments to CGI scripts</dd> + + <dt><a href="mod_example.html">mod_example</a> Apache 1.2 and + up</dt> + + <dd>Demonstrates Apache API</dd> + + <dt><a href="mod_expires.html">mod_expires</a> Apache 1.2 and + up</dt> + + <dd>Apply Expires: headers to resources</dd> + + <dt><a href="mod_headers.html">mod_headers</a> Apache 1.2 and + up</dt> + + <dd>Add arbitrary HTTP headers to resources</dd> + + <dt><a href="mod_imap.html">mod_imap</a> Apache 1.1 and + up</dt> + + <dd>The imagemap file handler</dd> + + <dt><a href="mod_include.html">mod_include</a></dt> + + <dd>Server-parsed documents</dd> + + <dt><a href="mod_info.html">mod_info</a> Apache 1.1 and + up</dt> + + <dd>Server configuration information</dd> + + <dt><a href="mod_isapi.html">mod_isapi</a> WIN32 only</dt> + + <dd>Windows ISAPI Extension support</dd> + + <dt><a href="mod_log_agent.html">mod_log_agent</a></dt> + + <dd>Logging of User Agents</dd> + + <dt><a href="mod_log_common.html">mod_log_common</a> up to + Apache 1.1.1</dt> + + <dd>Standard logging in the Common Logfile Format. Replaced + by the mod_log_config module in Apache 1.2 and up</dd> + + <dt><a href="mod_log_config.html">mod_log_config</a></dt> + + <dd>User-configurable logging replacement for + mod_log_common</dd> + + <dt><a href="mod_log_referer.html">mod_log_referer</a></dt> + + <dd>Logging of document references</dd> + + <dt><a href="mod_mime.html">mod_mime</a></dt> + + <dd>Determining document types using file extensions</dd> + + <dt><a href="mod_mime_magic.html">mod_mime_magic</a></dt> + + <dd>Determining document types using "magic numbers"</dd> + + <dt><a href="mod_mmap_static.html">mod_mmap_static</a> Apache + 1.3 and up</dt> + + <dd>Experimental file caching, mapping files into memory to + improve performance</dd> + + <dt><a href="mod_negotiation.html">mod_negotiation</a></dt> + + <dd>Content negotiation</dd> + + <dt><a href="mod_proxy.html">mod_proxy</a> Apache 1.1 and + up</dt> + + <dd>Caching proxy abilities</dd> + + <dt><a href="mod_rewrite.html">mod_rewrite</a> Apache 1.2 and + up</dt> + + <dd>Powerful URI-to-filename mapping using regular + expressions</dd> + + <dt><a href="mod_setenvif.html">mod_setenvif</a> Apache 1.3 + and up</dt> + + <dd>Set environment variables based on client + information</dd> + + <dt><a href="mod_so.html">mod_so</a> Apache 1.3 and up</dt> + + <dd>Support for loading modules (.so's on Unix, .dll's on + Win32) at runtime</dd> + + <dt><a href="mod_speling.html">mod_speling</a> Apache 1.3 and + up</dt> + + <dt><a href="mod_ssl/index.html">mod_ssl</a> Apache 1.3 with mod_ssl + applied</dt> + + <dd>Apache SSL interface to OpenSSL</dd> + + <dd>Automatically correct minor typos in URLs</dd> + + <dt><a href="mod_status.html">mod_status</a> Apache 1.1 and + up</dt> + + <dd>Server status display</dd> + + <dt><a href="mod_unique_id.html">mod_unique_id</a> Apache 1.3 + and up</dt> + + <dd>Generate unique request identifier for every request</dd> + + <dt><a href="mod_userdir.html">mod_userdir</a></dt> + + <dd>User home directories</dd> + + <dt><a href="mod_usertrack.html">mod_usertrack</a> Apache 1.2 + and up</dt> + + <dd>User tracking using Cookies (replacement for + mod_cookies.c)</dd> + + <dt><a href="mod_vhost_alias.html">mod_vhost_alias</a> Apache + 1.3.7 and up</dt> + + <dd>Support for dynamically configured mass virtual + hosting</dd> + </dl> + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/mod/index.html.fr b/usr.sbin/httpd/htdocs/manual/mod/index.html.fr new file mode 100644 index 00000000000..86f1a62d6f0 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/mod/index.html.fr @@ -0,0 +1,278 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!-- Traduction anglais 1.38 --> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + <meta http-equiv="Content-Type" + content="text/html; charset=iso-8859-1" /> + + <title>Modules Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + + + <h1 align="CENTER">Modules Apache</h1> + + <p>Ci dessous est donnée une liste des modules faisant + partie de la distribution Apache. Voir aussi la liste des + modules <a href="index-bytype.html">triés par type</a> + et la liste complète alphabétique de <a + href="directives.html">toutes les directives d'Apache</a>. Pour + les modules d'Apache qui ne font pas partie de la distribution, + vous pouvez consulter <a + href="http://modules.apache.org/">http://modules.apache.org</a></p> + + <dl> + <dt><a href="core.html">Base</a></dt> + + <dd>Fonctionnalités de base d'Apache</dd> + + <dt><a href="mod_access.html">mod_access</a></dt> + + <dd>Contrôle d'accès basé sur le nom du + client ou son adresse IP</dd> + + <dt><a href="mod_actions.html">mod_actions</a> Apache 1.1 et + supérieur</dt> + + <dd>Exécution de scripts CGI en fonction du type de + média ou de la requête</dd> + + <dt><a href="mod_alias.html">mod_alias</a></dt> + + <dd>Association de différentes parties du + système de fichier de l'hôte dans l'arborescence + des documents, et redirection des URL.</dd> + + <dt><a href="mod_asis.html">mod_asis</a></dt> + + <dd>Envoi de fichiers contenant leurs propres en-têtes + HTTP</dd> + + <dt><a href="mod_auth.html">mod_auth</a></dt> + + <dd>Authentification des utilisateurs à partir d'un + fichier texte</dd> + + <dt><a href="mod_auth_anon.html">mod_auth_anon</a> Apache 1.1 + et supérieur</dt> + + <dd>Accès aux utilisateurs anonymes à des zones + authentifiées</dd> + + <dt><a href="mod_auth_db.html">mod_auth_db</a> Apache 1.1 et + supérieur</dt> + + <dd>Authentification des utilisateurs à partir d'une + base Berkeley</dd> + + <dt><a href="mod_auth_dbm.html">mod_auth_dbm</a></dt> + + <dd>Authentification des utilisateurs à partir d'un + fichier DBM</dd> + + <dt><a href="mod_auth_digest.html">mod_auth_digest</a> Apache + 1.3.8 et supérieur</dt> + + <dd>Authentication des utilisateurs à partir d'un + fichier MD5 (expérimental)</dd> + + <dt><a href="mod_autoindex.html">mod_autoindex</a></dt> + + <dd>Création automatique des listes des + répertoires</dd> + + <dt><a href="mod_browser.html">mod_browser</a> Apache 1.2.* + seulement</dt> + + <dd>Définition de variables d'environnement en + fonction de la chaîne User-Agent. Ce module est + remplacé par mod_setenvif à partir de la + version 1.3</dd> + + <dt><a href="mod_cern_meta.html">mod_cern_meta</a> Apache 1.1 + et supérieur</dt> + + <dd>Support des métafichiers d'en-tête HTTP</dd> + + <dt><a href="mod_cgi.html">mod_cgi</a></dt> + + <dd>Appel des scripts CGI</dd> + + <dt><a href="mod_cookies.html">mod_cookies</a> jusqu'à + Apache 1.1.1</dt> + + <dd>Support des cookies Netscape. Ce module est + remplacé dans Apache 1.2 par le module + mod_usertrack</dd> + + <dt><a href="mod_digest.html">mod_digest</a> Apache 1.1 et + supérieur</dt> + + <dd>Authentication MD5</dd> + + <dt><a href="mod_dir.html">mod_dir</a></dt> + + <dd>Gestion de base des répertoires</dd> + + <dt><a href="mod_dld.html">mod_dld</a> Apache 1.2.* et + précédents</dt> + + <dd>Lien au lancement en utilisant la librairie GNU libdld. + Ce module est remplcé dans Apache 1.3 par mod_so</dd> + + <dt><a href="mod_env.html">mod_env</a> Apache 1.1 et + supérieur</dt> + + <dd>Passage d'environnement aux scripts CGI</dd> + + <dt><a href="mod_example.html">mod_example</a> Apache 1.2 et + supérieur</dt> + + <dd>Démonstration de l'API Apache</dd> + + <dt><a href="mod_expires.html">mod_expires</a> Apache 1.2 et + supérieur</dt> + + <dd>Ajout de l'en-tête Expires: pour les ressources + spécifiées</dd> + + <dt><a href="mod_headers.html">mod_headers</a> Apache 1.2 et + supérieur</dt> + + <dd>Ajout d'en-têtes HTTP aux ressources</dd> + + <dt><a href="mod_imap.html">mod_imap</a> Apache 1.1 et + supérieur</dt> + + <dd>Gestion des fichiers imagemap</dd> + + <dt><a href="mod_include.html">mod_include</a></dt> + + <dd>Documents analysés par le serveur</dd> + + <dt><a href="mod_info.html">mod_info</a> Apache 1.1 et + supérieur</dt> + + <dd>Informations sur la configuration du serveur</dd> + + <dt><a href="mod_isapi.html">mod_isapi</a> WIN32 + seulement</dt> + + <dd>Support des extensions Windows ISAPI</dd> + + <dt><a href="mod_log_agent.html">mod_log_agent</a></dt> + + <dd>Trace des User Agents</dd> + + <dt><a href="mod_log_common.html">mod_log_common</a> + jusqu'à Apache 1.1.1</dt> + + <dd>Trace des accès utilisant le "Common Logfile + Format". Ce module est remplacé par mod_log_config + à partir d'Apache 1.2</dd> + + <dt><a href="mod_log_config.html">mod_log_config</a></dt> + + <dd>Trace configurable des accès. Remplace + mod_log_common</dd> + + <dt><a href="mod_log_referer.html">mod_log_referer</a></dt> + + <dd>Trace des référants d'un document</dd> + + <dt><a href="mod_mime.html">mod_mime</a></dt> + + <dd>Détermination du type des documents en fonction de + l'extension du fichier</dd> + + <dt><a href="mod_mime_magic.html">mod_mime_magic</a></dt> + + <dd>Détermination du type des documents en fonction de + "nombres magiques"</dd> + + <dt><a href="mod_mmap_static.html">mod_mmap_static</a> Apache + 1.3 et supérieur</dt> + + <dd>Module expérimental de cache mémoire des + fichiers afin d'améliorer les performances</dd> + + <dt><a href="mod_negotiation.html">mod_negotiation</a></dt> + + <dd>Négotiation de contenu</dd> + + <dt><a href="mod_proxy.html">mod_proxy</a> Apache 1.1 et + supérieur</dt> + + <dd>Module de cache par proxy</dd> + + <dt><a href="mod_rewrite.html">mod_rewrite</a> Apache 1.2 et + supérieur</dt> + + <dd>Association des URI à des fichiers en utilisant + des expressions régulières</dd> + + <dt><a href="mod_setenvif.html">mod_setenvif</a> Apache 1.3 + et supérieur</dt> + + <dd>Définition de variables d'environnement en + fonction des informations client</dd> + + <dt><a href="mod_so.html">mod_so</a> Apache 1.3 et + supérieur</dt> + + <dd>Support des modules dynamiques (.so sur Unix, .dll sur + Win32)</dd> + + <dt><a href="mod_speling.html">mod_speling</a> Apache 1.3 et + supérieur</dt> + + <dd>Correction automatique d'erreurs de frappe mineures dans + les URL</dd> + + <dt><a href="mod_status.html">mod_status</a> Apache 1.1 et + supérieur</dt> + + <dd>Affichage de l'état du système</dd> + + <dt><a href="mod_userdir.html">mod_userdir</a></dt> + + <dd>Répertoires personnels d'utilisateurs</dd> + + <dt><a href="mod_unique_id.html">mod_unique_id</a> Apache 1.3 + et supérieur</dt> + + <dd>Génération d'identifiants uniques de + requête</dd> + + <dt><a href="mod_usertrack.html">mod_usertrack</a> Apache 1.2 + et supérieur</dt> + + <dd>Suivi des utilisateurs à l'aide de cookies + (remplacement de mod_cookies)</dd> + + <dt><a href="mod_vhost_alias.html">mod_vhost_alias</a> Apache + 1.3.7 et supérieur</dt> + + <dd>Support d'hôtes virtuels dynamiquement + configurables</dd> + </dl> + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/mod/index.html.html b/usr.sbin/httpd/htdocs/manual/mod/index.html.html new file mode 100644 index 00000000000..c9d5ffe2f56 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/mod/index.html.html @@ -0,0 +1,258 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache modules</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + + + <h1 align="CENTER">Apache modules</h1> + + <p>Below is a list of all of the modules that come as part of + the Apache distribution. See also the list of modules <a + href="index-bytype.html">sorted by type</a> and the complete + alphabetical list of <a href="directives.html">all Apache + directives</a>. For Apache modules that are not part of the + Apache distribution, please see <a + href="http://modules.apache.org/">http://modules.apache.org</a></p> + + <dl> + <dt><a href="core.html">Core</a></dt> + + <dd>Core Apache features</dd> + + <dt><a href="mod_access.html">mod_access</a></dt> + + <dd>Access control based on client hostname or IP + address</dd> + + <dt><a href="mod_actions.html">mod_actions</a> Apache 1.1 and + up</dt> + + <dd>Executing CGI scripts based on media type or request + method</dd> + + <dt><a href="mod_alias.html">mod_alias</a></dt> + + <dd>Mapping different parts of the host filesystem in the + document tree, and URL redirection</dd> + + <dt><a href="mod_asis.html">mod_asis</a></dt> + + <dd>Sending files which contain their own HTTP headers</dd> + + <dt><a href="mod_auth.html">mod_auth</a></dt> + + <dd>User authentication using text files</dd> + + <dt><a href="mod_auth_anon.html">mod_auth_anon</a> Apache 1.1 + and up</dt> + + <dd>Anonymous user access to authenticated areas</dd> + + <dt><a href="mod_auth_db.html">mod_auth_db</a> Apache 1.1 and + up</dt> + + <dd>User authentication using Berkeley DB files</dd> + + <dt><a href="mod_auth_dbm.html">mod_auth_dbm</a></dt> + + <dd>User authentication using DBM files</dd> + + <dt><a href="mod_auth_digest.html">mod_auth_digest</a> Apache + 1.3.8 and up</dt> + + <dd>MD5 authentication</dd> + + <dt><a href="mod_autoindex.html">mod_autoindex</a></dt> + + <dd>Automatic directory listings</dd> + + <dt><a href="mod_browser.html">mod_browser</a> Apache 1.2.* + only</dt> + + <dd>Set environment variables based on User-Agent strings. + Replaced by mod_setenvif in Apache 1.3 and up</dd> + + <dt><a href="mod_cern_meta.html">mod_cern_meta</a> Apache 1.1 + and up</dt> + + <dd>Support for HTTP header metafiles</dd> + + <dt><a href="mod_cgi.html">mod_cgi</a></dt> + + <dd>Invoking CGI scripts</dd> + + <dt><a href="mod_cookies.html">mod_cookies</a> up to Apache + 1.1.1</dt> + + <dd>Support for Netscape-like cookies. Replaced in Apache 1.2 + by mod_usertrack</dd> + + <dt><a href="mod_digest.html">mod_digest</a> Apache 1.1 and + up</dt> + + <dd>MD5 authentication (deprecated by mod_auth_digest)</dd> + + <dt><a href="mod_dir.html">mod_dir</a></dt> + + <dd>Basic directory handling</dd> + + <dt><a href="mod_dld.html">mod_dld</a> Apache 1.2.* and + earlier</dt> + + <dd>Start-time linking with the GNU libdld. Replaced in + Apache 1.3 by mod_so</dd> + + <dt><a href="mod_env.html">mod_env</a> Apache 1.1 and up</dt> + + <dd>Passing of environments to CGI scripts</dd> + + <dt><a href="mod_example.html">mod_example</a> Apache 1.2 and + up</dt> + + <dd>Demonstrates Apache API</dd> + + <dt><a href="mod_expires.html">mod_expires</a> Apache 1.2 and + up</dt> + + <dd>Apply Expires: headers to resources</dd> + + <dt><a href="mod_headers.html">mod_headers</a> Apache 1.2 and + up</dt> + + <dd>Add arbitrary HTTP headers to resources</dd> + + <dt><a href="mod_imap.html">mod_imap</a> Apache 1.1 and + up</dt> + + <dd>The imagemap file handler</dd> + + <dt><a href="mod_include.html">mod_include</a></dt> + + <dd>Server-parsed documents</dd> + + <dt><a href="mod_info.html">mod_info</a> Apache 1.1 and + up</dt> + + <dd>Server configuration information</dd> + + <dt><a href="mod_isapi.html">mod_isapi</a> WIN32 only</dt> + + <dd>Windows ISAPI Extension support</dd> + + <dt><a href="mod_log_agent.html">mod_log_agent</a></dt> + + <dd>Logging of User Agents</dd> + + <dt><a href="mod_log_common.html">mod_log_common</a> up to + Apache 1.1.1</dt> + + <dd>Standard logging in the Common Logfile Format. Replaced + by the mod_log_config module in Apache 1.2 and up</dd> + + <dt><a href="mod_log_config.html">mod_log_config</a></dt> + + <dd>User-configurable logging replacement for + mod_log_common</dd> + + <dt><a href="mod_log_referer.html">mod_log_referer</a></dt> + + <dd>Logging of document references</dd> + + <dt><a href="mod_mime.html">mod_mime</a></dt> + + <dd>Determining document types using file extensions</dd> + + <dt><a href="mod_mime_magic.html">mod_mime_magic</a></dt> + + <dd>Determining document types using "magic numbers"</dd> + + <dt><a href="mod_mmap_static.html">mod_mmap_static</a> Apache + 1.3 and up</dt> + + <dd>Experimental file caching, mapping files into memory to + improve performance</dd> + + <dt><a href="mod_negotiation.html">mod_negotiation</a></dt> + + <dd>Content negotiation</dd> + + <dt><a href="mod_proxy.html">mod_proxy</a> Apache 1.1 and + up</dt> + + <dd>Caching proxy abilities</dd> + + <dt><a href="mod_rewrite.html">mod_rewrite</a> Apache 1.2 and + up</dt> + + <dd>Powerful URI-to-filename mapping using regular + expressions</dd> + + <dt><a href="mod_setenvif.html">mod_setenvif</a> Apache 1.3 + and up</dt> + + <dd>Set environment variables based on client + information</dd> + + <dt><a href="mod_so.html">mod_so</a> Apache 1.3 and up</dt> + + <dd>Support for loading modules (.so's on Unix, .dll's on + Win32) at runtime</dd> + + <dt><a href="mod_speling.html">mod_speling</a> Apache 1.3 and + up</dt> + + <dd>Automatically correct minor typos in URLs</dd> + + <dt><a href="mod_status.html">mod_status</a> Apache 1.1 and + up</dt> + + <dd>Server status display</dd> + + <dt><a href="mod_unique_id.html">mod_unique_id</a> Apache 1.3 + and up</dt> + + <dd>Generate unique request identifier for every request</dd> + + <dt><a href="mod_userdir.html">mod_userdir</a></dt> + + <dd>User home directories</dd> + + <dt><a href="mod_usertrack.html">mod_usertrack</a> Apache 1.2 + and up</dt> + + <dd>User tracking using Cookies (replacement for + mod_cookies.c)</dd> + + <dt><a href="mod_vhost_alias.html">mod_vhost_alias</a> Apache + 1.3.7 and up</dt> + + <dd>Support for dynamically configured mass virtual + hosting</dd> + </dl> + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + + </body> +</html> + + + diff --git a/usr.sbin/httpd/htdocs/manual/mod/index.html.ja.jis b/usr.sbin/httpd/htdocs/manual/mod/index.html.ja.jis new file mode 100644 index 00000000000..373495c72fd --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/mod/index.html.ja.jis @@ -0,0 +1,139 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<title>Apache $B%b%8%e!<%k(B</title> +</head> +<!-- English revision: 1.38 --> +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> +<body + bgcolor="#FFFFFF" + text="#000000" + link="#0000FF" + vlink="#000080" + alink="#FF0000" +> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + +<h1 align="CENTER">Apache $B%b%8%e!<%k(B</h1> + +<p> +Apache $B$NG[I[$K4^$^$l$F$$$k%b%8%e!<%k$O!"0J2<$NDL$j$G$9!#(B +<a href="index-bytype.html">$B<oN`=g$N%b%8%e!<%k%j%9%H(B</a> +$B$d(B <a href="directives.html">Apache $B$NA4%G%#%l%/%F%#%V(B</a> +$B$N%"%k%U%!%Y%C%H=g%j%9%H$b;2>H$7$F$/$@$5$$!#(B + +Apache $B$NG[I[$K4^$^$l$J$$(B Apache $B%b%8%e!<%k$K$D$$$F$O(B +<a href="http://modules.apache.org/">http://modules.apache.org</a> +$B$r;2>H$7$F$/$@$5$$!#(B +</p> + +<dl> +<dt><a href="core.html">Core</a> +<dd>Apache $B$N%3%"(B +<dt><a href="mod_access.html">mod_access</a> +<dd>$B%/%i%$%"%s%H$N%[%9%HL>$d(B IP $B%"%I%l%9$K$h$C$F%"%/%;%9@)8f$r9T$J$&(B +<dt><a href="mod_actions.html">mod_actions</a> Apache 1.1 $B0J9_(B +<dd>$B%a%G%#%"%?%$%W$d%j%/%(%9%H%a%=%C%I$K$h$C$F(B CGI $B%9%/%j%W%H$r<B9T$9$k(B +<dt><a href="mod_alias.html">mod_alias</a> +<dd>$B%[%9%H%U%!%$%k%7%9%F%`$N%I%-%e%a%s%H%D%j!<$X$N%^%C%T%s%05Z$S(B +URL $B$N%j%@%$%l%/%7%g%s$r9T$J$&(B +<dt><a href="mod_asis.html">mod_asis</a> +<dd>HTTP $B%X%C%@$r4^$`%U%!%$%k$rAw?.$9$k(B +<dt><a href="mod_auth.html">mod_auth</a> +<dd>$B%F%-%9%H%U%!%$%k7A<0$NG'>Z%U%!%$%k$r;HMQ$7$?%f!<%6G'>Z5!G=$rDs6!$9$k(B +<dt><a href="mod_auth_anon.html">mod_auth_anon</a> Apache 1.1 $B0J9_(B +<dd>$BG'>Z$,I,MW$H$J$k%(%j%"$X$NF?L>(B (anonymous) $B$G$N%"%/%;%95!G=$rDs6!$9$k(B +<dt><a href="mod_auth_db.html">mod_auth_db</a> Apache 1.1 $B0J9_(B +<dd>Berkeley DB $B7A<0$NG'>Z%U%!%$%k$r;HMQ$7$?%f!<%6G'>Z5!G=$rDs6!$9$k(B +<dt><a href="mod_auth_dbm.html">mod_auth_dbm</a> +<dd>DBM $B7A<0$NG'>Z%U%!%$%k$r;HMQ$7$?%f!<%6G'>Z5!G=$rDs6!$9$k(B +<dt><a href="mod_auth_digest.html">mod_auth_digest</a> Apache 1.3.8 $B0J9_(B +<dd>MD5 $B$r;HMQ$7$?<B83E*$JG'>Z5!G=(B ($BLuCm(B: Digest $BG'>Z(B) $B$rDs6!$9$k(B +<dt><a href="mod_autoindex.html">mod_autoindex</a> +<dd>$B<+F0E*$K%G%#%l%/%H%j0lMw$r:n@.$9$k(B +<dt><a href="mod_browser.html">mod_browser</a> Apache 1.2.* $B$G$N$_M-8z(B +<dd>User-Agent $BJ8;zNs$r85$K4D6-JQ?t$r@_Dj$9$k!#(B +Apache 1.3 $B0J9_$K$*$$$F!"(Bmod_setenvif $B$GCV$-49$($i$l$?(B +<dt><a href="mod_cern_meta.html">mod_cern_meta</a> Apache 1.1 $B0J9_(B +<dd>HTTP $B%X%C%@%a%?%U%!%$%k$r%5%]!<%H$9$k(B +<dt><a href="mod_cgi.html">mod_cgi</a> +<dd>CGI $B%9%/%j%W%H$r<B9T$9$k(B +<dt><a href="mod_cookies.html">mod_cookies</a> Apache 1.1.1 $B0J9_(B +<dd>Netscape $B$N$h$&$J(B cookie $B$r%5%]!<%H$9$k!#(B +Apache 1.2 $B$K$*$$$F!"(Bmod_usertrack $B$KCV$-49$($i$l$?(B +<dt><a href="mod_digest.html">mod_digest</a> Apache 1.1 $B0J9_(B +<dd>MD5 $BG'>Z(B ($BLuCm(B: Digest $BG'>Z(B) $B5!G=$rDs6!$9$k(B +<dt><a href="mod_dir.html">mod_dir</a> +<dd>$B%G%#%l%/%H%j$N<h$j07$$$K$D$$$F$N!"4pK\E*$J5!G=$rDs6!$9$k(B +<dt><a href="mod_dld.html">mod_dld</a> Apache 1.2.* $B5Z$S$=$l0JA0(B +<dd>GNU libdld $B$rMQ$$$F5/F0;~$K%b%8%e!<%k$N%j%s%/$r9T$J$&!#(B +Apache 1.3 $B$K$*$$$F!"(Bmod_so $B$KCV$-49$($i$l$?(B +<dt><a href="mod_env.html">mod_env</a> Apache 1.1 $B0J9_(B +<dd>CGI $B%9%/%j%W%H$KEO$94D6-JQ?t$NA`:n$r9T$J$&(B +<dt><a href="mod_example.html">mod_example</a> Apache 1.2 $B0J9_(B +<dd>Apache API $B$N%G%b%s%9%H%l!<%7%g%sMQ(B +<dt><a href="mod_expires.html">mod_expires</a> Apache 1.2 $B0J9_(B +<dd>$B%j%=!<%9$K(B Expires: $B%X%C%@$rE,MQ$9$k(B +<dt><a href="mod_headers.html">mod_headers</a> Apache 1.2 $B0J9_(B +<dd>$B%j%=!<%9$KG$0U$N(B HTTP $B%X%C%@$r2C$($k(B +<dt><a href="mod_imap.html">mod_imap</a> Apache 1.1 $B0J9_(B +<dd>$B%$%a!<%8%^%C%W%U%!%$%k$r<h$j07$&5!G=$rDs6!$9$k(B +<dt><a href="mod_include.html">mod_include</a> +<dd>SSI $B%I%-%e%a%s%H$rM-8z$K$9$k(B +<dt><a href="mod_info.html">mod_info</a> Apache 1.1 $B0J9_(B +<dd>$B%5!<%P$N@_Dj>pJs$r1\Mw$9$k(B +<dt><a href="mod_isapi.html">mod_isapi</a> WIN32 $B$N$_(B +<dd>Windows ISAPI $B%(%/%9%F%s%7%g%s$r%5%]!<%H$9$k(B +<dt><a href="mod_log_agent.html">mod_log_agent</a> +<dd>User Agent $B$N%m%0$r5-O?$9$k(B +<dt><a href="mod_log_common.html">mod_log_common</a> Apache 1.1.1 $B0J9_(B +<dd>Common Logfile Format $B$G$NI8=`E*$J=q<0$K$h$j%m%0$r5-O?$9$k!#(B +Apache 1.2 $B0J9_$K$*$$$F!"(Bmod_log_config $B%b%8%e!<%k$KCV$-49$($i$l$?(B +<dt><a href="mod_log_config.html">mod_log_config</a> +<dd>mod_log_common $B$NBe$o$j$H$J$k$b$N$G!"%f!<%6$,=q<0$r@_Dj$G$-$k(B +<dt><a href="mod_log_referer.html">mod_log_referer</a> +<dd>$B%I%-%e%a%s%H$N;2>H85(B (REFERER) $B$N%m%0$r5-O?$9$k(B +<dt><a href="mod_mime.html">mod_mime</a> +<dd>$B%U%!%$%k$N3HD%;R$rMxMQ$7$F%I%-%e%a%s%H%?%$%W$NH=Dj$r9T$J$&(B +<dt><a href="mod_mime_magic.html">mod_mime_magic</a> +<dd>"$B%^%8%C%/%J%s%P!<(B" $B$rMxMQ$7$F%I%-%e%a%s%H%?%$%W$NH=Dj$r9T$J$&(B +<dt><a href="mod_mmap_static.html">mod_mmap_static</a> Apache 1.3 $B0J9_(B +<dd>$B%U%!%$%k$N%-%c%C%7%s%0$r9T$J$&<B83E*$J%b%8%e!<%k$G!"%U%!%$%k$r%a%b%jFb$K(B +$B%^%C%T%s%0$9$k$3$H$K$h$j%Q%U%)!<%^%s%9$r8~>e$5$;$k(B +<dt><a href="mod_negotiation.html">mod_negotiation</a> +<dd>$B%3%s%F%s%H%M%4%7%(!<%7%g%s5!G=$rDs6!$9$k(B +<dt><a href="mod_proxy.html">mod_proxy</a> Apache 1.1 $B0J9_(B +<dd>proxy $B%-%c%C%7%e5!G=$rDs6!$9$k(B +<dt><a href="mod_rewrite.html">mod_rewrite</a> Apache 1.2 $B0J9_(B +<dd>$B@55,I=8=$rMxMQ$7$?!"(BURI $B$+$i%U%!%$%kL>$X$N6/NO$J%^%C%T%s%05!G=$rDs6!$9$k(B +<dt><a href="mod_setenvif.html">mod_setenvif</a> Apache 1.3 $B0J9_(B +<dd>$B%/%i%$%"%s%H$N>pJs$r85$K4D6-JQ?t$r%;%C%H$9$k(B +<dt><a href="mod_so.html">mod_so</a> Apache 1.3 $B0J9_(B +<dd>$B<B9T;~$K%b%8%e!<%k(B (UNIX$B$G$O(B .so$B!"(BWin32 $B$G$O(B .dll) $B$rF0E*FI$_9~$_$9$k5!G=$r(B +$BDs6!$9$k(B +<dt><a href="mod_speling.html">mod_speling</a> Apache 1.3 $B0J9_(B +<dd>URL $B$N>.$5$J5-=R%_%9$r<+F0E*$K=$@5$9$k(B +<dt><a href="mod_status.html">mod_status</a> Apache 1.1 $B0J9_(B +<dd>$B%5!<%P$N2TF0>u67$rI=<($9$k(B +<dt><a href="mod_userdir.html">mod_userdir</a> +<dd>$B%f!<%6$N%[!<%`%G%#%l%/%H%j$K%"%/%;%9$9$k5!G=$rDs6!$9$k(B +<dt><a href="mod_unique_id.html">mod_unique_id</a> Apache 1.3 $B0J9_(B +<dd>$B%j%/%(%9%HKh$K!"0l0U$J%j%/%(%9%H(B ID $B$r@8@.$9$k(B +<dt><a href="mod_usertrack.html">mod_usertrack</a> Apache 1.2 $B0J9_(B +<dd>cookie $B$K$h$j%f!<%6$NDI@W$r9T$J$&(B (mod_cookies.c $B$rCV$-49$($?$b$N(B) +<dt><a href="mod_vhost_alias.html">mod_vhost_alias</a> Apache 1.3.7 $B0J9_(B +<dd>$B$?$/$5$s$N%P!<%A%c%k%[%9%H@_Dj$rF0E*$K9=@.$9$k(B +</dl> + + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + +</body> +</html> diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_dir.html.en b/usr.sbin/httpd/htdocs/manual/mod/mod_dir.html.en new file mode 100644 index 00000000000..0ca848da10e --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/mod/mod_dir.html.en @@ -0,0 +1,125 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_dir</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + + + <h1 align="CENTER">Module mod_dir</h1> + + <p>This module provides for "trailing slash" redirects and + serving directory index files.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> mod_dir.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + dir_module</p> + + <h2>Summary</h2> + The index of a directory can come from one of two sources: + + <ul> + <li>A file written by the user, typically called + <code>index.html</code>. The <a + href="#directoryindex">DirectoryIndex</a> directive sets the + name of this file. This is controlled by + <code>mod_dir</code>.</li> + + <li>Otherwise, a listing generated by the server. This is + provided by <a + href="mod_autoindex.html"><code>mod_autoindex</code></a>.</li> + </ul> + The two functions are separated so that you can completely + remove (or replace) automatic index generation should you want + to. + + <p>A "trailing slash" redirect is issued when the server + receives a request for a URL + <samp>http://servername/foo/dirname</samp> where + <samp>dirname</samp> is a directory. Directories require a + trailing slash, so <code>mod_dir</code> issues a redirect to + <samp>http://servername/foo/dirname/</samp>.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#directoryindex">DirectoryIndex</a></li> + </ul> + <hr /> + + <h2><a id="directoryindex" + name="directoryindex">DirectoryIndex</a> directive</h2> + <!--%plaintext <?INDEX {\tt DirectoryIndex} directive> --> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> DirectoryIndex + <em>local-url</em> [<em>local-url</em>] ...<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>DirectoryIndex + index.html</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> Indexes<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_dir + + <p>The DirectoryIndex directive sets the list of resources to + look for, when the client requests an index of the directory by + specifying a / at the end of the a directory name. + <em>Local-url</em> is the (%-encoded) URL of a document on the + server relative to the requested directory; it is usually the + name of a file in the directory. Several URLs may be given, in + which case the server will return the first one that it finds. + If none of the resources exist and the <code>Indexes</code> + option is set, the server will generate its own listing of the + directory.</p> + + <p>Example:</p> + + <blockquote> + <code>DirectoryIndex index.html</code> + </blockquote> + then a request for <code>http://myserver/docs/</code> would + return <code>http://myserver/docs/index.html</code> if it + exists, or would list the directory if it did not. + + <p>Note that the documents do not need to be relative to the + directory;</p> + + <blockquote> + <code>DirectoryIndex index.html index.txt + /cgi-bin/index.pl</code> + </blockquote> + would cause the CGI script <code>/cgi-bin/index.pl</code> to be + executed if neither <code>index.html</code> or + <code>index.txt</code> existed in a directory. + + <p> <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + + </p> + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_dir.html.html b/usr.sbin/httpd/htdocs/manual/mod/mod_dir.html.html new file mode 100644 index 00000000000..6ae81e435e2 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/mod/mod_dir.html.html @@ -0,0 +1,129 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_dir</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + + + <h1 align="CENTER">Module mod_dir</h1> + + <p>This module provides for "trailing slash" redirects and + serving directory index files.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> mod_dir.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + dir_module</p> + + <h2>Summary</h2> + The index of a directory can come from one of two sources: + + <ul> + <li>A file written by the user, typically called + <code>index.html</code>. The <a + href="#directoryindex">DirectoryIndex</a> directive sets the + name of this file. This is controlled by + <code>mod_dir</code>.</li> + + <li>Otherwise, a listing generated by the server. This is + provided by <a + href="mod_autoindex.html"><code>mod_autoindex</code></a>.</li> + </ul> + The two functions are separated so that you can completely + remove (or replace) automatic index generation should you want + to. + + <p>A "trailing slash" redirect is issued when the server + receives a request for a URL + <samp>http://servername/foo/dirname</samp> where + <samp>dirname</samp> is a directory. Directories require a + trailing slash, so <code>mod_dir</code> issues a redirect to + <samp>http://servername/foo/dirname/</samp>.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#directoryindex">DirectoryIndex</a></li> + </ul> + <hr /> + + <h2><a id="directoryindex" + name="directoryindex">DirectoryIndex</a> directive</h2> + <!--%plaintext <?INDEX {\tt DirectoryIndex} directive> --> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> DirectoryIndex + <em>local-url</em> [<em>local-url</em>] ...<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>DirectoryIndex + index.html</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> Indexes<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_dir + + <p>The DirectoryIndex directive sets the list of resources to + look for, when the client requests an index of the directory by + specifying a / at the end of the a directory name. + <em>Local-url</em> is the (%-encoded) URL of a document on the + server relative to the requested directory; it is usually the + name of a file in the directory. Several URLs may be given, in + which case the server will return the first one that it finds. + If none of the resources exist and the <code>Indexes</code> + option is set, the server will generate its own listing of the + directory.</p> + + <p>Example:</p> + + <blockquote> + <code>DirectoryIndex index.html</code> + </blockquote> + then a request for <code>http://myserver/docs/</code> would + return <code>http://myserver/docs/index.html</code> if it + exists, or would list the directory if it did not. + + <p>Note that the documents do not need to be relative to the + directory;</p> + + <blockquote> + <code>DirectoryIndex index.html index.txt + /cgi-bin/index.pl</code> + </blockquote> + would cause the CGI script <code>/cgi-bin/index.pl</code> to be + executed if neither <code>index.html</code> or + <code>index.txt</code> existed in a directory. + + <p> <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + + </p> + </body> +</html> + + + diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_dir.html.ja.jis b/usr.sbin/httpd/htdocs/manual/mod/mod_dir.html.ja.jis new file mode 100644 index 00000000000..874d36c2203 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/mod/mod_dir.html.ja.jis @@ -0,0 +1,132 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<title>Apache module mod_dir</title> +</head> +<!-- English revision: 1.15 --> +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> +<body + bgcolor="#FFFFFF" + text="#000000" + link="#0000FF" + vlink="#000080" + alink="#FF0000" +> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + +<h1 align="CENTER">mod_dir $B%b%8%e!<%k(B</h1> + +<p>$B$3$N%b%8%e!<%k$O!"%9%i%C%7%e$G=*$o$k(B URL $B$X$N%j%/%(%9%H$,$"$C$?:]$K!"(B +$B%G%#%l%/%H%j%$%s%G%C%/%9%U%!%$%k$X%j%@%$%l%/%H$7$FDs6!$7$^$9!#(B</p> + +<p><a +href="module-dict.html#Status" +rel="Help" +><strong>$B%9%F!<%?%9(B:</strong></a> Base +<br> +<a +href="module-dict.html#SourceFile" +rel="Help" +><strong>$B%=!<%9%U%!%$%k(B:</strong></a> mod_dir.c +<br> +<a +href="module-dict.html#ModuleIdentifier" +rel="Help" +><strong>$B%b%8%e!<%k<1JL;R(B:</strong></a> dir_module +</p> + +<h2>$B35MW(B</h2> +<p> +$B%G%#%l%/%H%j%$%s%G%C%/%9$O!"<!$NFs$D$NFb$I$A$i$+$,MxMQ$5$l$^$9!#(B +<ul> +<li>$B0l$DL\$O!"%f!<%6$,:n@.$7$?%U%!%$%k$rMQ$$$k$b$N$G!"DL>o(B <code>index.html</code> +$B$H$$$&%U%!%$%kL>$r;H$$$^$9!#$3$N%U%!%$%kL>$O!"(B<a href="#directoryindex">DirectoryIndex</a> $B%G%#%l%/%F%#%V$G(B +$B;XDj$9$k$3$H$,$G$-$^$9!#$3$N5!G=$O(B <code>mod_dir</code> $B%b%8%e!<%k$GDs6!$5$l$^$9!#(B +<li>$B$b$&0l$D$NJ}K!$O!"%5!<%P$K$h$C$F<+F0E*$K@8@.$5$l$k%G%#%l%/%H%j%j%9%H$rMQ$$$k>l9g$G$9!#(B +$B$3$N5!G=$O!"(B<a href="mod_autoindex.html"><code>mod_autoindex</code></a> $B%b%8%e!<%k$K$h$jDs6!$5$l$^$9!#(B +</ul> +$B<+F0E*$J%$%s%G%C%/%9@8@.5!G=$r:o=|(B ($B$b$7$/$O8r49(B) $B$G$-$k$h$&$K!"$3$NFs$D$N5!G=$OJ,N%$5$l$F$$$^$9!#(B +</p> +<p> +$B$J$*(B <samp>http://servername/foo/dirname</samp> $B$H$$$&(B URL $B$X$N%j%/%(%9%H$,$"$C$?:]$K!"(B +<samp>dirname</samp> $B$H$$$&%G%#%l%/%H%j$,$"$l$P!"!V:G8e$K%9%i%C%7%e$r$D$1$?7A!W$N(B URL $B$X$N%j%@%$%l%/%H$rAw=P$7$^$9!#(B +$B%G%#%l%/%H%j$X$N%"%/%;%9$O%9%i%C%7%e$G=*$o$C$F$$$kI,MW$,$"$j!"(B<code>mod_dir</code> $B$O!"(B +<samp>http://servername/foo/dirname/</samp> $B$X$N%j%@%$%l%/%H$rAw=P$9$k$3$H$K$J$j$^$9!#(B +</p> + +<h2>$B%G%#%l%/%F%#%V(B</h2> + +<menu> +<li><a href="#directoryindex">DirectoryIndex</a> +</menu> +<hr> + +<h2><a name="directoryindex">DirectoryIndex</a> $B%G%#%l%/%F%#%V(B</h2> +<!--%plaintext <?INDEX {\tt DirectoryIndex} directive> --> +<p> +<a + href="directive-dict.html#Syntax" + rel="Help" +><strong>$B9=J8(B:</strong></a> DirectoryIndex <em>local-url</em> + [<em>local-url</em>] ...<br> +<a + href="directive-dict.html#Default" + rel="Help" +><strong>$B%G%U%)%k%H(B:</strong></a> <code>DirectoryIndex index.html</code><br> +<a + href="directive-dict.html#Context" + rel="Help" +><strong>$B%3%s%F%-%9%H(B:</strong></a> server config, virtual host, directory, .htaccess<br> +<a + href="directive-dict.html#Override" + rel="Help" +><strong>$B>e=q$-(B:</strong></a> Indexes<br> +<a + href="directive-dict.html#Status" + rel="Help" +><strong>$B%9%F!<%?%9(B:</strong></a> Base<br> +<a + href="directive-dict.html#Module" + rel="Help" +><strong>$B%b%8%e!<%k(B:</strong></a> mod_dir +</p> +<p> +$B%/%i%$%"%s%H$,!"%G%#%l%/%H%jL>$N:G8e$K!V(B/$B!W$r;XDj$7$F%G%#%l%/%H%j%$%s%G%C%/%9$rMW5a$9$k>l9g$KC5$9%j%=!<%9$N%j%9%H$r(B +DirectoryIndex $B%G%#%l%/%F%#%V$G@_Dj$7$^$9!#(B +<em>Local-url</em> $B$O!"%j%/%(%9%H$5$l$?%G%#%l%/%H%j$KBP1~$9$k!"%5!<%P>e$N%I%-%e%a%s%H$N(B (% $B%(%s%3!<%I$5$l$?(B) URL $B$G!"(B +$BIaDL$O%G%#%l%/%H%jCf$N%U%!%$%k$NL>A0$G$9!#(B +$BJ#?t$N(B URL $B$,@_Dj$5$l$?>l9g$K$O!":G=i$K8+$D$+$C$?$b$N$rJV$7$^$9!#(B +$B$=$l$i$,8+$D$+$i$:!"(B<code>Indexes</code> $B%*%W%7%g%s$,%;%C%H$5$l$F$$$k>l9g!"%G%#%l%/%H%j$N%j%9%H$r(B +$B@8@.$7$^$9!#(B +</p> +<p> +$BNc(B: +<blockquote><code> +DirectoryIndex index.html +</code></blockquote> +<code>http://myserver/docs/</code> $B$X$N%"%/%;%9$,$"$j!"(B<code>http://myserver/docs/index.html</code> +$B$,B8:_$9$l$P!"$3$N(B URL $B$,JV$5$l$^$9!#(B +$B$b$7B8:_$7$J$1$l$P!"%G%#%l%/%H%j$N%j%9%H$,JV$5$l$^$9!#(B +</p> + +<p> +$BCm(B: $B%I%-%e%a%s%H$OF1$8%G%#%l%/%H%jFb$KB8:_$9$kI,MW$"$j$^$;$s!#(B +<blockquote><code> +DirectoryIndex index.html index.txt /cgi-bin/index.pl</code></blockquote> +$B$H$7$?>l9g!"(B<code>index.html</code> $B$H(B <code>index.txt</code> $B$N$I$A$i$b%G%#%l%/%H%jFb$GB8:_$7$J$$>l9g!"(B +CGI $B%9%/%j%W%H(B <code>/cgi-bin/index.pl</code> $B$,<B9T$5$l$^$9!#(B +</p> + + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + +</body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_env.html.en b/usr.sbin/httpd/htdocs/manual/mod/mod_env.html.en new file mode 100644 index 00000000000..4888d9af894 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/mod/mod_env.html.en @@ -0,0 +1,142 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_env</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + + + <h1 align="CENTER">Apache module mod_env</h1> + + <p>This module provides for modifying the environment which is + passed to CGI scripts and SSI pages.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> mod_env.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + env_module<br /> + <a href="module-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in + Apache 1.1 and later.</p> + + <h2>Summary</h2> + + <p>This module allows for control of the environment that will + be provided to CGI scripts and SSI pages. Environment variables + may be passed from the shell which invoked the httpd process. + Alternatively, environment variables may be set or unset within + the configuration process.</p> + + <p>For additional information, we provide a document on <a + href="../env.html">Environment Variables in Apache</a>.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#passenv">PassEnv</a></li> + + <li><a href="#setenv">SetEnv</a></li> + + <li><a href="#unsetenv">UnsetEnv</a></li> + </ul> + <hr /> + + <h2><a id="passenv" name="passenv">PassEnv</a> directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> PassEnv + <em>env-variable</em> [<em>env-variable</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_env<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> PassEnv is only + available in Apache 1.1 and later. Directory and .htaccess context + is available in Apache 1.3.7 and later. + + <p>Specifies one or more environment variables to pass to CGI + scripts and SSI pages from the environment of the shell which + invoked the httpd process. Example:</p> +<pre> + PassEnv LD_LIBRARY_PATH +</pre> + <hr /> + + <h2><a id="setenv" name="setenv">SetEnv</a> directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> SetEnv <em>env-variable + value</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_env<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> SetEnv is only + available in Apache 1.1 and later. Directory and .htaccess context + is available in Apache 1.3.7 and later. + + <p>Sets an environment variable, which is then passed on to CGI + scripts and SSI pages. Example:</p> +<pre> + SetEnv SPECIAL_PATH /foo/bin +</pre> + <hr /> + + <h2><a id="unsetenv" name="unsetenv">UnsetEnv</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> UnsetEnv + <em>env-variable</em> [<em>env-variable</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_env<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> UnsetEnv is only + available in Apache 1.1 and later. Directory and .htaccess context + is available in Apache 1.3.7 and later. + + <p>Removes one or more environment variables from those passed + on to CGI scripts and SSI pages. Example:</p> +<pre> + UnsetEnv LD_LIBRARY_PATH +</pre> + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_env.html.html b/usr.sbin/httpd/htdocs/manual/mod/mod_env.html.html new file mode 100644 index 00000000000..9e03e758c31 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/mod/mod_env.html.html @@ -0,0 +1,146 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_env</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + + + <h1 align="CENTER">Apache module mod_env</h1> + + <p>This module provides for modifying the environment which is + passed to CGI scripts and SSI pages.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> mod_env.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + env_module<br /> + <a href="module-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in + Apache 1.1 and later.</p> + + <h2>Summary</h2> + + <p>This module allows for control of the environment that will + be provided to CGI scripts and SSI pages. Environment variables + may be passed from the shell which invoked the httpd process. + Alternatively, environment variables may be set or unset within + the configuration process.</p> + + <p>For additional information, we provide a document on <a + href="../env.html">Environment Variables in Apache</a>.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#passenv">PassEnv</a></li> + + <li><a href="#setenv">SetEnv</a></li> + + <li><a href="#unsetenv">UnsetEnv</a></li> + </ul> + <hr /> + + <h2><a id="passenv" name="passenv">PassEnv</a> directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> PassEnv + <em>env-variable</em> [<em>env-variable</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_env<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> PassEnv is only + available in Apache 1.1 and later. Directory and .htaccess context + is available in Apache 1.3.7 and later. + + <p>Specifies one or more environment variables to pass to CGI + scripts and SSI pages from the environment of the shell which + invoked the httpd process. Example:</p> +<pre> + PassEnv LD_LIBRARY_PATH +</pre> + <hr /> + + <h2><a id="setenv" name="setenv">SetEnv</a> directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> SetEnv <em>env-variable + value</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_env<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> SetEnv is only + available in Apache 1.1 and later. Directory and .htaccess context + is available in Apache 1.3.7 and later. + + <p>Sets an environment variable, which is then passed on to CGI + scripts and SSI pages. Example:</p> +<pre> + SetEnv SPECIAL_PATH /foo/bin +</pre> + <hr /> + + <h2><a id="unsetenv" name="unsetenv">UnsetEnv</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> UnsetEnv + <em>env-variable</em> [<em>env-variable</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_env<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> UnsetEnv is only + available in Apache 1.1 and later. Directory and .htaccess context + is available in Apache 1.3.7 and later. + + <p>Removes one or more environment variables from those passed + on to CGI scripts and SSI pages. Example:</p> +<pre> + UnsetEnv LD_LIBRARY_PATH +</pre> + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + + </body> +</html> + + + diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_env.html.ja.jis b/usr.sbin/httpd/htdocs/manual/mod/mod_env.html.ja.jis new file mode 100644 index 00000000000..501fa662d56 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/mod/mod_env.html.ja.jis @@ -0,0 +1,172 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<title>Apache module mod_env</title> +</head> +<!-- English revision: 1.17 --> + +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> +<body + bgcolor="#FFFFFF" + text="#000000" + link="#0000FF" + vlink="#000080" + alink="#FF0000" +> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + +<h1 align="CENTER">mod_env $B%b%8%e!<%k(B</h1> + +<p>$B$3$N%b%8%e!<%k$O(B CGI $B%9%/%j%W%H5Z$S(B SSI $B%Z!<%8$KEO$5$l$k4D6-JQ?t$rJQ99$9$k5!G=$r(B +$BDs6!$7$^$9!#(B</p> + +<p><a +href="module-dict.html#Status" +rel="Help" +><strong>$B%9%F!<%?%9(B:</strong></a> Base +<br> +<a +href="module-dict.html#SourceFile" +rel="Help" +><strong>$B%=!<%9%U%!%$%k(B:</strong></a> mod_env.c +<br> +<a +href="module-dict.html#ModuleIdentifier" +rel="Help" +><strong>$B%b%8%e!<%k<1JL;R(B:</strong></a> env_module +<br> +<a +href="module-dict.html#Compatibility" +rel="Help" +><strong>$B8_49@-(B:</strong></a> Apache 1.1 $B0J9_$G;HMQ2DG=!#(B +</p> + +<h2>$B35MW(B</h2> + +<p>$B$3$N%b%8%e!<%k$K$h$j(B CGI $B%9%/%j%W%H$H(B SSI $B%Z!<%8$KE,MQ$5$l$k4D6-JQ?t$r(B +$B@)8f$9$k$3$H$,$G$-$k$h$&$K$J$j$^$9!#4D6-JQ?t$O(B httpd $B%W%m%;%9$r5/F0$7$?(B +$B%7%'%k$+$iEO$5$l$^$9!#$^$?!"@_Dj%U%!%$%k$G4D6-JQ?t$r@_Dj$7$?$j!"(B +$B:o=|$7$?$j$9$k$3$H$,$G$-$^$9!#(B</p> + +<p> +$B>\:Y$O!"(B<a href="../env.html">Apache $B$N4D6-JQ?t(B</a>$B$r;2>H$7$F$/$@$5$$!#(B</p> + +<h2>$B%G%#%l%/%F%#%V(B</h2> +<ul> +<li><a href="#passenv">PassEnv</a> +<li><a href="#setenv">SetEnv</a> +<li><a href="#unsetenv">UnsetEnv</a> +</ul> + +<hr> + +<h2><a name="passenv">PassEnv</a> $B%G%#%l%/%F%#%V(B</h2> +<a + href="directive-dict.html#Syntax" + rel="Help" +><strong>$B9=J8(B:</strong></a> PassEnv <em>variable</em> + [<em>variable</em>] ...<br> +<a + href="directive-dict.html#Context" + rel="Help" +><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H(B<br> +<a + href="directive-dict.html#Status" + rel="Help" +><strong>$B%9%F!<%?%9(B:</strong></a> Base<br> +<a + href="directive-dict.html#Module" + rel="Help" +><strong>$B%b%8%e!<%k(B:</strong></a> mod_env<br> +<a + href="directive-dict.html#Compatibility" + rel="Help" +><strong>$B8_49@-(B:</strong></a> PassEnv $B$O(B Apache 1.1 $B0J9_$G$N$_;HMQ2DG=!#(B<br> + +<p> +httpd $B%W%m%;%9$r5/F0$7$?%7%'%k$N4D6-$+$i(B CGI $B%9%/%j%W%H$H(B SSI $B%Z!<%8$K(B +$BEO$94D6-JQ?t$r0l$D0J>e;XDj$7$^$9!#Nc(B: +</p> + +<pre> + PassEnv LD_LIBRARY_PATH +</pre> + +<hr> + +<h2><a name="setenv">SetEnv</a> $B%G%#%l%/%F%#%V(B</h2> +<a + href="directive-dict.html#Syntax" + rel="Help" +><strong>$B9=J8(B:</strong></a> SetEnv <em>variable value</em><br> +<a + href="directive-dict.html#Context" + rel="Help" +><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H(B<br> +<a + href="directive-dict.html#Status" + rel="Help" +><strong>$B%9%F!<%?%9(B:</strong></a> Base<br> +<a + href="directive-dict.html#Module" + rel="Help" +><strong>$B%b%8%e!<%k(B:</strong></a> mod_env<br> +<a + href="directive-dict.html#Compatibility" + rel="Help" +><strong>$B8_49@-(B:</strong></a> SetEnv $B$O(B Apache 1.1 $B0J9_$G$N$_;HMQ2DG=!#(B<br> + +<p> +$B4D6-JQ?t$r@_Dj$7!"$=$l$r(B CGI $B%9%/%j%W%H$H(B SSI $B%Z!<%8$KEO$9$h$&$K$7$^$9!#(B +$BNc(B:</p> + +<pre> + SetEnv SPECIAL_PATH /foo/bin +</pre> + +<hr> + +<h2><a name="unsetenv">UnsetEnv</a> $B%G%#%l%/%F%#%V(B</h2> +<a + href="directive-dict.html#Syntax" + rel="Help" +><strong>$B9=J8(B:</strong></a> UnsetEnv <em>variable</em> + [<em>variable</em>] ...<br> +<a + href="directive-dict.html#Context" + rel="Help" +><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k(B<br> +<a + href="directive-dict.html#Status" + rel="Help" +><strong>$B%9%F!<%?%9(B:</strong></a> Base<br> +<a + href="directive-dict.html#Module" + rel="Help" +><strong>$B%b%8%e!<%k(B:</strong></a> mod_env<br> +<a + href="directive-dict.html#Compatibility" + rel="Help" +><strong>$B8_49@-(B:</strong></a> UnsetEnv $B$O(B Apache 1.1 $B0J9_$G$N$_;HMQ2DG=!#(B<br> + +<p> +CGI $B%9%/%j%W%H$H(B SSI $B%Z!<%8$KEO$5$l$k4D6-JQ?t$+$i;XDj$5$l$?(B +$B4D6-JQ?t$r<h$j=|$-$^$9!#Nc(B:</p> + +<pre> + UnsetEnv LD_LIBRARY_PATH +</pre> + + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + +</body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_mime.html.en b/usr.sbin/httpd/htdocs/manual/mod/mod_mime.html.en new file mode 100644 index 00000000000..6f2beae085e --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/mod/mod_mime.html.en @@ -0,0 +1,656 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_mime</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + + + <h1 align="CENTER">Module mod_mime</h1> + + <p>This module provides for determining the types of files from + the filename and for association of handlers with files.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> mod_mime.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + mime_module</p> + + <h2>Summary</h2> + This module is used to determine various bits of "meta + information" about documents. This information relates to the + content of the document and is returned to the browser or used + in content-negotiation within the server. In addition, a + "handler" can be set for a document, which determines how the + document will be processed within the server. + + <p>The directives <a href="#addcharset">AddCharset</a>, <a + href="#addencoding">AddEncoding</a>, <a + href="#addhandler">AddHandler</a>, <a + href="#addlanguage">AddLanguage</a> and <a + href="#addtype">AddType</a> are all used to map file extensions + onto the meta-information for that file. Respectively they set + the character set, content-encoding, handler, content-language, + and MIME-type (content-type) of documents. The directive <a + href="#typesconfig">TypesConfig</a> is used to specify a file + which also maps extensions onto MIME types. The directives <a + href="#forcetype">ForceType</a> and <a + href="#sethandler">SetHandler</a> are used to associated all + the files in a given location (<em>e.g.</em>, a particular + directory) onto a particular MIME type or handler.</p> + + <p>Note that changing the type or encoding of a file does not + change the value of the <code>Last-Modified</code> header. + Thus, previously cached copies may still be used by a client or + proxy, with the previous headers.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#addcharset">AddCharset</a></li> + + <li><a href="#addencoding">AddEncoding</a></li> + + <li><a href="#addhandler">AddHandler</a></li> + + <li><a href="#addlanguage">AddLanguage</a></li> + + <li><a href="#addtype">AddType</a></li> + + <li><a href="#defaultlanguage">DefaultLanguage</a></li> + + <li><a href="#forcetype">ForceType</a></li> + + <li><a href="#removeencoding">RemoveEncoding</a></li> + + <li><a href="#removehandler">RemoveHandler</a></li> + + <li><a href="#removetype">RemoveType</a></li> + + <li><a href="#sethandler">SetHandler</a></li> + + <li><a href="#typesconfig">TypesConfig</a></li> + </ul> + + <p>See also: <a + href="mod_mime_magic.html#mimemagicfile">MimeMagicFile</a>.</p> + + <h2><a id="multipleext" name="multipleext">Files with Multiple + Extensions</a></h2> + Files can have more than one extension, and the order of the + extensions is <em>normally</em> irrelevant. For example, if the + file <code>welcome.html.fr</code> maps onto content type + text/html and language French then the file + <code>welcome.fr.html</code> will map onto exactly the same + information. The only exception to this is if an extension is + given which Apache does not know how to handle. In this case it + will "forget" about any information it obtained from extensions + to the left of the unknown extension. So, for example, if the + extensions fr and html are mapped to the appropriate language + and type but extension xxx is not assigned to anything, then + the file <code>welcome.fr.xxx.html</code> will be associated + with content-type text/html but <em>no</em> language. + + <p>If more than one extension is given which maps onto the same + type of meta-information, then the one to the right will be + used. For example, if ".gif" maps to the MIME-type image/gif + and ".html" maps to the MIME-type text/html, then the file + <code>welcome.gif.html</code> will be associated with the + MIME-type "text/html".</p> + + <p>Care should be taken when a file with multiple extensions + gets associated with both a MIME-type and a handler. This will + usually result in the request being by the module associated + with the handler. For example, if the <code>.imap</code> + extension is mapped to the handler "imap-file" (from mod_imap) + and the <code>.html</code> extension is mapped to the MIME-type + "text/html", then the file <code>world.imap.html</code> will be + associated with both the "imap-file" handler and "text/html" + MIME-type. When it is processed, the "imap-file" handler will + be used, and so it will be treated as a mod_imap imagemap + file.</p> + <hr /> + + <h2><a id="addcharset" name="addcharset">AddCharset</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AddCharset <em>charset + extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime <br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> AddCharset is + only available in Apache 1.3.10 and later + + <p>The AddCharset directive maps the given filename extensions + to the specified content charset. <i>charset</i> is the MIME + charset parameter of filenames containing <i>extension</i>. + This mapping is added to any already in force, overriding any + mappings that already exist for the same <i>extension</i>.</p> + + <p>Example:</p> +<pre> + AddLanguage ja .ja + AddCharset EUC-JP .euc + AddCharset ISO-2022-JP .jis + AddCharset SHIFT_JIS .sjis +</pre> + + <p>Then the document <code>xxxx.ja.jis</code> will be treated + as being a Japanese document whose charset is ISO-2022-JP (as + will the document <code>xxxx.jis.ja</code>). The AddCharset + directive is useful for both to inform the client about the + character encoding of the document so that the document can be + interpreted and displayed appropriately, and for <a + href="../content-negotiation.html">content negotiation</a>, + where the server returns one from several documents based on + the client's charset preference.</p> + + <p>The <em>extension</em> argument is case-insensitive, and can + be specified with or without a leading dot.</p> + + <p><strong>See also</strong>: <a + href="mod_negotiation.html">mod_negotiation</a></p> + <hr /> + + <h2><a id="addencoding" name="addencoding">AddEncoding</a> + directive</h2> + <!--%plaintext <?INDEX {\tt AddEncoding} directive> --> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AddEncoding + <em>MIME-enc extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime + + <p>The AddEncoding directive maps the given filename extensions + to the specified encoding type. <em>MIME-enc</em> is the MIME + encoding to use for documents containing the + <em>extension</em>. This mapping is added to any already in + force, overriding any mappings that already exist for the same + <em>extension</em>. Example:</p> + + <blockquote> + <code>AddEncoding x-gzip .gz<br /> + AddEncoding x-compress .Z</code> + </blockquote> + This will cause filenames containing the .gz extension to be + marked as encoded using the x-gzip encoding, and filenames + containing the .Z extension to be marked as encoded with + x-compress. + + <p>Old clients expect <code>x-gzip</code> and + <code>x-compress</code>, however the standard dictates that + they're equivalent to <code>gzip</code> and + <code>compress</code> respectively. Apache does content + encoding comparisons by ignoring any leading <code>x-</code>. + When responding with an encoding Apache will use whatever form + (<em>i.e.</em>, <code>x-foo</code> or <code>foo</code>) the + client requested. If the client didn't specifically request a + particular form Apache will use the form given by the + <code>AddEncoding</code> directive. To make this long story + short, you should always use <code>x-gzip</code> and + <code>x-compress</code> for these two specific encodings. More + recent encodings, such as <code>deflate</code> should be + specified without the <code>x-</code>.</p> + + <p>The <em>extension</em> argument is case-insensitive, and can + be specified with or without a leading dot.</p> + + <p><strong>See also</strong>: <a href="#multipleext">Files with + multiple extensions</a></p> + <hr /> + + <h2><a id="addhandler" name="addhandler">AddHandler</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AddHandler + <em>handler-name extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> AddHandler is + only available in Apache 1.1 and later + + <p>AddHandler maps the filename extensions <em>extension</em> + to the <a href="../handler.html">handler</a> + <em>handler-name</em>. This mapping is added to any already in + force, overriding any mappings that already exist for the same + <em>extension</em>. For example, to activate CGI scripts with + the file extension "<code>.cgi</code>", you might use:</p> +<pre> + AddHandler cgi-script .cgi +</pre> + + <p>Once that has been put into your srm.conf or httpd.conf + file, any file containing the "<code>.cgi</code>" extension + will be treated as a CGI program.</p> + + <p>The <em>extension</em> argument is case-insensitive, and can + be specified with or without a leading dot.</p> + + <p><strong>See also</strong>: <a href="#multipleext">Files with + multiple extensions</a></p> + <hr /> + + <h2><a id="addlanguage" name="addlanguage">AddLanguage</a> + directive</h2> + <!--%plaintext <?INDEX {\tt AddLanguage} directive> --> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AddLanguage + <em>MIME-lang extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime + + <p>The AddLanguage directive maps the given filename extension + to the specified content language. <em>MIME-lang</em> is the + MIME language of filenames containing <em>extension</em>. This + mapping is added to any already in force, overriding any + mappings that already exist for the same + <em>extension</em>.</p> + + <p>Example:</p> + + <blockquote> + <code>AddEncoding x-compress .Z<br /> + AddLanguage en .en<br /> + AddLanguage fr .fr<br /> + </code> + </blockquote> + + <p>Then the document <code>xxxx.en.Z</code> will be treated as + being a compressed English document (as will the document + <code>xxxx.Z.en</code>). Although the content language is + reported to the client, the browser is unlikely to use this + information. The AddLanguage directive is more useful for <a + href="../content-negotiation.html">content negotiation</a>, + where the server returns one from several documents based on + the client's language preference.</p> + + <p>If multiple language assignments are made for the same + extension, the last one encountered is the one that is used. + That is, for the case of:</p> +<pre> + AddLanguage en .en + AddLanguage en-uk .en + AddLanguage en-us .en +</pre> + + <p>documents with the extension "<code>.en</code>" would be + treated as being "<code>en-us</code>".</p> + + <p>The <em>extension</em> argument is case-insensitive, and can + be specified with or without a leading dot.</p> + + <p><strong>See also</strong>: <a href="#multipleext">Files with + multiple extensions</a><br /> + <strong>See also</strong>: <a + href="./mod_negotiation.html">mod_negotiation</a></p> + <hr /> + + <h2><a id="addtype" name="addtype">AddType</a> directive</h2> + <!--%plaintext <?INDEX {\tt AddType} directive> --> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AddType <em>MIME-type + extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime + + <p>The AddType directive maps the given filename extensions + onto the specified content type. <em>MIME-type</em> is the MIME + type to use for filenames containing <em>extension</em>. This + mapping is added to any already in force, overriding any + mappings that already exist for the same <em>extension</em>. + This directive can be used to add mappings not listed in the + MIME types file (see the <code><a + href="#typesconfig">TypesConfig</a></code> directive). + Example:</p> + + <blockquote> + <code>AddType image/gif .gif</code> + </blockquote> + It is recommended that new MIME types be added using the + AddType directive rather than changing the <a + href="#typesconfig">TypesConfig</a> file. + + <p>Note that, unlike the NCSA httpd, this directive cannot be + used to set the type of particular files.</p> + + <p>The <em>extension</em> argument is case-insensitive, and can + be specified with or without a leading dot.</p> + + <p><strong>See also</strong>: <a href="#multipleext">Files with + multiple extensions</a></p> + <hr /> + + <h2><a id="defaultlanguage" + name="defaultlanguage">DefaultLanguage</a> directive</h2> + <!--%plaintext <?INDEX {\tt DefaultLanguage} directive> --> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> DefaultLanguage + <em>MIME-lang</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> DefaultLanguage + is only available in Apache 1.3.4 and later. + + <p>The DefaultLanguage directive tells Apache that all files in + the directive's scope (<em>e.g.</em>, all files covered by the + current <code><Directory></code> container) that don't + have an explicit language extension (such as <samp>.fr</samp> + or <samp>.de</samp> as configured by <samp>AddLanguage</samp>) + should be considered to be in the specified <em>MIME-lang</em> + language. This allows entire directories to be marked as + containing Dutch content, for instance, without having to + rename each file. Note that unlike using extensions to specify + languages, <samp>DefaultLanguage</samp> can only specify a + single language.</p> + + <p>If no <samp>DefaultLanguage</samp> directive is in force, + and a file does not have any language extensions as configured + by <samp>AddLanguage</samp>, then that file will be considered + to have no language attribute.</p> + + <p><strong>See also</strong>: <a + href="./mod_negotiation.html">mod_negotiation</a><br /> + <strong>See also</strong>: <a href="#multipleext">Files with + multiple extensions</a></p> + <hr /> + + <h2><a id="forcetype" name="forcetype">ForceType</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ForceType + <em>media-type</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ForceType is + only available in Apache 1.1 and later. + + <p>When placed into an <code>.htaccess</code> file or a + <code><Directory></code> or <code><Location></code> + section, this directive forces all matching files to be served + as the content type given by <em>media type</em>. For example, + if you had a directory full of GIF files, but did not want to + label them all with ".gif", you might want to use:</p> +<pre> + ForceType image/gif +</pre> + + <p>Note that this will override any filename extensions that + might determine the media type.</p> + <hr /> + + <h2><a id="removeencoding" + name="removeencoding">RemoveEncoding</a> directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RemoveEncoding + <em>extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> RemoveEncoding + is only available in Apache 1.3.13 and later. + + <p>The <samp>RemoveEncoding</samp> directive removes any + encoding associations for files with the given extensions. This + allows <code>.htaccess</code> files in subdirectories to undo + any associations inherited from parent directories or the + server config files. An example of its use might be:</p> + + <dl> + <dt><code>/foo/.htaccess:</code></dt> + + <dd><code>AddEncoding x-gzip .gz</code><br /> + <code>AddType text/plain .asc</code><br /> + <code><Files *.gz.asc></code><br /> + <code> RemoveEncoding + .gz</code><br /> + <code></Files></code></dd> + </dl> + + <p>This will cause <code>foo.gz</code> to mark as being encoded + with the gzip method, but <code>foo.gz.asc</code> as an + unencoded plaintext file.</p> + + <p><b>Note:</b>RemoveEncoding directives are processed + <i>after</i> any AddEncoding directives, so it is possible they + may undo the effects of the latter if both occur within the + same directory configuration.</p> + + <p>The <em>extension</em> argument is case-insensitive, and can + be specified with or without a leading dot.</p> + <hr /> + + <h2><a id="removehandler" + name="removehandler">RemoveHandler</a> directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RemoveHandler + <em>extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> RemoveHandler is + only available in Apache 1.3.4 and later. + + <p>The <samp>RemoveHandler</samp> directive removes any handler + associations for files with the given extensions. This allows + <code>.htaccess</code> files in subdirectories to undo any + associations inherited from parent directories or the server + config files. An example of its use might be:</p> + + <dl> + <dt><code>/foo/.htaccess:</code></dt> + + <dd><code>AddHandler server-parsed .html</code></dd> + + <dt><code>/foo/bar/.htaccess:</code></dt> + + <dd><code>RemoveHandler .html</code></dd> + </dl> + + <p>This has the effect of returning <samp>.html</samp> files in + the <samp>/foo/bar</samp> directory to being treated as normal + files, rather than as candidates for parsing (see the <a + href="mod_include.html"><samp>mod_include</samp></a> + module).</p> + + <p>The <em>extension</em> argument is case-insensitive, and can + be specified with or without a leading dot.</p> + <hr /> + + <h2><a id="removetype" name="removetype">RemoveType</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RemoveType + <em>extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> RemoveType is + only available in Apache 1.3.13 and later. + + <p>The <samp>RemoveType</samp> directive removes any MIME type + associations for files with the given extensions. This allows + <code>.htaccess</code> files in subdirectories to undo any + associations inherited from parent directories or the server + config files. An example of its use might be:</p> + + <dl> + <dt><code>/foo/.htaccess:</code></dt> + + <dd><code>RemoveType .cgi</code></dd> + </dl> + + <p>This will remove any special handling of <code>.cgi</code> + files in the <code>/foo/</code> directory and any beneath it, + causing the files to be treated as being of the <a + href="core.html#defaulttype">default type</a>.</p> + + <p><b>Note:</b><code>RemoveType</code> directives are processed + <i>after</i> any <code>AddType</code> directives, so it is + possible they may undo the effects of the latter if both occur + within the same directory configuration.</p> + + <p>The <em>extension</em> argument is case-insensitive, and can + be specified with or without a leading dot.</p> + <hr /> + + <h2><a id="sethandler" name="sethandler">SetHandler</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> SetHandler + <em>handler-name</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> SetHandler is + only available in Apache 1.1 and later. + + <p>When placed into an <code>.htaccess</code> file or a + <code><Directory></code> or <code><Location></code> + section, this directive forces all matching files to be parsed + through the <a href="../handler.html">handler</a> given by + <em>handler-name</em>. For example, if you had a directory you + wanted to be parsed entirely as imagemap rule files, regardless + of extension, you might put the following into an + <code>.htaccess</code> file in that directory:</p> +<pre> + SetHandler imap-file +</pre> + + <p>Another example: if you wanted to have the server display a + status report whenever a URL of + <code>http://servername/status</code> was called, you might put + the following into access.conf:</p> +<pre> + <Location /status> + SetHandler server-status + </Location> +</pre> + <hr /> + + <h2><a id="typesconfig" name="typesconfig">TypesConfig</a> + directive</h2> + <!--%plaintext <?INDEX {\tt TypesConfig} directive> --> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> TypesConfig + <em>file-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>TypesConfig + conf/mime.types</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime + + <p>The TypesConfig directive sets the location of the MIME + types configuration file. <em>Filename</em> is relative to the + <a href="core.html#serverroot">ServerRoot</a>. This file sets + the default list of mappings from filename extensions to + content types; changing this file is not recommended. Use the + <a href="#addtype">AddType</a> directive instead. The file + contains lines in the format of the arguments to an AddType + command:</p> + + <blockquote> + <em>MIME-type extension extension ...</em> + </blockquote> + The extensions are lower-cased. Blank lines, and lines + beginning with a hash character (`#') are ignored. + + <p> <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + + </p> + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_mime.html.html b/usr.sbin/httpd/htdocs/manual/mod/mod_mime.html.html new file mode 100644 index 00000000000..4abc69e3db0 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/mod/mod_mime.html.html @@ -0,0 +1,660 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_mime</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + + + <h1 align="CENTER">Module mod_mime</h1> + + <p>This module provides for determining the types of files from + the filename and for association of handlers with files.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> mod_mime.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + mime_module</p> + + <h2>Summary</h2> + This module is used to determine various bits of "meta + information" about documents. This information relates to the + content of the document and is returned to the browser or used + in content-negotiation within the server. In addition, a + "handler" can be set for a document, which determines how the + document will be processed within the server. + + <p>The directives <a href="#addcharset">AddCharset</a>, <a + href="#addencoding">AddEncoding</a>, <a + href="#addhandler">AddHandler</a>, <a + href="#addlanguage">AddLanguage</a> and <a + href="#addtype">AddType</a> are all used to map file extensions + onto the meta-information for that file. Respectively they set + the character set, content-encoding, handler, content-language, + and MIME-type (content-type) of documents. The directive <a + href="#typesconfig">TypesConfig</a> is used to specify a file + which also maps extensions onto MIME types. The directives <a + href="#forcetype">ForceType</a> and <a + href="#sethandler">SetHandler</a> are used to associated all + the files in a given location (<em>e.g.</em>, a particular + directory) onto a particular MIME type or handler.</p> + + <p>Note that changing the type or encoding of a file does not + change the value of the <code>Last-Modified</code> header. + Thus, previously cached copies may still be used by a client or + proxy, with the previous headers.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#addcharset">AddCharset</a></li> + + <li><a href="#addencoding">AddEncoding</a></li> + + <li><a href="#addhandler">AddHandler</a></li> + + <li><a href="#addlanguage">AddLanguage</a></li> + + <li><a href="#addtype">AddType</a></li> + + <li><a href="#defaultlanguage">DefaultLanguage</a></li> + + <li><a href="#forcetype">ForceType</a></li> + + <li><a href="#removeencoding">RemoveEncoding</a></li> + + <li><a href="#removehandler">RemoveHandler</a></li> + + <li><a href="#removetype">RemoveType</a></li> + + <li><a href="#sethandler">SetHandler</a></li> + + <li><a href="#typesconfig">TypesConfig</a></li> + </ul> + + <p>See also: <a + href="mod_mime_magic.html#mimemagicfile">MimeMagicFile</a>.</p> + + <h2><a id="multipleext" name="multipleext">Files with Multiple + Extensions</a></h2> + Files can have more than one extension, and the order of the + extensions is <em>normally</em> irrelevant. For example, if the + file <code>welcome.html.fr</code> maps onto content type + text/html and language French then the file + <code>welcome.fr.html</code> will map onto exactly the same + information. The only exception to this is if an extension is + given which Apache does not know how to handle. In this case it + will "forget" about any information it obtained from extensions + to the left of the unknown extension. So, for example, if the + extensions fr and html are mapped to the appropriate language + and type but extension xxx is not assigned to anything, then + the file <code>welcome.fr.xxx.html</code> will be associated + with content-type text/html but <em>no</em> language. + + <p>If more than one extension is given which maps onto the same + type of meta-information, then the one to the right will be + used. For example, if ".gif" maps to the MIME-type image/gif + and ".html" maps to the MIME-type text/html, then the file + <code>welcome.gif.html</code> will be associated with the + MIME-type "text/html".</p> + + <p>Care should be taken when a file with multiple extensions + gets associated with both a MIME-type and a handler. This will + usually result in the request being by the module associated + with the handler. For example, if the <code>.imap</code> + extension is mapped to the handler "imap-file" (from mod_imap) + and the <code>.html</code> extension is mapped to the MIME-type + "text/html", then the file <code>world.imap.html</code> will be + associated with both the "imap-file" handler and "text/html" + MIME-type. When it is processed, the "imap-file" handler will + be used, and so it will be treated as a mod_imap imagemap + file.</p> + <hr /> + + <h2><a id="addcharset" name="addcharset">AddCharset</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AddCharset <em>charset + extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime <br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> AddCharset is + only available in Apache 1.3.10 and later + + <p>The AddCharset directive maps the given filename extensions + to the specified content charset. <i>charset</i> is the MIME + charset parameter of filenames containing <i>extension</i>. + This mapping is added to any already in force, overriding any + mappings that already exist for the same <i>extension</i>.</p> + + <p>Example:</p> +<pre> + AddLanguage ja .ja + AddCharset EUC-JP .euc + AddCharset ISO-2022-JP .jis + AddCharset SHIFT_JIS .sjis +</pre> + + <p>Then the document <code>xxxx.ja.jis</code> will be treated + as being a Japanese document whose charset is ISO-2022-JP (as + will the document <code>xxxx.jis.ja</code>). The AddCharset + directive is useful for both to inform the client about the + character encoding of the document so that the document can be + interpreted and displayed appropriately, and for <a + href="../content-negotiation.html">content negotiation</a>, + where the server returns one from several documents based on + the client's charset preference.</p> + + <p>The <em>extension</em> argument is case-insensitive, and can + be specified with or without a leading dot.</p> + + <p><strong>See also</strong>: <a + href="mod_negotiation.html">mod_negotiation</a></p> + <hr /> + + <h2><a id="addencoding" name="addencoding">AddEncoding</a> + directive</h2> + <!--%plaintext <?INDEX {\tt AddEncoding} directive> --> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AddEncoding + <em>MIME-enc extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime + + <p>The AddEncoding directive maps the given filename extensions + to the specified encoding type. <em>MIME-enc</em> is the MIME + encoding to use for documents containing the + <em>extension</em>. This mapping is added to any already in + force, overriding any mappings that already exist for the same + <em>extension</em>. Example:</p> + + <blockquote> + <code>AddEncoding x-gzip .gz<br /> + AddEncoding x-compress .Z</code> + </blockquote> + This will cause filenames containing the .gz extension to be + marked as encoded using the x-gzip encoding, and filenames + containing the .Z extension to be marked as encoded with + x-compress. + + <p>Old clients expect <code>x-gzip</code> and + <code>x-compress</code>, however the standard dictates that + they're equivalent to <code>gzip</code> and + <code>compress</code> respectively. Apache does content + encoding comparisons by ignoring any leading <code>x-</code>. + When responding with an encoding Apache will use whatever form + (<em>i.e.</em>, <code>x-foo</code> or <code>foo</code>) the + client requested. If the client didn't specifically request a + particular form Apache will use the form given by the + <code>AddEncoding</code> directive. To make this long story + short, you should always use <code>x-gzip</code> and + <code>x-compress</code> for these two specific encodings. More + recent encodings, such as <code>deflate</code> should be + specified without the <code>x-</code>.</p> + + <p>The <em>extension</em> argument is case-insensitive, and can + be specified with or without a leading dot.</p> + + <p><strong>See also</strong>: <a href="#multipleext">Files with + multiple extensions</a></p> + <hr /> + + <h2><a id="addhandler" name="addhandler">AddHandler</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AddHandler + <em>handler-name extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> AddHandler is + only available in Apache 1.1 and later + + <p>AddHandler maps the filename extensions <em>extension</em> + to the <a href="../handler.html">handler</a> + <em>handler-name</em>. This mapping is added to any already in + force, overriding any mappings that already exist for the same + <em>extension</em>. For example, to activate CGI scripts with + the file extension "<code>.cgi</code>", you might use:</p> +<pre> + AddHandler cgi-script .cgi +</pre> + + <p>Once that has been put into your srm.conf or httpd.conf + file, any file containing the "<code>.cgi</code>" extension + will be treated as a CGI program.</p> + + <p>The <em>extension</em> argument is case-insensitive, and can + be specified with or without a leading dot.</p> + + <p><strong>See also</strong>: <a href="#multipleext">Files with + multiple extensions</a></p> + <hr /> + + <h2><a id="addlanguage" name="addlanguage">AddLanguage</a> + directive</h2> + <!--%plaintext <?INDEX {\tt AddLanguage} directive> --> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AddLanguage + <em>MIME-lang extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime + + <p>The AddLanguage directive maps the given filename extension + to the specified content language. <em>MIME-lang</em> is the + MIME language of filenames containing <em>extension</em>. This + mapping is added to any already in force, overriding any + mappings that already exist for the same + <em>extension</em>.</p> + + <p>Example:</p> + + <blockquote> + <code>AddEncoding x-compress .Z<br /> + AddLanguage en .en<br /> + AddLanguage fr .fr<br /> + </code> + </blockquote> + + <p>Then the document <code>xxxx.en.Z</code> will be treated as + being a compressed English document (as will the document + <code>xxxx.Z.en</code>). Although the content language is + reported to the client, the browser is unlikely to use this + information. The AddLanguage directive is more useful for <a + href="../content-negotiation.html">content negotiation</a>, + where the server returns one from several documents based on + the client's language preference.</p> + + <p>If multiple language assignments are made for the same + extension, the last one encountered is the one that is used. + That is, for the case of:</p> +<pre> + AddLanguage en .en + AddLanguage en-uk .en + AddLanguage en-us .en +</pre> + + <p>documents with the extension "<code>.en</code>" would be + treated as being "<code>en-us</code>".</p> + + <p>The <em>extension</em> argument is case-insensitive, and can + be specified with or without a leading dot.</p> + + <p><strong>See also</strong>: <a href="#multipleext">Files with + multiple extensions</a><br /> + <strong>See also</strong>: <a + href="./mod_negotiation.html">mod_negotiation</a></p> + <hr /> + + <h2><a id="addtype" name="addtype">AddType</a> directive</h2> + <!--%plaintext <?INDEX {\tt AddType} directive> --> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AddType <em>MIME-type + extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime + + <p>The AddType directive maps the given filename extensions + onto the specified content type. <em>MIME-type</em> is the MIME + type to use for filenames containing <em>extension</em>. This + mapping is added to any already in force, overriding any + mappings that already exist for the same <em>extension</em>. + This directive can be used to add mappings not listed in the + MIME types file (see the <code><a + href="#typesconfig">TypesConfig</a></code> directive). + Example:</p> + + <blockquote> + <code>AddType image/gif .gif</code> + </blockquote> + It is recommended that new MIME types be added using the + AddType directive rather than changing the <a + href="#typesconfig">TypesConfig</a> file. + + <p>Note that, unlike the NCSA httpd, this directive cannot be + used to set the type of particular files.</p> + + <p>The <em>extension</em> argument is case-insensitive, and can + be specified with or without a leading dot.</p> + + <p><strong>See also</strong>: <a href="#multipleext">Files with + multiple extensions</a></p> + <hr /> + + <h2><a id="defaultlanguage" + name="defaultlanguage">DefaultLanguage</a> directive</h2> + <!--%plaintext <?INDEX {\tt DefaultLanguage} directive> --> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> DefaultLanguage + <em>MIME-lang</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> DefaultLanguage + is only available in Apache 1.3.4 and later. + + <p>The DefaultLanguage directive tells Apache that all files in + the directive's scope (<em>e.g.</em>, all files covered by the + current <code><Directory></code> container) that don't + have an explicit language extension (such as <samp>.fr</samp> + or <samp>.de</samp> as configured by <samp>AddLanguage</samp>) + should be considered to be in the specified <em>MIME-lang</em> + language. This allows entire directories to be marked as + containing Dutch content, for instance, without having to + rename each file. Note that unlike using extensions to specify + languages, <samp>DefaultLanguage</samp> can only specify a + single language.</p> + + <p>If no <samp>DefaultLanguage</samp> directive is in force, + and a file does not have any language extensions as configured + by <samp>AddLanguage</samp>, then that file will be considered + to have no language attribute.</p> + + <p><strong>See also</strong>: <a + href="./mod_negotiation.html">mod_negotiation</a><br /> + <strong>See also</strong>: <a href="#multipleext">Files with + multiple extensions</a></p> + <hr /> + + <h2><a id="forcetype" name="forcetype">ForceType</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ForceType + <em>media-type</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ForceType is + only available in Apache 1.1 and later. + + <p>When placed into an <code>.htaccess</code> file or a + <code><Directory></code> or <code><Location></code> + section, this directive forces all matching files to be served + as the content type given by <em>media type</em>. For example, + if you had a directory full of GIF files, but did not want to + label them all with ".gif", you might want to use:</p> +<pre> + ForceType image/gif +</pre> + + <p>Note that this will override any filename extensions that + might determine the media type.</p> + <hr /> + + <h2><a id="removeencoding" + name="removeencoding">RemoveEncoding</a> directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RemoveEncoding + <em>extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> RemoveEncoding + is only available in Apache 1.3.13 and later. + + <p>The <samp>RemoveEncoding</samp> directive removes any + encoding associations for files with the given extensions. This + allows <code>.htaccess</code> files in subdirectories to undo + any associations inherited from parent directories or the + server config files. An example of its use might be:</p> + + <dl> + <dt><code>/foo/.htaccess:</code></dt> + + <dd><code>AddEncoding x-gzip .gz</code><br /> + <code>AddType text/plain .asc</code><br /> + <code><Files *.gz.asc></code><br /> + <code> RemoveEncoding + .gz</code><br /> + <code></Files></code></dd> + </dl> + + <p>This will cause <code>foo.gz</code> to mark as being encoded + with the gzip method, but <code>foo.gz.asc</code> as an + unencoded plaintext file.</p> + + <p><b>Note:</b>RemoveEncoding directives are processed + <i>after</i> any AddEncoding directives, so it is possible they + may undo the effects of the latter if both occur within the + same directory configuration.</p> + + <p>The <em>extension</em> argument is case-insensitive, and can + be specified with or without a leading dot.</p> + <hr /> + + <h2><a id="removehandler" + name="removehandler">RemoveHandler</a> directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RemoveHandler + <em>extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> RemoveHandler is + only available in Apache 1.3.4 and later. + + <p>The <samp>RemoveHandler</samp> directive removes any handler + associations for files with the given extensions. This allows + <code>.htaccess</code> files in subdirectories to undo any + associations inherited from parent directories or the server + config files. An example of its use might be:</p> + + <dl> + <dt><code>/foo/.htaccess:</code></dt> + + <dd><code>AddHandler server-parsed .html</code></dd> + + <dt><code>/foo/bar/.htaccess:</code></dt> + + <dd><code>RemoveHandler .html</code></dd> + </dl> + + <p>This has the effect of returning <samp>.html</samp> files in + the <samp>/foo/bar</samp> directory to being treated as normal + files, rather than as candidates for parsing (see the <a + href="mod_include.html"><samp>mod_include</samp></a> + module).</p> + + <p>The <em>extension</em> argument is case-insensitive, and can + be specified with or without a leading dot.</p> + <hr /> + + <h2><a id="removetype" name="removetype">RemoveType</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RemoveType + <em>extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> RemoveType is + only available in Apache 1.3.13 and later. + + <p>The <samp>RemoveType</samp> directive removes any MIME type + associations for files with the given extensions. This allows + <code>.htaccess</code> files in subdirectories to undo any + associations inherited from parent directories or the server + config files. An example of its use might be:</p> + + <dl> + <dt><code>/foo/.htaccess:</code></dt> + + <dd><code>RemoveType .cgi</code></dd> + </dl> + + <p>This will remove any special handling of <code>.cgi</code> + files in the <code>/foo/</code> directory and any beneath it, + causing the files to be treated as being of the <a + href="core.html#defaulttype">default type</a>.</p> + + <p><b>Note:</b><code>RemoveType</code> directives are processed + <i>after</i> any <code>AddType</code> directives, so it is + possible they may undo the effects of the latter if both occur + within the same directory configuration.</p> + + <p>The <em>extension</em> argument is case-insensitive, and can + be specified with or without a leading dot.</p> + <hr /> + + <h2><a id="sethandler" name="sethandler">SetHandler</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> SetHandler + <em>handler-name</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> SetHandler is + only available in Apache 1.1 and later. + + <p>When placed into an <code>.htaccess</code> file or a + <code><Directory></code> or <code><Location></code> + section, this directive forces all matching files to be parsed + through the <a href="../handler.html">handler</a> given by + <em>handler-name</em>. For example, if you had a directory you + wanted to be parsed entirely as imagemap rule files, regardless + of extension, you might put the following into an + <code>.htaccess</code> file in that directory:</p> +<pre> + SetHandler imap-file +</pre> + + <p>Another example: if you wanted to have the server display a + status report whenever a URL of + <code>http://servername/status</code> was called, you might put + the following into access.conf:</p> +<pre> + <Location /status> + SetHandler server-status + </Location> +</pre> + <hr /> + + <h2><a id="typesconfig" name="typesconfig">TypesConfig</a> + directive</h2> + <!--%plaintext <?INDEX {\tt TypesConfig} directive> --> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> TypesConfig + <em>file-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>TypesConfig + conf/mime.types</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime + + <p>The TypesConfig directive sets the location of the MIME + types configuration file. <em>Filename</em> is relative to the + <a href="core.html#serverroot">ServerRoot</a>. This file sets + the default list of mappings from filename extensions to + content types; changing this file is not recommended. Use the + <a href="#addtype">AddType</a> directive instead. The file + contains lines in the format of the arguments to an AddType + command:</p> + + <blockquote> + <em>MIME-type extension extension ...</em> + </blockquote> + The extensions are lower-cased. Blank lines, and lines + beginning with a hash character (`#') are ignored. + + <p> <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + + </p> + </body> +</html> + + + diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_mime.html.ja.jis b/usr.sbin/httpd/htdocs/manual/mod/mod_mime.html.ja.jis new file mode 100644 index 00000000000..4d8e2fb22c8 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/mod/mod_mime.html.ja.jis @@ -0,0 +1,823 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<title>Apache module mod_mime</title> +</head> +<!-- English revision: 1.45 --> + +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> +<body + bgcolor="#FFFFFF" + text="#000000" + link="#0000FF" + vlink="#000080" + alink="#FF0000" +> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + +<h1 align="CENTER">mod_mime $B%b%8%e!<%k(B</h1> + +<p>$B$3$N%b%8%e!<%k$O!"%U%!%$%k$N%?%$%W$r%U%!%$%kL>$+$i7hDj$9$k5!G=$H!"(B +$B%U%!%$%k$K%O%s%I%i$r4XO"IU$1$k5!G=$rDs6!$7$^$9!#(B</p> + +<p><a +href="module-dict.html#Status" +rel="Help" +><strong>$B%9%F!<%?%9(B:</strong></a> Base +<br> +<a +href="module-dict.html#SourceFile" +rel="Help" +><strong>$B%=!<%9%U%!%$%k(B:</strong></a> mod_mime.c +<br> +<a +href="module-dict.html#ModuleIdentifier" +rel="Help" +><strong>$B%b%8%e!<%k<1JL;R(B:</strong></a> mime_module +</p> + +<h2>$B35MW(B</h2> + +<p> +$B$3$N%b%8%e!<%k$O!"%I%-%e%a%s%H$N$$$m$$$m$J!V%a%?>pJs!W$r7hDj$9$k$?$a$K(B +$B;HMQ$5$l$^$9!#$3$N>pJs$O%I%-%e%a%s%H$N%3%s%F%s%D$K4XO"$7$F$$$k$b$N$G!"(B +$B%V%i%&%6$KJV$5$l$?$j!"%5!<%PFb$G%3%s%F%s%H%M%4%7%(!<%7%g%s$K;H$o$l$?$j$7$^$9!#(B +$B$5$i$K!"!V%O%s%I%i!W$r%I%-%e%a%s%H$KBP$7$F@_Dj$9$k$3$H$,$G$-$^$9!#%O%s%I%i$O(B +$B%5!<%PFb$G%I%-%e%a%s%H$r$I$N$h$&$K=hM}$9$k$+$r7hDj$7$^$9!#(B +</p> + +<p> +$B%G%#%l%/%F%#%V(B <a href="#addcharset">AddCharset</a>, +<a href="#addencoding">AddEncoding</a>, <a href="#addhandler">AddHandler</a>, +<a href="#addlanguage">AddLanguage</a>, <a href="#addtype">AddType</a> +$B$O$9$Y$F!"%U%!%$%k$N3HD%;R$r%a%?>pJs$K%^%C%W$9$k$?$a$K;HMQ$5$l$^$9!#(B +$B$=$l$>$l!"%I%-%e%a%s%H$NJ8;z%;%C%H(B ($BLuCm(B: charset)$B!"(Bcontent-encoding, $B%O%s%I%i!"(B +content-language, MIME $B%?%$%W(B (content-type) $B$r@_Dj$7$^$9!#(B +$B%G%#%l%/%F%#%V(B <a href="#typesconfig">TypesConfig</a> $B$O3HD%;R$r(B MIME $B%?%$%W$K(B +$B%^%C%W$9$k%U%!%$%k$r;XDj$9$k$?$a$K;HMQ$5$l$^$9!#%G%#%l%/%F%#%V(B <a +href="#forcetype">ForceType</a> $B$H(B <a +href="#sethandler">SetHandler</a> $B$O!"M?$($i$l$?>l=j(B (<em>$BNc$($P(B</em>$B!"(B +$BFCDj$N%G%#%l%/%H%j(B) $B$K$"$k$9$Y$F$N%U%!%$%k$rFCDj$N(B MIME $B%?%$%W$d%O%s%I%i$K(B +$B4XO"IU$1$k$?$a$K;HMQ$5$l$^$9!#(B +</p> + + +<p> +$B%U%!%$%k$N%?%$%W$d%(%s%3!<%G%#%s%0$rJQ$($F$b(B <code>Last-Modified</code> +$B%X%C%@$NCM$OJQ$o$i$J$$$3$H$KCm0U$7$F$/$@$5$$!#$G$9$+$i!"(B +$B$=$l$i$rJQ99$7$?>l9g$O!"%/%i%$%"%s%H$d%W%m%-%7$G0JA0$K%-%c%C%7%e$5$l$?(B +$B%3%T!<$,$=$N$H$-$N%X%C%@$H$H$b$K;H$o$l$k2DG=@-$,$"$j$^$9!#(B +</p> + +<h2>$B%G%#%l%/%F%#%V(B</h2> +<ul> +<li><a href="#addcharset">AddCharset</a></li> +<li><a href="#addencoding">AddEncoding</a></li> +<li><a href="#addhandler">AddHandler</a></li> +<li><a href="#addlanguage">AddLanguage</a></li> +<li><a href="#addtype">AddType</a></li> +<li><a href="#defaultlanguage">DefaultLanguage</a></li> +<li><a href="#forcetype">ForceType</a></li> +<li><a href="#removeencoding">RemoveEncoding</a></li> +<li><a href="#removehandler">RemoveHandler</a></li> +<li><a href="#removetype">RemoveType</a></li> +<li><a href="#sethandler">SetHandler</a></li> +<li><a href="#typesconfig">TypesConfig</a></li> +</ul> + +<p>$B;2>H(B: <a +href="mod_mime_magic.html#mimemagicfile">MimeMagicFile</a></p> + +<h2><a name="multipleext">$BJ#?t$N3HD%;R$N$"$k%U%!%$%k(B</a></h2> + +<p> +$B%U%!%$%k$OJ#?t$N3HD%;R$r;}$D$3$H$,$G$-!"3HD%;R$N=gHV$O(B<em>$BDL>o$O(B</em> +$B4X78$"$j$^$;$s!#Nc$($P!"(B<code>welcome.html.fr</code> $B%U%!%$%k$,(B +$B%3%s%F%s%H%?%$%W$O(B text/html $B$K!"8@8l$O%U%i%s%98l$K%^%C%W$5$l$k>l9g!"(B +<code>welcome.fr.html</code> $B$b$^$C$?$/F1$8>pJs$K%^%C%W$5$l$^$9!#(B +$BM#0l$NNc30$O!"M?$($i$l$?3HD%;R$N07$$J}$r(B +Apache $B$,CN$i$J$$>l9g$G$9!#$=$N>l9g!"(BApache $B$OCN$i$J$$3HD%;R$N:8$K$"$k(B +$B$9$Y$F$N3HD%;R$r!VK:$l!W$^$9!#$G$9$+$i!"Nc$($P!"3HD%;R(B fr $B$H(B html $B$,E,@Z$J(B +$B8@8l$H%?%$%W$K%^%C%W$5$l$F$$$k$1$l$I$b!"3HD%;R(B xxx $B$O2?$K$b(B +$B3d$jEv$F$i$l$F$$$J$$$H$$$&>l9g$K$O!"(B<code>welcome.fr.xxx.html</code> +$B%U%!%$%k$O%3%s%F%s%H%?%$%W(B text/html +$B$K4XO"IU$1$i$l$^$9$,!"8@8l$K$O4XO"IU$1$i$l(B<em>$B$^$;$s(B</em>$B!#(B +</p> + +<p> +$BF1$8%a%?>pJs$K%^%C%W$5$l$k3HD%;R$,J#?t$"$k$H$-$K$O!"1&B&$K$"$k$b$N$,(B +$B;HMQ$5$l$^$9!#Nc$($P!"(B".gif" $B$,(B MIME $B%?%$%W(B image/gif $B$K%^%C%W$5$l!"(B +".html" $B$,(B MIME $B%?%$%W(B text/html $B$K%^%C%W$5$l$k>l9g$O!"%U%!%$%k(B +<code>welcome.gif.html</code> $B$O(B MIME $B%?%$%W(B "text/html" $B$K4XO"IU$1$i$l$^$9!#(B +</p> + +<p> +$BJ#?t$N3HD%;R$N$"$k%U%!%$%k$,(B MIME $B%?%$%W$H%O%s%I%i$NN>J}$K(B +$B4XO"IU$1$i$l$F$$$k$H$-$OCm0U$9$kI,MW$,$"$j$^$9!#$=$N>l9g!"IaDL$O(B +$B%j%/%(%9%H$,%O%s%I%i$K4XO"IU$1$i$l$?%b%8%e!<%k$K$h$C$F07$o$l$k$3$H$K$J$j$^$9!#(B +$BNc$($P!"3HD%;R(B <code>.imap</code> $B$,(B (mod_imap $B$N(B) "imap-file" $B$K(B +$B%^%C%W$5$l$F$$$F!"(B<code>.html</code> $B$,(B MIME $B%?%$%W(B "text/html" $B$K(B +$B%^%C%W$5$l$F$$$k$H$-$O!"%U%!%$%k(B <code>world.imap.html</code> $B$O(B +"imap-file" $B%O%s%I%i$H(B "text/html" MIME $B%?%$%W$K4XO"IU$1$i$l$^$9!#(B +$B%U%!%$%k$,=hM}$5$l$k$H$-$O(B "imap-file" $B%O%s%I%i$,;HMQ$5$l$^$9$N$G!"(B +$B$=$N%U%!%$%k$O(B mod_imap $B$N%$%a!<%8%^%C%W%U%!%$%k$H$7$F07$o$l$k$3$H$K$J$j$^$9!#(B +</p> + +<hr> + +<h2><a name="addcharset">AddCharset</a> $B%G%#%l%/%F%#%V(B</h2> +<a href="directive-dict.html#Syntax" rel="Help" +><strong>$B9=J8(B:</strong></a> AddCharset <em>charset extension</em> + [<em>extension</em>] ...<br> +<a href="directive-dict.html#Context" rel="Help" +><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"(B + $B%G%#%l%/%H%j!"(B.htaccess<br> +<a + href="directive-dict.html#Override" + rel="Help" +><strong>$B>e=q$-(B:</strong></a> FileInfo<br> +<a + href="directive-dict.html#Status" + rel="Help" +><strong>$B%9%F!<%?%9(B:</strong></a> Base<br> +<a + href="directive-dict.html#Module" + rel="Help" +><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime +<br> +<a href="directive-dict.html#Compatibility" rel="Help" +><strong>$B8_49@-(B:</strong></a> AddCharset $B$O(B Apache 1.3.10 $B0J9_$G$N$_;HMQ2DG=!#(B +<br> + +<p> +AddCharset $B%G%#%l%/%F%#%V$O!"M?$($i$l$?3HD%;R$r;XDj$5$l$?(B +charset $B$K%^%C%W$7$^$9!#(B<em>charset</em> $B$O!"3HD%;R(B <em>extension</em> $B$r(B +$B4^$s$G$$$k%U%!%$%kL>$N(B MIME charset $B%Q%i%a!<%?$G$9!#(B +$B?7$7$$%^%C%T%s%0$O4{$K$"$k$b$N$K(B +$BDI2C$5$l!"F1$83HD%;R(B <em>extension</em> $B$N$?$a$K4{$KB8:_$9$k%^%C%T%s%0$r(B +$B>e=q$-$7$^$9!#(B +</p> +<p> +$BNc(B: +</p> +<pre> + AddLanguage ja .ja + AddCharset EUC-JP .euc + AddCharset ISO-2022-JP .jis + AddCharset SHIFT_JIS .sjis +</pre> + +<p> +$B$3$N>l9g!"%I%-%e%a%s%H(B <code>xxxx.ja.jis</code> $B$O(B charset $B$,(B ISO-2022-JP $B$N(B +$BF|K\8l$N%I%-%e%a%s%H$H$7$F07$o$l$^$9(B (<code>xxxx.jis.ja</code> $B$bF1MM(B)$B!#(B +AddCharset $B%G%#%l%/%F%#%V$O!"%I%-%e%a%s%H$,E,@Z$K2r<a$5$lI=<($5$l$k$h$&$K!"(B +$B%I%-%e%a%s%H$N(B charset $B$N>pJs$r%/%i%$%"%s%H$K65$($k$?$a$KLr$KN)$A$^$9!#(B +$B$^$?!"%5!<%P$,%/%i%$%"%s%H$N(B charset $B$NM%@hEY$K4p$E$$$FJ#?t$N%I%-%e%a%s%H$N(B +$BCf$+$i%I%-%e%a%s%H$rA*$V(B<a + href="../content-negotiation.html">$B%3%s%F%s%H%M%4%7%(!<%7%g%s(B</a>$B$N$?$a$K$b(B +$BLr$KN)$A$^$9!#(B +</p> + +<p> +$B0z?t(B <em>extension</em> $B$OBgJ8;z>.J8;z$r6hJL$;$:!":G=i$N%I%C%H$O$"$C$F$b(B +$B$J$/$F$b9=$$$^$;$s!#(B +</p> + +<p> +<strong>$B;2>H(B</strong>: <a href="mod_negotiation.html">mod_negotiation</a> +</p> + +<hr> + +<h2><a name="addencoding">AddEncoding</a> $B%G%#%l%/%F%#%V(B</h2> +<!--%plaintext <?INDEX {\tt AddEncoding} directive> --> +<a + href="directive-dict.html#Syntax" + rel="Help" +><strong>$B9=J8(B:</strong></a> AddEncoding <em>MIME-enc extension</em> + [<em>extension</em>] ...<BR> +<a + href="directive-dict.html#Context" + rel="Help" +><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"(B + $B%G%#%l%/%H%j!"(B.htaccess<br> +<a + href="directive-dict.html#Override" + rel="Help" +><strong>$B>e=q$-(B:</strong></a> FileInfo<br> +<a + href="directive-dict.html#Status" + rel="Help" +><strong>$B%9%F!<%?%9(B:</strong></a> Base<br> +<a + href="directive-dict.html#Module" + rel="Help" +><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br> + +<p> +AddEncoding $B%G%#%l%/%F%#%V$O!"M?$($i$l$?3HD%;R$r;XDj$5$l$?(B +$B%(%s%3!<%G%#%s%0$K%^%C%W$7$^$9!#(B<em>MIME-enc</em> $B$O!"3HD%;R(B <em>extension</em> +$B$r4^$s$@%I%-%e%a%s%H$K;HMQ$9$k(B MIME $B%(%s%3!<%G%#%s%0$G$9!#(B +$B$3$N?7$7$$%^%C%T%s%0$O4{$K$"$k$b$N$KDI2C$5$l!"F1$83HD%;R(B <em>extension</em> +$B$N$?$a$K4{$KB8:_$9$k%^%C%T%s%0$r>e=q$-$7$^$9!#(B +</p> + +<p> +$BNc(B: +</p> +<pre> + AddEncoding x-gzip .gz + AddEncoding x-compress .Z +</pre> + +<p> +$B$3$l$O!"3HD%;R(B .gz $B$r4^$`%U%!%$%kL>$,(B x-gzip $B%(%s%3!<%G%#%s%0$r;H$C$F(B +$B%(%s%3!<%I$5$l$F$$$k$3$H$H!"3HD%;R(B .Z $B$r4^$`%U%!%$%kL>$,(B x-compress $B$G(B +$B%(%s%3!<%I$5$l$F$$$k$3$H$r<($7$^$9!#(B +</p> + +<p> +$B8E$$%/%i%$%"%s%H$O(B <code>x-zip</code> $B$H(B <code>x-compress</code> $B$,(B +$BJV$C$F$/$k$3$H$r4|BT$7$^$9$,!"I8=`5,3J$G$O$=$l$>$l(B <code>gzip</code> $B$H(B +<code>compress</code> $B$HEy2A$G$"$k$3$H$K$J$C$F$$$^$9!#(BApache $B$O!"(B +$B%3%s%F%s%H%(%s%3!<%G%#%s%0$NHf3S$r$9$k$H$-$K$O!"@hF,$K$"$k(B <code>x-</code> +$B$rL5;k$7$^$9!#(BApache $B$,%(%s%3!<%G%#%s%0IU$-$G1~Ez$rJV$9$H$-$O!"(B +$B%/%i%$%"%s%H$,MW5a$7$?7A<0(B +(<em>$B$9$J$o$A(B</em>$B!"(B<code>x-foo</code> $B$d(B <code>foo</code>) +$B$r;HMQ$7$^$9!#MW$9$k$K!"$3$NFs$D$N%(%s%3!<%G%#%s%0$N>l9g$O>o$K(B +<code>x-gzip</code> $B$H(B <code>x-compress</code> $B$r;H$&$Y$-$G$"$k!"$H$$$&$3$H$G$9!#(B +<code>deflate</code> $B$N$h$&$J$h$j?7$7$$%(%s%3!<%G%#%s%0$G$O!"(B<code>x-</code> +$B$J$7$G;XDj$7$F$/$@$5$$!#(B +</p> + +<p> +$B0z?t(B <em>extension</em> $B$OBgJ8;z>.J8;z$r6hJL$;$:!":G=i$N%I%C%H$O$"$C$F$b(B +$B$J$/$F$b9=$$$^$;$s!#(B +</p> + + +<p> +<strong>$B;2>H(B</strong>: <a href="#multipleext">$BJ#?t$N3HD%;R$N$"$k%U%!%$%k(B</a> +</p> +<hr> + +<h2><a name="addhandler">AddHandler</a> $B%G%#%l%/%F%#%V(B</h2> + +<a + href="directive-dict.html#Syntax" + rel="Help" +><strong>$B9=J8(B:</strong></a> AddHandler <em>handler-name extension</em> + [<em>extension</em>] ...<br> +<a + href="directive-dict.html#Context" + rel="Help" +><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"(B + $B%G%#%l%/%H%j!"(B.htaccess<br> +<a + href="directive-dict.html#Override" + rel="Help" +><strong>$B>e=q$-(B:</strong></a> FileInfo<br> +<a + href="directive-dict.html#Status" + rel="Help" +><strong>$B%9%F!<%?%9(B:</strong></a> Base<br> +<a + href="directive-dict.html#Module" + rel="Help" +><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br> +<a + href="directive-dict.html#Compatibility" + rel="Help" +><strong>$B8_49@-(B:</strong></a> AddHandler $B$O(B Apache 1.1 $B0J9_$G$N$_;HMQ2DG=!#(B<br> + +<p> +AddHandler $B$O!"3HD%;R(B <em>extension</em> $B$r(B +<a href="../handler.html">$B%O%s%I%i(B</a> <em>handler-name</em> $B$K%^%C%W$7$^$9!#(B +$B$3$N?7$7$$%^%C%T%s%0$O4{$K$"$k$b$N$KDI2C$5$l!"F1$83HD%;R(B <em>extension</em> +$B$N$?$a$K4{$KB8:_$9$k%^%C%T%s%0$r>e=q$-$7$^$9!#(B +</p> + +<p> +$BNc$($P!"3HD%;R(B "<code>.cgi</code>" $B$G=*$o$k%U%!%$%k$r(B CGI $B%9%/%j%W%H$H$7$F(B +$B07$$$?$$$H$-$O!"0J2<$N@_Dj$r$7$^$9!#(B +</p> +<pre> + AddHandler cgi-script .cgi +</pre> + +<p> +$B$3$l$r(B srm.conf $B$+(B httpd.conf $B%U%!%$%k$K5-=R$9$k$3$H$G!"3HD%;R(B "<code>.cgi</code>" $B$r(B +$B4^$`%U%!%$%k$O(B CGI $B%W%m%0%i%`$H$7$F07$o$l$^$9!#(B +</p> + +<p> +$B0z?t(B <em>extension</em> $B$OBgJ8;z>.J8;z$r6hJL$;$:!":G=i$N%I%C%H$O$"$C$F$b(B +$B$J$/$F$b9=$$$^$;$s!#(B +</p> + + +<p> +<strong>$B;2>H(B</strong>: <a href="#multipleext">$BJ#?t$N3HD%;R$N$"$k%U%!%$%k(B</a> +</p> + +<hr> + +<h2><a name="addlanguage">AddLanguage</a> $B%G%#%l%/%F%#%V(B</h2> +<!--%plaintext <?INDEX {\tt AddLanguage} directive> --> +<a + href="directive-dict.html#Syntax" + rel="Help" +><strong>$B9=J8(B:</strong></a> AddLanguage <em>MIME-lang extension</em> + [<em>extension</em>] ...<BR> +<a + href="directive-dict.html#Context" + rel="Help" +><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"(B + $B%G%#%l%/%H%j!"(B.htaccess<br> +<a + href="directive-dict.html#Override" + rel="Help" +><strong>$B>e=q$-(B:</strong></a> FileInfo<br> +<a + href="directive-dict.html#Status" + rel="Help" +><strong>$B%9%F!<%?%9(B:</strong></a> Base<br> +<a + href="directive-dict.html#Module" + rel="Help" +><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br> + +<p> +AddLanguage $B%G%#%l%/%F%#%V$O!"M?$($i$l$?3HD%;R$r;XDj$5$l$?(B content language $B$K(B +$B%^%C%W$7$^$9!#(B<em>MIME-lang</em> $B$O!"3HD%;R(B <em>extension</em> $B$r4^$s$G$$$k(B +$B%U%!%$%kL>$N(B MIME $B$K$*$1$k8@8l$G$9!#(B +$B$3$N?7$7$$%^%C%T%s%0$O4{$K$"$k$b$N$KDI2C$5$l!"F1$83HD%;R(B <em>extension</em> +$B$N$?$a$K4{$KB8:_$9$k%^%C%T%s%0$r>e=q$-$7$^$9!#(B +</p> + +<p> +$BNc(B: +</p> +<pre> + AddEncoding x-compress .Z + AddLanguage en .en + AddLanguage fr .fr +</pre> + +<p> +$B$3$N>l9g!"(B<code>xxxx.en.Z</code> $B%I%-%e%a%s%H$O(B compress $B$5$l$?(B +$B1Q8l$N%I%-%e%a%s%H$H$7$F07$o$l$^$9(B (<code>xxxx.Z.en</code> $B$bF1MM(B)$B!#(B +content language $B$O%/%i%$%"%s%H$KDLCN$5$l$^$9$,!"%V%i%&%6$,$3$N>pJs$r(B +$B;H$&$3$H$O$*$=$i$/$"$j$^$;$s!#(BAddLanguage $B%G%#%l%/%F%#%V$O!"(B +$B%5!<%P$,%/%i%$%"%s%H$N8@8l$NM%@hEY$K4p$E$$$FJ#?t$N%I%-%e%a%s%H$N(B +$BCf$+$i%I%-%e%a%s%H$rA*$V(B<a + href="../content-negotiation.html">$B%3%s%F%s%H%M%4%7%(!<%7%g%s(B</a>$B$N$?$a$K(B +$B$h$jLr$KN)$A$^$9!#(B +</p> +<p> +$BJ#?t$N8@8l$,F1$83HD%;R$K3d$jEv$F$i$l$F$$$k$H$-$O!":G8e$N$b$N$,;HMQ$5$l$^$9!#(B +$B$9$J$o$A!"<!$N$h$&$J>l9g$O!"(B +$B3HD%;R(B "<code>.en</code>" $B$N$"$k%I%-%e%a%s%H$O(B "<code>en-us</code>" $B$H$7$F(B +$B07$o$l$^$9!#(B +</p> +<pre> + AddLanguage en .en + AddLanguage en-uk .en + AddLanguage en-us .en +</pre> + +<p> +$B0z?t(B <em>extension</em> $B$OBgJ8;z>.J8;z$r6hJL$;$:!":G=i$N%I%C%H$O$"$C$F$b(B +$B$J$/$F$b9=$$$^$;$s!#(B +</p> + +<p> +<strong>$B;2>H(B</strong>: <a href="#multipleext">$BJ#?t$N3HD%;R$N$"$k%U%!%$%k(B</a> +<br> +<strong>$B;2>H(B</strong>: <a href="./mod_negotiation.html">mod_negotiation</a> +</p> + +<hr> + +<h2><a name="addtype">AddType</a> $B%G%#%l%/%F%#%V(B</h2> +<!--%plaintext <?INDEX {\tt AddType} directive> --> +<a + href="directive-dict.html#Syntax" + rel="Help" +><strong>$B9=J8(B:</strong></a> AddType <em>MIME-type extension</em> + [<em>extension</em>] ...<br> +<a + href="directive-dict.html#Context" + rel="Help" +><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"(B + $B%G%#%l%/%H%j!"(B.htaccess<br> +<a + href="directive-dict.html#Override" + rel="Help" +><strong>$B>e=q$-(B:</strong></a> FileInfo<br> +<a + href="directive-dict.html#Status" + rel="Help" +><strong>$B%9%F!<%?%9(B:</strong></a> Base<br> +<a + href="directive-dict.html#Module" + rel="Help" +><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br> + +<p> +AddType $B%G%#%l%/%F%#%V$O!"M?$($i$l$?3HD%;R$r;XDj$5$l$?(B +$B%3%s%F%s%H%?%$%W$K%^%C%W$7$^$9!#(B<em>MIME-type</em> $B$O3HD%;R(B <em>extension</em> +$B$r4^$s$@%I%-%e%a%s%H$K;HMQ$9$k(B MIME $B%?%$%W$G$9!#(B +$B$3$N?7$7$$%^%C%T%s%0$O4{$K$"$k$b$N$KDI2C$5$l!"F1$83HD%;R(B <em>extension</em> +$B$N$?$a$K4{$KB8:_$9$k%^%C%T%s%0$r>e=q$-$7$^$9!#$3$N%G%#%l%/%F%#%V$O(B +MIME $B%?%$%W%U%!%$%k(B (<code><a +href="#typesconfig">TypesConfig</a></code> $B%G%#%l%/%F%#%V$r;2>H(B) $B$K(B +$B$J$$%^%C%T%s%0$rDI2C$9$k$?$a$K;HMQ$9$k$3$H$,$G$-$^$9!#(B</p> + +<p> +$BNc(B: +</p> +<pre> + AddType image/gif .gif +</pre> + +<p> +$B?7$7$$(B MIME $B%?%$%W$O!"(B<a href="#typesconfig">TypesConfig</a> $B%U%!%$%k$r(B +$BJQ99$9$k$N$G$O$J$/!"(BAddType $B%G%#%l%/%F%#%V$r;H$C$FDI2C$9$k$3$H$,(B +$B?d>)$5$l$F$$$^$9!#(B</p> + +<p> +NCSA httpd $B$H$O0c$C$F!"$3$N%G%#%l%/%F%#%V$OFCDj$N%U%!%$%k$N%?%$%W$r(B +$B@_Dj$9$k$3$H$O$G$-$J$$$3$H$KCm0U$7$F$/$@$5$$!#(B</p> + +<p> +$B0z?t(B <em>extension</em> $B$OBgJ8;z>.J8;z$r6hJL$;$:!":G=i$N%I%C%H$O$"$C$F$b(B +$B$J$/$F$b9=$$$^$;$s!#(B +</p> + +<p> +<strong>$B;2>H(B</strong>: <a href="#multipleext">$BJ#?t$N3HD%;R$N$"$k%U%!%$%k(B</a> +</p> + +<hr> + +<h2><a name="defaultlanguage">DefaultLanguage</a> $B%G%#%l%/%F%#%V(B</h2> +<!--%plaintext <?INDEX {\tt DefaultLanguage} directive> --> +<a + href="directive-dict.html#Syntax" + rel="Help" +><strong>$B9=J8(B:</strong></a> DefaultLanguage <em>MIME-lang</em><br> +<a + href="directive-dict.html#Context" + rel="Help" +><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"(B + $B%G%#%l%/%H%j!"(B.htaccess<br> +<a + href="directive-dict.html#Override" + rel="Help" +><strong>$B>e=q$-(B:</strong></a> FileInfo<br> +<a + href="directive-dict.html#Status" + rel="Help" +><strong>$B%9%F!<%?%9(B:</strong></a> Base<br> +<a + href="directive-dict.html#Module" + rel="Help" +><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br> +<a + href="directive-dict.html#Compatibility" + rel="Help" +><strong>$B8_49@-(B:</strong></a> DefaultLanguage $B$O(B Apache 1.3.4 $B0J9_$G$N$_(B +$B;HMQ2DG=!#(B<br> + +<p> +DefaultLanguage $B%G%#%l%/%F%#%V$O!"(BApache $B$,%G%#%l%/%F%#%V$N%9%3!<%W(B +(<em>$BNc$($P(B</em>$B!"$=$N;~E@$N(B <code><Directory></code> $B$N(B +$BHO0O(B) $B$K$"$k!"L@<(E*$J8@8l3HD%;R(B (<samp>AddLanguage</samp> $B$G@_Dj$5$l$k(B +<samp>.fr</samp> $B$d(B <samp>.de</samp>) $B$N$J$$A4$F$N%U%!%$%k$r!"(B +$B;XDj$5$l$?(B <em>MIME-lang</em> $B8@8l$G$"$k$H$_$J$9$h$&$K$7$^$9!#(B +$B$3$l$K$h$j!"$9$Y$F$N%U%!%$%kL>$rJQ$($k$3$H$J$/!"%G%#%l%/%H%j$,(B +$B%*%i%s%@8l$N%3%s%F%s%H$r4^$s$G$$$k!"$H$$$&$h$&$J$3$H$r(B +$B;XDj$9$k$3$H$,$G$-$^$9!#(B +$B3HD%;R$r;HMQ$7$F8@8l$r;XDj$9$kJ}K!$H0c$$!"(B<samp>DefaultLanguage</samp> +$B$O0l$D$N8@8l$7$+;XDj$G$-$J$$$3$H$KCm0U$7$F$/$@$5$$!#(B</p> + + +<p> +<samp>DefaultLanguage</samp> $B%G%#%l%/%F%#%V$,M-8z$G$J$/!"(B +$B%U%!%$%k$K(B <samp>AddLanguage</samp> $B$G@_Dj$5$l$?8@8l$N3HD%;R$,$J$$$H$-$O!"(B +$B%U%!%$%k$K$O8@8lB0@-$,$J$$$H$_$J$5$l$^$9!#(B</p> + + +<P> +<strong>$B;2>H(B</strong>: <a +href="./mod_negotiation.html">mod_negotiation</a> +<br> +<strong>$B;2>H(B</strong>: <a href="#multipleext">$BJ#?t$N3HD%;R$N$"$k%U%!%$%k(B</A> +</p> + +<hr> + +<h2><a name="forcetype">ForceType</a> $B%G%#%l%/%F%#%V(B</h2> + +<a + href="directive-dict.html#Syntax" + rel="Help" +><strong>$B9=J8(B:</strong></a> ForceType <em>media-type</em><br> +<a + href="directive-dict.html#Context" + rel="Help" +><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%G%#%l%/%H%j!"(B.htaccess<br> +<a + href="directive-dict.html#Status" + rel="Help" +><strong>$B%9%F!<%?%9(B:</strong></a> Base<br> +<a + href="directive-dict.html#Module" + rel="Help" +><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br> +<a + href="directive-dict.html#Compatibility" + rel="Help" +><strong>$B8_49@-(B:</strong></a> ForceType $B$O(B Apache 1.1 $B0J9_$G$N$_;HMQ2DG=!#(B + +<p> +<code>.htaccess</code> $B$d(B <code><Directory></code> $B%;%/%7%g%s!"(B +<code><Location></code> $B%;%/%7%g%s$K=q$+$l$?>l9g!"$3$N(B +$B%G%#%l%/%F%#%V$O$=$3$K$"$k$9$Y$F$N%U%!%$%k$,(B <em>media type</em> $B$G(B +$B;XDj$5$l$?%3%s%F%s%H%?%$%W$H$7$F07$o$l$k$3$H$r6/@)$7$^$9!#Nc$($P!"(B +GIF $B%U%!%$%k$P$+$j$N%G%#%l%/%H%j$,$"$C$F!"$9$Y$F$N%U%!%$%k$r(B ".gif" $B$G(B +$B=*$o$i$;$?$/$O$J$$$H$-$K!"0J2<$N$b$N$r;HMQ$7$^$9(B:</p> + +<pre> + ForceType image/gif +</pre> + +<p>$B$3$l$O!"%a%G%#%"%?%$%W$r7hDj$9$k$+$b$7$l$J$$$9$Y$F$N3HD%;R$r(B +$B>e=q$-$9$k$3$H$KCm0U$7$F$/$@$5$$!#(B +</p><hr> + +<h2><a name="removeencoding">RemoveEncoding</a> $B%G%#%l%/%F%#%V(B</h2> + +<a + href="directive-dict.html#Syntax" + rel="Help" +><strong>$B9=J8(B:</strong></a> RemoveEncoding <em>extension</em> + [<em>extension</em>] ...<br> +<a + href="directive-dict.html#Context" + rel="Help" +><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%G%#%l%/%H%j!"(B.htaccess<br> +<a + href="directive-dict.html#Status" + rel="Help" +><strong>$B%9%F!<%?%9(B:</strong></a> Base<br> +<a + href="directive-dict.html#Module" + rel="Help" +><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br> +<a + href="directive-dict.html#Compatibility" + rel="Help" +><strong>$B8_49@-(B:</strong></a> RemoveEncoding $B$O(B Apache 1.3.13 $B0J9_$G$N$_(B +$B;HMQ2DG=!#(B + +<p> +<samp>RemoveEncoding</samp> $B%G%#%l%/%F%#%V$O!"M?$($i$l$?3HD%;R$K(B +$B4XO"IU$1$i$l$?%(%s%3!<%G%#%s%0$r<h$j>C$7$^$9!#$3$l$K$h$j!"(B +$B%5%V%G%#%l%/%H%j$K$"$k(B <code>.htaccess</code> $B%U%!%$%k$,?F%G%#%l%/%H%j$d(B +$B%5!<%P$N@_Dj%U%!%$%k$+$i7Q>5$7$?4XO"IU$1$r<h$j>C$9$3$H$,$G$-$^$9!#(B +$BNc$($P(B: +</p> +<dl> + <dt><code>/foo/.htaccess:</code></dt> + <dd><code>AddEncoding x-gzip .gz</code> + <br> + <code>AddType text/plain .asc</code> + <br> + <code><Files *.gz.asc></code> + <br> + <code> RemoveEncoding .gz</code> + <br> + <code></Files></code></dd> +</dl> +<p> +$B$3$l$O!"(B<code>foo.gz</code> $B$O(B gzip $B$G%(%s%3!<%I$5$l$F$$$k$3$H$r(B +$B;XDj$7$^$9$,!"(B<code>foo.gz.asc</code> $B$O%(%s%3!<%I$5$l$F$$$J$$(B +$B%W%l!<%s%F%-%9%H$N%U%!%$%k$G$"$k$H$$$&$3$H$r;XDj$7$^$9!#(B +</p> +<p> +<strong>$BCm0U(B:</strong> RemoveEncoding $B$O(B AddEncoding $B%G%#%l%/%F%#%V$N(B<em>$B8e(B</em>$B$G(B +$B=hM}$5$l$^$9$N$G!"F1$8%G%#%l%/%H%j$N@_DjCf$KN>J}$,8=$l$k$H!"(B +$B8e<T$N8z2L$,BG$A>C$5$l$k2DG=@-$,$"$j$^$9!#(B +</p> +<p> +$B0z?t(B <em>extension</em> $B$OBgJ8;z>.J8;z$r6hJL$;$:!":G=i$N%I%C%H$O$"$C$F$b(B +$B$J$/$F$b9=$$$^$;$s!#(B +</p> + +<hr> + +<h2><a name="removehandler">RemoveHandler</a> $B%G%#%l%/%F%#%V(B</h2> + +<a + href="directive-dict.html#Syntax" + rel="Help" +><STrong>$B9=J8(B:</strong></a> RemoveHandler <em>extension</em> + [<em>extension</em>] ...<br> +<a + href="directive-dict.html#Context" + rel="Help" +><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%G%#%l%/%H%j!"(B.htaccess<br> +<a + href="directive-dict.html#Status" + rel="Help" +><strong>$B%9%F!<%?%9(B:</strong></a> Base<br> +<a + href="directive-dict.html#Module" + rel="Help" +><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br> +<a + href="directive-dict.html#Compatibility" + rel="Help" +><strong>$B8_49@-(B:</strong></a> RemoveHandler $B$O(B Apache 1.3.4 $B0J9_$G$N$_(B +$B;HMQ2DG=!#(B + +<p> +<samp>RemoveHandler</samp> $B%G%#%l%/%F%#%V$OM?$($i$l$?3HD%;R$K(B +$B4XO"IU$1$i$l$?%O%s%I%i$r<h$j>C$7$^$9!#$3$l$K$h$j!"(B +$B%5%V%G%#%l%/%H%j$K$"$k(B <code>.htaccess</code> $B%U%!%$%k$,?F%G%#%l%/%H%j$d(B +$B%5!<%P$N@_Dj%U%!%$%k$+$i7Q>5$7$?4XO"IU$1$r<h$j>C$9$3$H$,$G$-$^$9!#(B +$BNc$($P(B: +</p> + +<dl> + <dt><code>/foo/.htaccess:</code></dt> + <dd><code>addhandler server-parsed .html</code></dd> + <dt><code>/foo/bar/.htaccess:</code></dt> + <dd><code>removehandler .html</code></dd> +</dl> +<p> +$B$3$l$O!"(B<samp>/foo/bar</samp> $B%G%#%l%/%H%j$N(B <samp>.html</samp> $B%U%!%$%k$O(B +SSI $B$G$O$J$/(B (<a href="mod_include.html"><samp>mod_include</samp></a> +$B%b%8%e!<%k;2>H(B)$B!"IaDL$N%U%!%$%k$H$7$F07$o$l$k$h$&$K$9$k8z2L$,$"$j$^$9!#(B +</p> +<p> +$B0z?t(B <em>extension</em> $B$OBgJ8;z>.J8;z$r6hJL$;$:!":G=i$N%I%C%H$O$"$C$F$b(B +$B$J$/$F$b9=$$$^$;$s!#(B +</p> + +<hr> + +<h2><a name="removetype">RemoveType</a> $B%G%#%l%/%F%#%V(B</h2> + +<a + href="directive-dict.html#Syntax" + rel="Help" +><strong>$B9=J8(B:</strong></a> RemoveType <em>extension</em> + [<em>extension</em>] ...<br> +<a + href="directive-dict.html#Context" + rel="Help" +><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%G%#%l%/%H%j!"(B.htaccess<br> +<a + href="directive-dict.html#Status" + rel="Help" +><strong>$B%9%F!<%?%9(B:</strong></a> Base<br> +<a + href="directive-dict.html#Module" + rel="Help" +><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br> +<a + href="directive-dict.html#Compatibility" + rel="Help" +><strong>$B8_49@-(B:</strong></a> RemoveType $B$O(B Apache 1.3.13 $B0J9_$G$N$_(B +$B;HMQ2DG=!#(B + +<p> +<samp>RemoveType</samp> $B%G%#%l%/%F%#%V$OM?$($i$l$?3HD%;R$N(B +MIME $B%?%$%W$N4XO"IU$1$r<h$j>C$7$^$9!#$3$l$K$h$j!"(B +$B%5%V%G%#%l%/%H%j$K$"$k(B <code>.htaccess</code> $B%U%!%$%k$,?F%G%#%l%/%H%j$d(B +$B%5!<%P$N@_Dj%U%!%$%k$+$i7Q>5$7$?4XO"IU$1$r<h$j>C$9$3$H$,$G$-$^$9!#(B +$BNc$($P(B: +</p> +<dl> + <dt><code>/foo/.htaccess:</code></dt> + <dd><code>RemoveType .cgi</code></dd> +</dl> +<p> +$B$3$l$O(B <code>/foo/</code> $B%G%#%l%/%H%j0J2<$N(B <code>.cgi</code> $B%U%!%$%k$N(B +$BFCJL$J07$$$r<h$j>C$7$^$9!#%U%!%$%k$O(B<a +href="core.html#defaulttype">$B%G%U%)%k%H%?%$%W(B</a>$B$H$7$F07$o$l$^$9!#(B</p> +<p> +<strong>$BCm0U(B:</strong> <code>RemoveType</code> $B%G%#%l%/%F%#%V$O(B +<code>AddType</code> $B%G%#%l%/%F%#%V$N(B<em>$B8e(B</em>$B$K=hM}$5$l$^$9$N$G!"(B +$BN>J}$,F1$8%G%#%l%/%H%j$N@_DjCf$K8=$l$?>l9g!"8e<T$N8z2L$,BG$A>C$5$l$k(B +$B2DG=@-$,$"$j$^$9!#(B +</p> +<p> +$B0z?t(B <em>extension</em> $B$OBgJ8;z>.J8;z$r6hJL$;$:!":G=i$N%I%C%H$O$"$C$F$b(B +$B$J$/$F$b9=$$$^$;$s!#(B +</p> + +<hr> + +<h2><a name="sethandler">SetHandler</a> $B%G%#%l%/%F%#%V(B</h2> + +<a + href="directive-dict.html#Syntax" + rel="Help" +><strong>$B9=J8(B:</strong></a> SetHandler <em>handler-name</em><br> +<a + href="directive-dict.html#Context" + rel="Help" +><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%G%#%l%/%H%j!"(B.htaccess<br> +<a + href="directive-dict.html#Status" + rel="Help" +><strong>$B%9%F!<%?%9(B:</strong></a> Base<br> +<a + href="directive-dict.html#Module" + rel="Help" +><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br> +<a + href="directive-dict.html#Compatibility" + rel="Help" +><strong>$B8_49@-(B:</strong></a> SetHandler $B$O(B Apache 1.1 $B0J9_$G$N$_;HMQ2DG=!#(B + +<p> +<code>.htaccess</code> $B$d(B <code><Directory></code> $B%;%/%7%g%s!"(B +<code><Location></code> $B%;%/%7%g%s$K=q$+$l$?>l9g!"$3$N(B +$B%G%#%l%/%F%#%V$O$=$3$K$"$k$9$Y$F$N%U%!%$%k$,(B <em>handler-name</em> $B$G(B +$B;XDj$5$l$?(B<a href="../handler.html">$B%O%s%I%i(B</a>$B$G07$o$l$k$3$H$r(B +$B6/@)$7$^$9!#Nc$($P!"3HD%;R$K4X$o$i$:!"%G%#%l%/%H%jA4BN$,(B +$B%$%a!<%8%^%C%W%U%!%$%k$H$7$F2r@O$7$FM_$7$$>l9g$K$O!"0J2<$r(B +$B$=$N%G%#%l%/%H%j$N(B <code>.htaccess</code> $B%U%!%$%k$K5-=R$7$^$9(B:</p> + +<pre> + SetHandler imap-file +</pre> + +<p>$BJL$NNc(B: URL <code>http://servername/status</code> $B$,;XDj$5$l$?$H$-$K(B +$B%5!<%P$,>uBVJs9p$r$9$k$h$&$K$7$?$$$H$-$O!"0J2<$r(B httpd.conf $B$K(B +$B5-=R$7$^$9(B: +</p> + +<pre> + <Location /status> + SetHandler server-status + </Location> +</pre> +<hr> + +<h2><a name="typesconfig">TypesConfig</a> $B%G%#%l%/%F%#%V(B</h2> +<!--%plaintext <?INDEX {\tt TypesConfig} directive> --> +<a + href="directive-dict.html#Syntax" + rel="Help" +><strong>$B9=J8(B:</strong></a> TypesConfig <em>filename</em><br> +<a + href="directive-dict.html#Default" + rel="Help" +><strong>$B%G%U%)%k%H(B:</strong></a> <code>TypesConfig conf/mime.types</code><br> +<a + href="directive-dict.html#Context" + rel="Help" +><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k(B<br> +<a + href="directive-dict.html#Status" + rel="Help" +><strong>$B%9%F!<%?%9(B:</strong></a> Base<br> +<a + href="directive-dict.html#Module" + rel="Help" +><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime + +<p> +TypesConfig $B%G%#%l%/%F%#%V$O!"(BMIME $B%?%$%W@_Dj%U%!%$%k$N0LCV$r@_Dj$7$^$9!#(B +<em>filename</em> $B$O(B <a href="core.html#serverroot">ServerRoot</a> $B$+$i$N(B +$BAjBP%Q%9$G$9!#$3$N%U%!%$%k$O%U%!%$%k$N3HD%;R$+$i%3%s%F%s%H%?%$%W$X$N(B +$B%G%U%)%k%H$N%^%C%T%s%0$r@_Dj$7$^$9!#$3$N%U%!%$%k$rJQ99$9$k$3$H$O(B +$B?d>)$5$l$F$$$^$;$s!#Be$o$j$K(B <a href="#addtype">AddType</a> $B%G%#%l%/%F%#%V$r(B +$B;HMQ$7$F$/$@$5$$!#%U%!%$%k$O!"(BAddType $B%3%^%s%I$N0z?t$HF1$87A<0$N9T$G(B +$B9=@.$5$l$^$9!#(B</p> + +<blockquote><em>MIME-type extension extension ...</em></blockquote> + +<p> +$B3HD%;R$O>.J8;z$KJQ49$5$l$^$9!#6u9T$H%O%C%7%eJ8;z(B ('#') $B$G;O$^$k9T$O(B +$BL5;k$5$l$^$9!#(B</p> + + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + +</body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_setenvif.html.en b/usr.sbin/httpd/htdocs/manual/mod/mod_setenvif.html.en new file mode 100644 index 00000000000..661f625f60b --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/mod/mod_setenvif.html.en @@ -0,0 +1,337 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_setenvif</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + + + <h1 align="CENTER">Module mod_setenvif</h1> + + <p>This module provides the ability to set environment + variables based upon attributes of the request.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> + mod_setenvif.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + setenvif_module<br /> + <a href="module-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in + Apache 1.3 and later.</p> + + <h2>Summary</h2> + + <p>The <samp>mod_setenvif</samp> module allows you to set + environment variables according to whether different aspects of + the request match <a href="../misc/FAQ.html#regex">regular + expressions</a> you specify. These environment variables can be + used by other parts of the server to make decisions about + actions to be taken.</p> + + <p>The directives are considered in the order they appear in + the configuration files. So more complex sequences can be used, + such as this example, which sets <code>netscape</code> if the + browser is mozilla but not MSIE.</p> + + <blockquote> +<pre> + BrowserMatch ^Mozilla netscape + BrowserMatch MSIE !netscape + +</pre> + </blockquote> + + <p>For additional information, we provide a document on <a + href="../env.html">Environment Variables in Apache</a>.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#BrowserMatch">BrowserMatch</a></li> + + <li><a href="#BrowserMatchNoCase">BrowserMatchNoCase</a></li> + + <li><a href="#SetEnvIf">SetEnvIf</a></li> + + <li><a href="#SetEnvIfNoCase">SetEnvIfNoCase</a></li> + </ul> + <hr /> + <!-- the HR is part of the directive description --> + + <h2><a id="BrowserMatch" name="BrowserMatch">BrowserMatch + directive</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> BrowserMatch <em>regex + env-variable</em>[=<em>value</em>] + [<em>env-variable</em>[=<em>value</em>]] ...<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <i>none</i><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_setenvif<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Apache 1.2 and + above (in Apache 1.2 this directive was found in the + now-obsolete mod_browser module); use in .htaccess files only + supported with 1.3.13 and later</p> + + <p>The BrowserMatch directive defines environment variables + based on the <samp>User-Agent</samp> HTTP request header field. + The first argument should be a POSIX.2 extended regular + expression (similar to an <samp>egrep</samp>-style regex). The + rest of the arguments give the names of variables to set, and + optionally values to which they should be set. These take the + form of</p> + + <ol> + <li><samp><em>varname</em></samp>, or</li> + + <li><samp>!<em>varname</em></samp>, or</li> + + <li><samp><em>varname</em>=<em>value</em></samp></li> + </ol> + + <p>In the first form, the value will be set to "1". The second + will remove the given variable if already defined, and the + third will set the variable to the value given by + <samp><em>value</em></samp>. If a <samp>User-Agent</samp> + string matches more than one entry, they will be merged. + Entries are processed in the order in which they appear, and + later entries can override earlier ones.</p> + + <p>For example:</p> +<pre> + BrowserMatch ^Mozilla forms jpeg=yes browser=netscape + BrowserMatch "^Mozilla/[2-3]" tables agif frames javascript + BrowserMatch MSIE !javascript + +</pre> + + <p>Note that the regular expression string is + <strong>case-sensitive</strong>. For case-INsensitive matching, + see the <a + href="#BrowserMatchNoCase"><samp>BrowserMatchNoCase</samp></a> + directive.</p> + + <p>The <samp>BrowserMatch</samp> and + <samp>BrowserMatchNoCase</samp> directives are special cases of + the <a href="#SetEnvIf"><samp>SetEnvIf</samp></a> and <a + href="#SetEnvIfNoCase"><samp>SetEnvIfNoCase</samp></a> + directives. The following two lines have the same effect:</p> +<pre> + BrowserMatchNoCase Robot is_a_robot + SetEnvIfNoCase User-Agent Robot is_a_robot + +</pre> + <hr /> + <!-- the HR is part of the directive description --> + + <h2><a id="BrowserMatchNoCase" + name="BrowserMatchNoCase">BrowserMatchNoCase directive</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> BrowserMatchNoCase + <em>regex env-variable</em>[=<em>value</em>] + [<em>env-variable</em>[=<em>value</em>]] ...<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>none</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_setenvif<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Apache 1.2 and + above (in Apache 1.2 this directive was found in the + now-obsolete mod_browser module)</p> + + <p>The <samp>BrowserMatchNoCase</samp> directive is + semantically identical to the <a + href="#BrowserMatch"><samp>BrowserMatch</samp></a> directive. + However, it provides for case-insensitive matching. For + example:</p> +<pre> + BrowserMatchNoCase mac platform=macintosh + BrowserMatchNoCase win platform=windows + +</pre> + + <p>The <samp>BrowserMatch</samp> and + <samp>BrowserMatchNoCase</samp> directives are special cases of + the <a href="#SetEnvIf"><samp>SetEnvIf</samp></a> and <a + href="#SetEnvIfNoCase"><samp>SetEnvIfNoCase</samp></a> + directives. The following two lines have the same effect:</p> +<pre> + BrowserMatchNoCase Robot is_a_robot + SetEnvIfNoCase User-Agent Robot is_a_robot + +</pre> + <hr /> + <!-- the HR is part of the directive description --> + + <h2><a id="SetEnvIf" name="SetEnvIf">SetEnvIf + directive</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> SetEnvIf <em>attribute + regex env-variable</em>[=<em>value</em>] + [<em>env-variable</em>[=<em>value</em>]] ...<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>none</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_setenvif<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Apache 1.3 and + above; the Request_Protocol keyword and environment-variable + matching are only available with 1.3.7 and later; use in + .htaccess files only supported with 1.3.13 and later</p> + + <p>The <samp>SetEnvIf</samp> directive defines environment + variables based on attributes of the request. These attributes + can be the values of various HTTP request header fields (see <a + href="http://www.rfc-editor.org/rfc/rfc2616.txt">RFC2616</a> + for more information about these), or of other aspects of the + request, including the following:</p> + + <ul> + <li><samp>Remote_Host</samp> - the hostname (if available) of + the client making the request</li> + + <li><samp>Remote_Addr</samp> - the IP address of the client + making the request</li> + + <li><samp>Remote_User</samp> - the authenticated username (if + available)</li> + + <li><samp>Request_Method</samp> - the name of the method + being used (<samp>GET</samp>, <samp>POST</samp>, <em>et + cetera</em>)</li> + + <li><samp>Request_Protocol</samp> - the name and version of + the protocol with which the request was made (<em>e.g.</em>, + "HTTP/0.9", "HTTP/1.1", <em>etc.</em>)</li> + + <li><samp>Request_URI</samp> - the portion of the URL + following the scheme and host portion</li> + </ul> + + <p>Some of the more commonly used request header field names + include <samp>Host</samp>, <samp>User-Agent</samp>, and + <samp>Referer</samp>.</p> + + <p>If the <em>attribute</em> name doesn't match any of the + special keywords, nor any of the request's header field names, + it is tested as the name of an environment variable in the list + of those associated with the request. This allows + <code>SetEnvIf</code> directives to test against the result of + prior matches.</p> + + <blockquote> + <strong>Only those environment variables defined by earlier + <code>SetEnvIf[NoCase]</code> directives are available for + testing in this manner. 'Earlier' means that they were + defined at a broader scope (such as server-wide) or + previously in the current directive's scope.</strong> + </blockquote> + + <p>Example:</p> +<pre> + SetEnvIf Request_URI "\.gif$" object_is_image=gif + SetEnvIf Request_URI "\.jpg$" object_is_image=jpg + SetEnvIf Request_URI "\.xbm$" object_is_image=xbm + : + SetEnvIf Referer www\.mydomain\.com intra_site_referral + : + SetEnvIf object_is_image xbm XBIT_PROCESSING=1 + +</pre> + + <p>The first three will set the environment variable + <samp>object_is_image</samp> if the request was for an image + file, and the fourth sets <samp>intra_site_referral</samp> if + the referring page was somewhere on the + <samp>www.mydomain.com</samp> Web site.</p> + <hr /> + <!-- the HR is part of the directive description --> + + <h2><a id="SetEnvIfNoCase" name="SetEnvIfNoCase">SetEnvIfNoCase + directive</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> SetEnvIfNoCase + <em>attribute regex env-variable</em>[=<em>value</em>] + [<em>env-variable</em>[=<em>value</em>]] ...<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>none</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_setenvif<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Apache 1.3 and + above; the Request_Protocol keyword and environment-variable + matching are only available with 1.3.7 and later; use in + .htaccess files only supported with 1.3.13 and later</p> + + <p>The <samp>SetEnvIfNoCase</samp> is semantically identical to + the <a href="#SetEnvIf"><samp>SetEnvIf</samp></a> directive, + and differs only in that the regular expression matching is + performed in a case-insensitive manner. For example:</p> +<pre> + SetEnvIfNoCase Host Apache\.Org site=apache + +</pre> + + <p>This will cause the <samp>site</samp> environment variable + to be set to "<samp>apache</samp>" if the HTTP request header + field <samp>Host:</samp> was included and contained + <samp>Apache.Org</samp>, <samp>apache.org</samp>, or any other + combination.</p> + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_setenvif.html.html b/usr.sbin/httpd/htdocs/manual/mod/mod_setenvif.html.html new file mode 100644 index 00000000000..a75a51cbe85 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/mod/mod_setenvif.html.html @@ -0,0 +1,341 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_setenvif</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + + + <h1 align="CENTER">Module mod_setenvif</h1> + + <p>This module provides the ability to set environment + variables based upon attributes of the request.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> + mod_setenvif.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + setenvif_module<br /> + <a href="module-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in + Apache 1.3 and later.</p> + + <h2>Summary</h2> + + <p>The <samp>mod_setenvif</samp> module allows you to set + environment variables according to whether different aspects of + the request match <a href="../misc/FAQ.html#regex">regular + expressions</a> you specify. These environment variables can be + used by other parts of the server to make decisions about + actions to be taken.</p> + + <p>The directives are considered in the order they appear in + the configuration files. So more complex sequences can be used, + such as this example, which sets <code>netscape</code> if the + browser is mozilla but not MSIE.</p> + + <blockquote> +<pre> + BrowserMatch ^Mozilla netscape + BrowserMatch MSIE !netscape + +</pre> + </blockquote> + + <p>For additional information, we provide a document on <a + href="../env.html">Environment Variables in Apache</a>.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#BrowserMatch">BrowserMatch</a></li> + + <li><a href="#BrowserMatchNoCase">BrowserMatchNoCase</a></li> + + <li><a href="#SetEnvIf">SetEnvIf</a></li> + + <li><a href="#SetEnvIfNoCase">SetEnvIfNoCase</a></li> + </ul> + <hr /> + <!-- the HR is part of the directive description --> + + <h2><a id="BrowserMatch" name="BrowserMatch">BrowserMatch + directive</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> BrowserMatch <em>regex + env-variable</em>[=<em>value</em>] + [<em>env-variable</em>[=<em>value</em>]] ...<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <i>none</i><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_setenvif<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Apache 1.2 and + above (in Apache 1.2 this directive was found in the + now-obsolete mod_browser module); use in .htaccess files only + supported with 1.3.13 and later</p> + + <p>The BrowserMatch directive defines environment variables + based on the <samp>User-Agent</samp> HTTP request header field. + The first argument should be a POSIX.2 extended regular + expression (similar to an <samp>egrep</samp>-style regex). The + rest of the arguments give the names of variables to set, and + optionally values to which they should be set. These take the + form of</p> + + <ol> + <li><samp><em>varname</em></samp>, or</li> + + <li><samp>!<em>varname</em></samp>, or</li> + + <li><samp><em>varname</em>=<em>value</em></samp></li> + </ol> + + <p>In the first form, the value will be set to "1". The second + will remove the given variable if already defined, and the + third will set the variable to the value given by + <samp><em>value</em></samp>. If a <samp>User-Agent</samp> + string matches more than one entry, they will be merged. + Entries are processed in the order in which they appear, and + later entries can override earlier ones.</p> + + <p>For example:</p> +<pre> + BrowserMatch ^Mozilla forms jpeg=yes browser=netscape + BrowserMatch "^Mozilla/[2-3]" tables agif frames javascript + BrowserMatch MSIE !javascript + +</pre> + + <p>Note that the regular expression string is + <strong>case-sensitive</strong>. For case-INsensitive matching, + see the <a + href="#BrowserMatchNoCase"><samp>BrowserMatchNoCase</samp></a> + directive.</p> + + <p>The <samp>BrowserMatch</samp> and + <samp>BrowserMatchNoCase</samp> directives are special cases of + the <a href="#SetEnvIf"><samp>SetEnvIf</samp></a> and <a + href="#SetEnvIfNoCase"><samp>SetEnvIfNoCase</samp></a> + directives. The following two lines have the same effect:</p> +<pre> + BrowserMatchNoCase Robot is_a_robot + SetEnvIfNoCase User-Agent Robot is_a_robot + +</pre> + <hr /> + <!-- the HR is part of the directive description --> + + <h2><a id="BrowserMatchNoCase" + name="BrowserMatchNoCase">BrowserMatchNoCase directive</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> BrowserMatchNoCase + <em>regex env-variable</em>[=<em>value</em>] + [<em>env-variable</em>[=<em>value</em>]] ...<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>none</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_setenvif<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Apache 1.2 and + above (in Apache 1.2 this directive was found in the + now-obsolete mod_browser module)</p> + + <p>The <samp>BrowserMatchNoCase</samp> directive is + semantically identical to the <a + href="#BrowserMatch"><samp>BrowserMatch</samp></a> directive. + However, it provides for case-insensitive matching. For + example:</p> +<pre> + BrowserMatchNoCase mac platform=macintosh + BrowserMatchNoCase win platform=windows + +</pre> + + <p>The <samp>BrowserMatch</samp> and + <samp>BrowserMatchNoCase</samp> directives are special cases of + the <a href="#SetEnvIf"><samp>SetEnvIf</samp></a> and <a + href="#SetEnvIfNoCase"><samp>SetEnvIfNoCase</samp></a> + directives. The following two lines have the same effect:</p> +<pre> + BrowserMatchNoCase Robot is_a_robot + SetEnvIfNoCase User-Agent Robot is_a_robot + +</pre> + <hr /> + <!-- the HR is part of the directive description --> + + <h2><a id="SetEnvIf" name="SetEnvIf">SetEnvIf + directive</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> SetEnvIf <em>attribute + regex env-variable</em>[=<em>value</em>] + [<em>env-variable</em>[=<em>value</em>]] ...<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>none</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_setenvif<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Apache 1.3 and + above; the Request_Protocol keyword and environment-variable + matching are only available with 1.3.7 and later; use in + .htaccess files only supported with 1.3.13 and later</p> + + <p>The <samp>SetEnvIf</samp> directive defines environment + variables based on attributes of the request. These attributes + can be the values of various HTTP request header fields (see <a + href="http://www.rfc-editor.org/rfc/rfc2616.txt">RFC2616</a> + for more information about these), or of other aspects of the + request, including the following:</p> + + <ul> + <li><samp>Remote_Host</samp> - the hostname (if available) of + the client making the request</li> + + <li><samp>Remote_Addr</samp> - the IP address of the client + making the request</li> + + <li><samp>Remote_User</samp> - the authenticated username (if + available)</li> + + <li><samp>Request_Method</samp> - the name of the method + being used (<samp>GET</samp>, <samp>POST</samp>, <em>et + cetera</em>)</li> + + <li><samp>Request_Protocol</samp> - the name and version of + the protocol with which the request was made (<em>e.g.</em>, + "HTTP/0.9", "HTTP/1.1", <em>etc.</em>)</li> + + <li><samp>Request_URI</samp> - the portion of the URL + following the scheme and host portion</li> + </ul> + + <p>Some of the more commonly used request header field names + include <samp>Host</samp>, <samp>User-Agent</samp>, and + <samp>Referer</samp>.</p> + + <p>If the <em>attribute</em> name doesn't match any of the + special keywords, nor any of the request's header field names, + it is tested as the name of an environment variable in the list + of those associated with the request. This allows + <code>SetEnvIf</code> directives to test against the result of + prior matches.</p> + + <blockquote> + <strong>Only those environment variables defined by earlier + <code>SetEnvIf[NoCase]</code> directives are available for + testing in this manner. 'Earlier' means that they were + defined at a broader scope (such as server-wide) or + previously in the current directive's scope.</strong> + </blockquote> + + <p>Example:</p> +<pre> + SetEnvIf Request_URI "\.gif$" object_is_image=gif + SetEnvIf Request_URI "\.jpg$" object_is_image=jpg + SetEnvIf Request_URI "\.xbm$" object_is_image=xbm + : + SetEnvIf Referer www\.mydomain\.com intra_site_referral + : + SetEnvIf object_is_image xbm XBIT_PROCESSING=1 + +</pre> + + <p>The first three will set the environment variable + <samp>object_is_image</samp> if the request was for an image + file, and the fourth sets <samp>intra_site_referral</samp> if + the referring page was somewhere on the + <samp>www.mydomain.com</samp> Web site.</p> + <hr /> + <!-- the HR is part of the directive description --> + + <h2><a id="SetEnvIfNoCase" name="SetEnvIfNoCase">SetEnvIfNoCase + directive</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> SetEnvIfNoCase + <em>attribute regex env-variable</em>[=<em>value</em>] + [<em>env-variable</em>[=<em>value</em>]] ...<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>none</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_setenvif<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Apache 1.3 and + above; the Request_Protocol keyword and environment-variable + matching are only available with 1.3.7 and later; use in + .htaccess files only supported with 1.3.13 and later</p> + + <p>The <samp>SetEnvIfNoCase</samp> is semantically identical to + the <a href="#SetEnvIf"><samp>SetEnvIf</samp></a> directive, + and differs only in that the regular expression matching is + performed in a case-insensitive manner. For example:</p> +<pre> + SetEnvIfNoCase Host Apache\.Org site=apache + +</pre> + + <p>This will cause the <samp>site</samp> environment variable + to be set to "<samp>apache</samp>" if the HTTP request header + field <samp>Host:</samp> was included and contained + <samp>Apache.Org</samp>, <samp>apache.org</samp>, or any other + combination.</p> + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + + </body> +</html> + + + diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_setenvif.html.ja.jis b/usr.sbin/httpd/htdocs/manual/mod/mod_setenvif.html.ja.jis new file mode 100644 index 00000000000..71cd67cbb60 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/mod/mod_setenvif.html.ja.jis @@ -0,0 +1,431 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <title>Apache module mod_setenvif</title> + </head> +<!-- English revision: 1.15 --> +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body + bgcolor="#FFFFFF" + text="#000000" + link="#0000FF" + vlink="#000080" + alink="#FF0000" + > + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + + <h1 align="CENTER">mod_setenvif $B%b%8%e!<%k(B</h1> + <p> + $B$3$N%b%8%e!<%k$O!"%j%/%(%9%H$NB0@-$K4p$E$$$F4D6-JQ?t$r@_Dj$9$k5!G=$r(B + $BDs6!$7$^$9!#(B + </p> + +<p><a +href="module-dict.html#Status" +rel="Help" +><strong>$B%9%F!<%?%9(B:</strong></a> Base +<br> +<a +href="module-dict.html#SourceFile" +rel="Help" +><strong>$B%=!<%9%U%!%$%k(B:</strong></a> mod_setenvif.c +<br> +<a +href="module-dict.html#ModuleIdentifier" +rel="Help" +><strong>$B%b%8%e!<%k<1JL;R(B:</strong></a> setenvif_module +<br> +<a +href="module-dict.html#Compatibility" +rel="Help" +><strong>$B8_49@-(B:</strong></a> Apache 1.3 $B0J9_$G;HMQ2DG=!#(B</p> + + <h2>$B35MW(B</h2> + <p> + <samp>mod_setenvif</samp> $B%b%8%e!<%k$O!"%j%/%(%9%H$N$"$kB&LL$,(B + $B;XDj$5$l$?(B<a href="../misc/FAQ.html#regex">$B@55,I=8=(B</a>$B$K9g$&$+(B + $B$I$&$+$K$h$C$F4D6-JQ?t$r@_Dj$9$k5!G=$rDs6!$7$^$9!#(B + $B$3$l$i$N4D6-JQ?t$r;HMQ$7$F!"%5!<%P$NB>$NItJ,$,$I$N$h$&$JF0:n$r$9$k$+$r7hDj$9$k(B + $B$3$H$,$G$-$^$9!#(B + </p> + <p>$B$3$N%b%8%e!<%k$,Ds6!$9$k%G%#%l%/%F%#%V$O!"@_Dj%U%!%$%k$K8=$l$k=gHV$KE,MQ$5$l$^$9!#(B + $B$=$l$r;H$C$F!"<!$NNc$N$h$&$K$h$jJ#;($J@_Dj$r$9$k$3$H$,$G$-$^$9!#$3$l$O!"(B + $B%V%i%&%6$,(B mozilla $B$G$O$"$k$1$l$I!"(BMSIE $B$G$O$J$$$H$-$K(B <code>netscape</code> $B$r(B + $B@_Dj$7$^$9!#(B + </p> + + <blockquote><pre> + BrowserMatch ^Mozilla netscape + BrowserMatch MSIE !netscape + </pre></blockquote> + + <p>$B>\:Y$O!"(B<a href="../env.html">Apache $B$N4D6-JQ?t(B</a>$B$r(B + $B;2>H$7$F$/$@$5$$!#(B</p> + + <h2>$B%G%#%l%/%F%#%V(B</h2> + <ul> + <li><a href="#BrowserMatch">BrowserMatch</a> + </li> + <li><a href="#BrowserMatchNoCase">BrowserMatchNoCase</a> + </li> + <li><a href="#SetEnvIf">SetEnvIf</a> + </li> + <li><a href="#SetEnvIfNoCase">SetEnvIfNoCase</a> + </li> + </ul> + + <hr> <!-- the HR is part of the directive description --> + <h2><a name="BrowserMatch">BrowserMatch $B%G%#%l%/%F%#%V(B</a></h2> + <p> + <a + href="directive-dict.html#Syntax" + rel="Help" + ><strong>$B9=J8(B:</strong></a> BrowserMatch <em>regex + envar</em>[=<em>value</em>] [<em>envar</em>[=<em>value</em>]] ... + <br> + <a + href="directive-dict.html#Default" + rel="Help" + ><strong>$B%G%U%)%k%H(B:</strong></a> None + <br> + <a + href="directive-dict.html#Context" + rel="Help" + ><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"(B + $B%G%#%l%/%H%j!"(B.htaccess + <br> + <a + href="directive-dict.html#Override" + rel="help" + ><strong>$B>e=q$-(B:</strong></a> FileInfo + <br> + <a + href="directive-dict.html#Status" + rel="Help" + ><strong>$B%9%F!<%?%9(B:</strong></a> Base + <br> + <a + href="directive-dict.html#Module" + rel="Help" + ><strong>$B%b%8%e!<%k(B:</strong></a> mod_setenvif + <br> + <a + href="directive-dict.html#Compatibility" + rel="Help" + ><strong>$B8_49@-(B:</strong></a> Apache 1.2 $B0J>e(B ($B$3$N%G%#%l%/%F%#%V$O(B + Apache 1.2 $B$G$O!":#$G$O(B obsolete $B$K$J$C$F$$$k(B mod_browser $B%b%8%e!<%k$K(B + $B$"$j$^$7$?(B)$B!#(B.htaccess $B%U%!%$%k$G$N;HMQ$O(B 1.3.13 $B0J9_$G$N$_%5%]!<%H!#(B + </p> + <p> + BrowserMatch $B%G%#%l%/%F%#%V$O!"(BHTTP $B%j%/%(%9%H$N(B <samp>User-Agent</samp> + $B%X%C%@%U%#!<%k%I$K4p$E$$$F4D6-JQ?t$r@_Dj$7$^$9!#:G=i$N0z?t$O(B POSIX.2 + $B3HD%@55,I=8=(B (<samp>egrep</samp> $B7A<0$N@55,I=8=$H;w$?$b$N(B) $B$G$9!#(B + $B;D$j$N0z?t$O!"@_Dj$r$9$kJQ?tL>$H$=$NCM$G!"8e<T$O>JN,2DG=$G$9!#(B + $B$3$l$i$O0J2<$N7A<0$K$J$j$^$9!#(B + </p> + <ol> + <li><samp><em>varname</em></samp> + </li> + <li><samp>!<em>varname</em></samp> + </li> + <li><samp><em>varname</em>=<em>value</em></samp> + </li> + </ol> + <p> + $B:G=i$N7A<0$G$O!"CM$O(B "1" $B$K@_Dj$5$l$^$9!#(B2 $BHVL\$OJQ?t$,(B + $B4{$KDj5A$5$l$F$$$?>l9g!"$=$l$r:o=|$7$^$9!#(B3 $BHVL\$OJQ?t$NCM$r(B + <samp><em>value</em></samp> $B$K@_Dj$7$^$9!#(B<samp>User-Agent</samp> + $B%U%#!<%k%I$NJ8;zNs$,J#?t$N%(%s%H%j$K%^%C%A$7$?>l9g$O!"$=$N7k2L$,(B + $B$^$H$a$i$l$^$9!#%(%s%H%j$O8=$l$?=g$K=hM}$5$l!"8e$N%(%s%H%j$,A0$N$b$N$r(B + $B>e=q$-$7$^$9!#(B + </p> + <p> + $BNc(B: + </p> + <pre> + BrowserMatch ^Mozilla forms jpeg=yes browser=netscape + BrowserMatch "^Mozilla/[2-3]" tables agif frames javascript + BrowserMatch MSIE !javascript + </pre> + <p> + $B@55,I=8=$NJ8;zNs$O(B<strong>$BBgJ8;z>.J8;z$r6hJL$9$k(B</strong>$B$3$H$K(B + $BCm0U$7$F$/$@$5$$!#BgJ8;z>.J8;z$r6hJL$7$J$$%^%C%A$O(B + <a + href="#BrowserMatchNoCase" + ><samp>BrowserMatchNoCase</samp></a> + $B%G%#%l%/%F%#%V$r;2>H$7$F$/$@$5$$!#(B + </p> + <P> + <samp>BrowserMatch</samp> $B%G%#%l%/%F%#%V$H(B <samp>BrowserMatchNoCase</samp> + $B%G%#%l%/%F%#%V$O(B + <a + href="#SetEnvIf" + ><samp>SetEnvIf</samp></a> + $B%G%#%l%/%F%#%V$H(B + <a + href="#SetEnvIfNoCase" + ><samp>SetEnvIfNoCase</samp></a> + $B%G%#%l%/%F%#%V$NFCJL$J%1!<%9$G$9!#0J2<$N(B 2 $B9T$OF1$88z2L$K$J$j$^$9(B: + </p> + <pre> + BrowserMatchNoCase Robot is_a_robot + SetEnvIfNoCase User-Agent Robot is_a_robot + </pre> + + <hr> <!-- the HR is part of the directive description --> + <h2> + <a name="BrowserMatchNoCase">BrowserMatchNoCase $B%G%#%l%/%F%#%V(B + </a> + </h2> + <p> + <a + href="directive-dict.html#Syntax" + rel="Help" + ><strong>$B9=J8(B:</strong></a> BrowserMatchNoCase <em>regex + envar</em>[=<em>value</em>] [<em>envar</em>[=<em>value</em>]] ... + <br> + <a + href="directive-dict.html#Default" + rel="Help" + ><strong>$B%G%U%)%k%H(B:</strong></a> <em>none</em> + <br> + <a + href="directive-dict.html#Context" + rel="Help" + ><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"(B + $B%G%#%l%/%H%j!"(B.htaccess + <br> + <a + href="directive-dict.html#Override" + rel="Help" + ><strong>$B>e=q$-(B:</strong></a> FileInfo + <br> + <a + href="directive-dict.html#Status" + rel="Help" + ><strong>$B%9%F!<%?%9(B:</strong></a> Base + <br> + <a + href="directive-dict.html#Module" + rel="Help" + ><strong>$B%b%8%e!<%k(B:</strong></a> mod_setenvif + <br> + <a + href="directive-dict.html#Compatibility" + rel="Help" + ><strong>$B8_49@-(B:</strong></a> Apache 1.2 $B0J>e(B ($B$3$N%G%#%l%/%F%#%V$O(B + Apache 1.2 $B$G$O!":#$G$O(B obsolete $B$K$J$C$F$$$k(B mod_browser $B%b%8%e!<%k$K(B + $B$"$j$^$7$?(B)$B!#(B.htaccess $B%U%!%$%k$G$N;HMQ$O(B 1.3.13 $B0J9_$G$N$_%5%]!<%H!#(B + </p> + <p> + <samp>BrowserMatchNoCase</samp> $B%G%#%l%/%F%#%V$O!"0UL#E*$K$O(B + <a + href="#BrowserMatch" + ><samp>BrowserMatch</samp></a> + $B%G%#%l%/%F%#%V$H$[$H$s$IF1$8$G$9!#0c$&E@$O!"BgJ8;z>.J8;z$r6hJL$7$J$$$G(B + $B%^%C%A$r9T$J$&$3$H$G$9!#Nc(B: + </p> + <pre> + BrowserMatchNoCase mac platform=macintosh + BrowserMatchNoCase win platform=windows + </pre> + <p> + <samp>BrowserMatch</samp> $B%G%#%l%/%F%#%V$H(B <samp>BrowserMatchNoCase</samp> + $B%G%#%l%/%F%#%V$O(B + <a + href="#SetEnvIf" + ><samp>SetEnvIf</samp></a> + $B%G%#%l%/%F%#%V$H(B + <a + href="#SetEnvIfNoCase" + ><samp>SetEnvIfNoCase</samp></a> + $B%G%#%l%/%F%#%V$NFCJL$J%1!<%9$G$9!#0J2<$N(B 2 $B9T$OF1$88z2L$K$J$j$^$9(B: + </p> + <pre> + BrowserMatchNoCase Robot is_a_robot + SetEnvIfNoCase User-Agent Robot is_a_robot + </pre> + + <hr> <!-- the HR is part of the directive description --> + <h2> + <a name="SetEnvIf">SetEnvIf $B%G%#%l%/%F%#%V(B + </a> + </h2> + <p> + <a + href="directive-dict.html#Syntax" + rel="Help" + ><strong>$B9=J8(B:</strong></a> SetEnvIf <em> attribute regex + envar</em>[=<em>value</em>] [<em>envar</em>[=<em>value</em>]] ... + <br> + <a + href="directive-dict.html#Default" + rel="Help" + ><strong>$B%G%U%)%k%H(B:</strong></a> <em>none</em> + <br> + <a + href="directive-dict.html#Context" + rel="Help" + ><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"(B + $B%G%#%l%/%H%j!"(B.htaccess + <br> + <a + href="directive-dict.html#Override" + rel="Help" + ><strong>$B>e=q$-(B:</strong></a> FileInfo + <br> + <a + href="directive-dict.html#Status" + rel="Help" + ><strong>$B%9%F!<%?%9(B:</strong></a> Base + <br> + <a + href="directive-dict.html#Module" + rel="Help" + ><strong>$B%b%8%e!<%k(B:</strong></a> mod_setenvif + <br> + <a + href="directive-dict.html#Compatibility" + rel="Help" + ><strong>$B8_49@-(B:</strong></a> Apache 1.3 $B0J>e!#(BRequest_Protocol $B%-!<%o!<%I$H(B + $B4D6-JQ?t$N%^%C%A$O(B 1.3.7 $B0J9_$G$N$_;HMQ2DG=!#(B.htaccess $B%U%!%$%k$G$N;HMQ$O(B + 1.3.13 $B0J9_$G$N$_%5%]!<%H!#(B + </p> + <p> + <samp>SetEnvIf</samp> $B%G%#%l%/%F%#%V$O!"%j%/%(%9%H$NB0@-$K4p$E$$$F(B + $B4D6-JQ?t$rDj5A$7$^$9!#$3$l$i$NB0@-$O!"(BHTTP $B%j%/%(%9%H$N$$$m$$$m$J%X%C%@(B + $B%U%#!<%k%I(B ($B>\$7$$>pJs$O(B <a + href="http://www.rfc-editor.org/rfc/rfc2616.txt">RFC 2616</a> $B$r;2>H(B + $B$7$F$/$@$5$$(B) $B$+!"0J2<$N$h$&$J!"%j%/%(%9%H$NB>$NB&LL$G$"$k$3$H$,$G$-$^$9!#(B + </p> + <ul> + <li><samp>Remote_Host</samp> - $B%j%/%(%9%H$r9T$J$C$F$$$k%/%i%$%"%s%H$N(B + $B%[%9%HL>(B ($B$b$7$"$l$P(B) + </li> + <li><samp>Remote_Addr</samp> - $B%j%/%(%9%H$r9T$J$C$F$$$k%/%i%$%"%s%H$N(B + IP $B%"%I%l%9(B + </li> + <li><samp>Remote_User</samp> - $BG'>Z$5$l$?%f!<%6L>(B ($B$b$7$"$l$P(B) + </li> + <li><samp>Request_Method</samp> - $B;HMQ$5$l$F$$$k%a%=%C%IL>(B + (<samp>GET</samp>, <samp>POST</samp> <em>$B$J$I(B</em>) + </li> + <li><samp>Request_Protocol</samp> - $B%j%/%(%9%H$,9T$J$o$l$?%W%m%H%3%k$N(B + $BL>A0$H%P!<%8%g%s(B (<em>$BNc$($P(B</em>$B!"(B"HTTP/0.9", "HTTP/1.1" + <em>$B$J$I!#(B</em>) + </li> + <li><samp>Request_URI</samp> - URL $B$N%9%-!<%`$H%[%9%H$N8e$NItJ,(B + </li> + </ul> + <p> + $B$h$/;H$o$l$k%j%/%(%9%H$N%X%C%@%U%#!<%k%I$K$O(B + <samp>Host</samp>, <samp>User-Agent</samp>, <samp>Referer</samp> + $B$,$"$j$^$9!#(B + </p> + <p> + $BB0@-L>(B <em>attribute</em> $B$,FCJL$J%-!<%o!<%I$d%j%/%(%9%H$N%X%C%@%U%#!<%k%IL>$K(B + $B%^%C%A$7$J$$$H$-$O!"%j%/%(%9%H$K4XO"IU$1$i$l$?%j%9%H$K$"$k4D6-JQ?t$N(B + $BL>A0$H$7$F;n$5$l$^$9!#$3$l$K$h$j!"(B<code>SetEnvIf</code> $B%G%#%l%/%F%#%V$,(B + $BA0$N%^%C%A$N7k2L$r;HMQ$9$k$3$H$,$G$-$k$h$&$K$J$j$^$9!#(B + </p> + <blockquote> + <strong>$BA0$N(B <code>SetEnvIf[NoCase]</code> $B$GDj5A$5$l$?4D6-JQ?t$N$_$r(B + $B$3$NJ}K!$GD4$Y$k$3$H$,$G$-$^$9!#!VA0!W$H$$$&$N$O(B ($B%5!<%PA4BN!"$N$h$&$J(B) + $B$h$j9-$$%9%3!<%W$GDj5A$5$l$?$+!"8=%G%#%l%/%F%#%V$N%9%3!<%W$NCf$NA0$NJ}$G(B + $BDj5A$5$l$?$H$$$&0UL#$G$9!#(B + </strong> + </blockquote> + <p> + $BNc(B: + </p> + <pre> + SetEnvIf Request_URI "\.gif$" object_is_image=gif + SetEnvIf Request_URI "\.jpg$" object_is_image=jpg + SetEnvIf Request_URI "\.xbm$" object_is_image=xbm + : + SetEnvIf Referer www\.mydomain\.com intra_site_referral + : + SetEnvIf object_is_image xbm XBIT_PROCESSING=1 + </pre> + <p> + $B@hF,$N;0$D$O%j%/%(%9%H$,2hA|%U%!%$%k$N$H$-$K!"4D6-JQ?t(B + <samp>object_is_image</samp> $B$r@_Dj$7$^$9!#(B4 $BHVL\$O;2>H85$N%Z!<%8$,(B + <samp>www.mydomain.com</samp> $B%&%'%V%5%$%H$N$I$3$+$K$"$k>l9g$K(B + <samp>intra_site_referral</samp> $B$r@_Dj$7$^$9!#(B + </p> + + <hr> <!-- the HR is part of the directive description --> + <h2> + <a name="SetEnvIfNoCase">SetEnvIfNoCase $B%G%#%l%/%F%#%V(B + </a> + </h2> + <p> + <a + href="directive-dict.html#Syntax" + rel="Help" + ><strong>$B9=J8(B:</strong></a> SetEnvIfNoCase <em> attribute regex + envar</em>[=<em>value</em>] [<em>envar</em>[=<em>value</em>]] ... + <br> + <a + href="directive-dict.html#Default" + rel="Help" + ><strong>$B%G%U%)%k%H(B:</strong></a> <em>none</em> + <br> + <a + href="directive-dict.html#Context" + rel="Help" + ><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"(B + $B%G%#%l%/%H%j!"(B.htaccess + <br> + <a + href="directive-dict.html#Override" + rel="Help" + ><strong>$B>e=q$-(B:</strong></a> FileInfo + <br> + <a + href="directive-dict.html#Status" + rel="Help" + ><strong>$B%9%F!<%?%9(B:</strong></a> Base + <br> + <a + href="directive-dict.html#Module" + rel="Help" + ><strong>$B%b%8%e!<%k(B:</strong></a> mod_setenvif + <br> + <a + href="directive-dict.html#Compatibility" + rel="Help" + ><strong>$B8_49@-(B:</strong></a> Apache 1.3 $B0J>e!#(BRequest_Protocol $B%-!<%o!<%I$H(B + $B4D6-JQ?t$N%^%C%A$O(B 1.3.7 $B0J9_$G$N$_;HMQ2DG=!#(B.htaccess $B%U%!%$%k$G$N;HMQ$O(B + 1.3.13 $B0J9_$G$N$_%5%]!<%H!#(B + </p> + <p> + <samp>SetEnvIfNoCase</samp> $B$O!"0UL#E*$K$O(B + <a + href="#SetEnvIf" + ><samp>SetEnvIf</samp></a> + $B$H$[$H$s$IF1$8$G$9!#0c$$$O@55,I=8=$N%^%C%A$,BgJ8;z>.J8;z$r6hJL$7$J$$$G(B + $B9T$J$o$l$k$3$H$G$9!#Nc$($P(B: + </p> + <pre> + SetEnvIfNoCase Host Apache\.Org site=apache + </pre> + <p> + $B$3$l$O!"(BHTTP $B%j%/%(%9%H$N(B <samp>Host:</samp> $B%X%C%@%U%#!<%k%I$,$"$j!"(B + $B$=$NCM$,(B <samp>Apache.org</samp>, <samp>apache.org</samp> $B$d$=$NB>$N(B + $BBgJ8;z>.J8;z$NAH$_9g$o$;$G$"$C$?$H$-$K!"4D6-JQ?t(B <samp>site</samp> $B$r(B + "<samp>apache</samp>" $B$K@_Dj$7$^$9!#(B + </p> + + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + + </body> +</html> diff --git a/usr.sbin/httpd/htdocs/manual/programs/index.html.en b/usr.sbin/httpd/htdocs/manual/programs/index.html.en new file mode 100644 index 00000000000..330876ed88e --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/programs/index.html.en @@ -0,0 +1,82 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache HTTP Server and Supporting Programs</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + + + <h1 align="center">Server and Supporting Programs</h1> + + <p>This page documents all the executable programs included + with the Apache HTTP Server.</p> + + <dl> + <dt><a href="httpd.html">httpd</a></dt> + + <dd>Apache hypertext transfer protocol server</dd> + + <dt><a href="apachectl.html">apachectl</a></dt> + + <dd>Apache HTTP server control interface</dd> + + <dt><a href="ab.html">ab</a></dt> + + <dd>Apache HTTP server benchmarking tool</dd> + + <dt><a href="apxs.html">apxs</a></dt> + + <dd>APache eXtenSion tool</dd> + + <dt><a href="dbmmanage.html">dbmmanage</a></dt> + + <dd>Create and update user authentication files in DBM format + for basic authentication</dd> + + <dt><a href="htdigest.html">htdigest</a></dt> + + <dd>Create and update user authentication files for digest + authentication</dd> + + <dt><a href="htpasswd.html">htpasswd</a></dt> + + <dd>Create and update user authentication files for basic + authentication</dd> + + <dt><a href="logresolve.html">logresolve</a></dt> + + <dd>Resolve hostnames for IP-addresses in Apache + logfiles</dd> + + <dt><a href="rotatelogs.html">rotatelogs</a></dt> + + <dd>Rotate Apache logs without having to kill the server</dd> + + <dt><a href="suexec.html">suexec</a></dt> + + <dd>Switch User For Exec</dd> + + <dt><a href="other.html">Other Programs</a></dt> + </dl> + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + + + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/programs/index.html.html b/usr.sbin/httpd/htdocs/manual/programs/index.html.html new file mode 100644 index 00000000000..83f1e5ec325 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/programs/index.html.html @@ -0,0 +1,75 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache HTTP Server and Supporting Programs</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Server and Supporting Programs</h1> + + <p>This page documents all the executable programs included + with the Apache HTTP Server.</p> + + <dl> + <dt><a href="httpd.html">httpd</a></dt> + + <dd>Apache hypertext transfer protocol server</dd> + + <dt><a href="apachectl.html">apachectl</a></dt> + + <dd>Apache HTTP server control interface</dd> + + <dt><a href="ab.html">ab</a></dt> + + <dd>Apache HTTP server benchmarking tool</dd> + + <dt><a href="apxs.html">apxs</a></dt> + + <dd>APache eXtenSion tool</dd> + + <dt><a href="dbmmanage.html">dbmmanage</a></dt> + + <dd>Create and update user authentication files in DBM format + for basic authentication</dd> + + <dt><a href="htdigest.html">htdigest</a></dt> + + <dd>Create and update user authentication files for digest + authentication</dd> + + <dt><a href="htpasswd.html">htpasswd</a></dt> + + <dd>Create and update user authentication files for basic + authentication</dd> + + <dt><a href="logresolve.html">logresolve</a></dt> + + <dd>Resolve hostnames for IP-addresses in Apache + logfiles</dd> + + <dt><a href="rotatelogs.html">rotatelogs</a></dt> + + <dd>Rotate Apache logs without having to kill the server</dd> + + <dt><a href="suexec.html">suexec</a></dt> + + <dd>Switch User For Exec</dd> + + <dt><a href="other.html">Other Programs</a></dt> + </dl> + <!--#include virtual="footer.html" --> + </body> +</html> + + + diff --git a/usr.sbin/httpd/htdocs/manual/programs/index.html.ja.jis b/usr.sbin/httpd/htdocs/manual/programs/index.html.ja.jis new file mode 100644 index 00000000000..2e90a058864 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/programs/index.html.ja.jis @@ -0,0 +1,74 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <title>Apache HTTP Server and Supporting Programs</title> + </head> +<!-- English revision: 1.2 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body + bgcolor="#ffffff" + text="#000000" + link="#0000ff" + vlink="#000080" + alink="#ff0000" + > + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + + + + <h1 align="center">$B%5!<%P$H%5%]!<%H%W%m%0%i%`(B</h1> + +<p>$B$3$N%Z!<%8$G$O!"(BApache HTTP $B%5!<%P$H$H$b$KDs6!$5$l$F$$$k<B9T%W%m%0%i%`$r(B +$BA4$F:\$;$F$$$^$9!#(B</p> + +<dl> + + <dt><a href="httpd.html">httpd</a></dt> + <dd>Apache HTTP $B%5!<%P(B</dd> + + <dt><a href="apachectl.html">apachectl</a></dt> + <dd>Apache HTTP $B%5!<%P%3%s%H%m!<%k%$%s%?!<%U%'!<%9(B</dd> + + <dt><a href="ab.html">ab</a></dt> + <dd>Apache HTTP $B%5!<%P%Y%s%A%^!<%/%D!<%k(B</dd> + + <dt><a href="apxs.html">apxs</a></dt> + <dd>APache $B3HD%%D!<%k(B</dd> + + <dt><a href="dbmmanage.html">dbmmanage</a></dt> + <dd>Basic $BG'>Z$K$*$$$FMxMQ$9$k(B DBM $B=q<0$G$N%f!<%6G'>ZMQ(B +$B%U%!%$%k$N:n@.$H99?7(B</dd> + + <dt><a href="htdigest.html">htdigest</a></dt> + <dd>Digest $BG'>Z$K$*$$$FMxMQ$9$k%f!<%6G'>ZMQ%U%!%$%k$N:n@.$H99?7(B</dd> + + <dt><a href="htpasswd.html">htpasswd</a></dt> + <dd>Basic $BG'>Z$K$*$$$FMxMQ$9$k%f!<%6G'>ZMQ%U%!%$%k$N:n@.$H99?7(B</dd> + + <dt><a href="logresolve.html">logresolve</a></dt> + <dd>Apache $B%m%0%U%!%$%kFb$K$*$1$k(B IP $B%"%I%l%9$N%[%9%HL>2r7h(B</dd> + + <dt><a href="rotatelogs.html">rotatelogs</a></dt> + <dd>$B%5!<%P$r%-%k$7$J$$$G(B Apache $B%m%0$r%m!<%F!<%H$9$k(B</dd> + + <dt><a href="suexec.html">suexec</a></dt> + <dd>Apache $B$,(B Exec $B$9$k:]$N%f!<%6@ZBX(B</dd> + + <dt><a href="other.html">$B$=$NB>$N%W%m%0%i%`(B</a></dt> + +</dl> + + + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + + + </body> +</html> diff --git a/usr.sbin/httpd/htdocs/manual/sitemap.html b/usr.sbin/httpd/htdocs/manual/sitemap.html new file mode 100644 index 00000000000..3551206dee0 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/sitemap.html @@ -0,0 +1,189 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <title>Site Map</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="CENTER">Site Map</h1> + +<ul> +<li><a href="index.html">Apache HTTP Server Version 1.3 Documentation</a> +<ul> + +<li>Release Notes +<ul> +<li><a href="upgrading_to_1_3.html">Upgrading to 1.3 from 1.2</a></li> +<li><a href="new_features_1_3.html">New features with Apache 1.3</a></li> +</ul></li> + +<li>Using the Apache HTTP Server +<ul> +<li><a href="install.html">Compiling and Installing Apache</a></li> +<li><a href="invoking.html">Starting Apache</a></li> +<li><a href="stopping.html">Stopping and Restarting Apache</a></li> +<li><a href="configuring.html">Configuration Files</a></li> +<li><a href="sections.html">How Directory, Location and Files sections work</a></li> +<li><a href="server-wide.html">Server-Wide Configuration</a></li> +<li><a href="logs.html">Log Files</a></li> +<li><a href="urlmapping.html">Mapping URLs to Filesystem Locations</a></li> +<li><a href="misc/security_tips.html">Security Tips</a></li> +<li><a href="dso.html">Dynamic Shared Object (DSO) support</a></li> +<li><a href="content-negotiation.html">Apache Content Negotiation</a></li> +<li><a href="custom-error.html">Custom error responses</a></li> +<li><a href="bind.html">Setting which addresses and ports Apache uses</a></li> +<li><a href="env.html">Environment Variables in Apache</a></li> +<li><a href="handler.html">Apache's Handler Use</a></li> +<li><a href="suexec.html">suEXEC Support</a></li> +<li><a href="misc/perf-tuning.html">Performance Hints</a></li> +<li><a href="misc/rewriteguide.html">URL Rewriting Guide</a></li> +</ul></li> + +<li><a href="vhosts/">Apache Virtual Host documentation</a> +<ul> +<li><a href="vhosts/name-based.html">Name-based Virtual Hosts</a></li> +<li><a href="vhosts/ip-based.html">IP-based Virtual Host Support</a></li> +<li><a href="vhosts/mass.html">Dynamically configured mass virtual hosting</a></li> +<li><a href="vhosts/examples.html">VirtualHost Examples</a></li> +<li><a href="vhosts/details.html">An In-Depth Discussion of Virtual Host Matching</a></li> +<li><a href="vhosts/fd-limits.html">File Descriptor Limits with Virtual Hosts</a></li> +<li><a href="dns-caveats.html">Issues Regarding DNS and Apache</a></li> +</ul></li> + +<li><a href="misc/FAQ.html">Apache Server Frequently Asked Questions</a></li> + +<li>Guides, Tutorials, and HowTos +<ul> +<li><a href="howto/auth.html">Authentication, Authorization, and Access Control</a></li> +<li><a href="howto/cgi.html">Apache Tutorial: Dynamic Content with CGI</a></li> +<li><a href="howto/ssi.html">Apache Tutorial: Introduction to Server +Side Includes</a></li> +<li><a href="misc/howto.html">HOWTO documentation</a></li> +<li><a href="misc/tutorials.html">Apache Tutorials</a></li> +</ul></li> + +<li>Platform-specific Notes +<ul> +<li><a href="windows.html">Using Apache with Microsoft Windows</a></li> +<li><a href="win_compiling.html">Compiling Apache for Microsoft Windows</a></li> +<li><a href="win_service.html">Running Apache for Windows as a Service</a></li> +<li><a href="cygwin.html">Using Apache with Cygwin</a></li> +<li><a href="ebcdic.html">The Apache EBCDIC Port</a></li> +<li><a href="readme-tpf.html">The Apache TPF Port</a></li> +<li><a href="install-tpf.html">Installing Apache on TPF</a></li> +<li><a href="mpeix.html">Using Apache with HP MPE/iX</a></li> +<li><a href="netware.html">Using Apache with Novell NetWare</a></li> +<li><a href="unixware.html">Compiling Apache under UnixWare</a></li> +<li><a href="misc/perf-bsd44.html">Running a High-Performance Web Server for BSD</a></li> +<li><a href="misc/perf-dec.html">Performance Tuning Tips for Digital Unix</a></li> +<li><a href="misc/perf-hp.html">Running a High-Performance Web Server on HPUX</a></li> +<li><a href="misc/perf.html">Hints on Running a High-Performance Web Server</a></li> +</ul></li> + +<li><a href="programs/">Apache HTTP Server and Supporting Programs</a> +<ul> +<li><a href="programs/httpd.html">Manual Page: httpd - Apache HTTP Server</a></li> +<li><a href="programs/apxs.html">Manual Page: apxs - Apache HTTP Server</a></li> +<li><a href="programs/ab.html">Manual Page: ab - Apache HTTP Server</a></li> +<li><a href="programs/apachectl.html">Manual Page: apachectl - Apache HTTP Server</a></li> +<li><a href="programs/dbmmanage.html">Manual Page: dbmmanage - Apache HTTP Server</a></li> +<li><a href="programs/htdigest.html">Manual Page: htdigest - Apache HTTP Server</a></li> +<li><a href="programs/htpasswd.html">Manual Page: htpasswd - Apache HTTP Server</a></li> +<li><a href="programs/logresolve.html">Manual Page: logresolve - Apache HTTP Server</a></li> +<li><a href="programs/rotatelogs.html">Manual Page: rotatelogs - Apache HTTP Server</a></li> +<li><a href="programs/suexec.html">Manual Page: suexec - Apache HTTP Server</a></li> +<li><a href="programs/other.html">Other Programs - Apache HTTP Server</a></li> +</ul></li> + +<li><a href="mod/">Apache modules</a> +<ul> +<li><a href="mod/index-bytype.html">Apache modules - By Type</a></li> +<li><a href="mod/directives.html">Apache directives</a></li> +<li><a href="mod/directive-dict.html">Definitions of terms used to describe Apache directives</a></li> +<li><a href="mod/module-dict.html">Definitions of terms used to describe Apache modules</a></li> +<li><a href="mod/core.html">Apache Core Features</a></li> +<li><a href="mod/mod_access.html">Apache module mod_access</a></li> +<li><a href="mod/mod_actions.html">Apache module mod_actions</a></li> +<li><a href="mod/mod_alias.html">Apache module mod_alias</a></li> +<li><a href="mod/mod_asis.html">Apache module mod_asis</a></li> +<li><a href="mod/mod_auth.html">Apache module mod_auth</a></li> +<li><a href="mod/mod_auth_anon.html">Apache module mod_auth_anon.c</a></li> +<li><a href="mod/mod_auth_db.html">Apache module mod_auth_db</a></li> +<li><a href="mod/mod_auth_dbm.html">Apache module mod_auth_dbm</a></li> +<li><a href="mod/mod_auth_digest.html">Apache module mod_auth_digest</a></li> +<li><a href="mod/mod_autoindex.html">Apache module mod_autoindex</a></li> +<li><a href="mod/mod_cern_meta.html">Apache module mod_cern_meta</a></li> +<li><a href="mod/mod_cgi.html">Apache module mod_cgi</a></li> +<li><a href="mod/mod_digest.html">Apache module mod_digest</a></li> +<li><a href="mod/mod_dir.html">Apache module mod_dir</a></li> +<li><a href="mod/mod_env.html">Apache module mod_env</a></li> +<li><a href="mod/mod_example.html">Apache module mod_example</a></li> +<li><a href="mod/mod_expires.html">Apache module mod_expires</a></li> +<li><a href="mod/mod_headers.html">Apache module mod_headers</a></li> +<li><a href="mod/mod_imap.html">Apache module mod_imap</a></li> +<li><a href="mod/mod_include.html">Apache module mod_include</a></li> +<li><a href="mod/mod_info.html">Apache module mod_info</a></li> +<li><a href="mod/mod_isapi.html">Apache module mod_isapi</a></li> +<li><a href="mod/mod_log_agent.html">Apache module mod_log_agent</a></li> +<li><a href="mod/mod_log_config.html">Apache module mod_log_config</a></li> +<li><a href="mod/mod_log_referer.html">Apache module mod_log_referer</a></li> +<li><a href="mod/mod_mime.html">Apache module mod_mime</a></li> +<li><a href="mod/mod_mime_magic.html">Apache module mod_mime_magic</a></li> +<li><a href="mod/mod_mmap_static.html">Apache module mod_mmap_static</a></li> +<li><a href="mod/mod_negotiation.html">Apache module mod_negotiation</a></li> +<li><a href="mod/mod_proxy.html">Apache module mod_proxy</a></li> +<li><a href="mod/mod_rewrite.html">Apache module mod_rewrite</a></li> +<li><a href="mod/mod_setenvif.html">Apache module mod_setenvif</a></li> +<li><a href="mod/mod_so.html">Apache module mod_so</a></li> +<li><a href="mod/mod_speling.html">Apache module mod_speling</a></li> +<li><a href="mod/mod_status.html">Apache module mod_status</a></li> +<li><a href="mod/mod_unique_id.html">Apache module mod_unique_id</a></li> +<li><a href="mod/mod_userdir.html">Apache module mod_userdir</a></li> +<li><a href="mod/mod_usertrack.html">Apache module mod_usertrack</a></li> +<li><a href="mod/mod_vhost_alias.html">Apache module mod_vhost_alias</a></li> +</ul></li> + +<li><a href="misc/API.html">Apache API notes</a></li> + +<li><a href="misc/">Older Documentation</a> +<ul> +<li><a href="cgi_path.html">PATH_INFO Changes in the CGI Environment</a></li> +<li><a href="keepalive.html">Apache Keep-Alive Support</a></li> +<li><a href="multilogs.html">Apache Multiple Log Files</a></li> +<li><a href="process-model.html">Server Pool Management</a></li> +<li><a href="sourcereorg.html">Source Re-organisation</a></li> +<li><a href="misc/compat_notes.html">Notes about Compatibility with NCSA's Server</a></li> +<li><a href="misc/custom_errordocs.html">International Customized Server Error Messages</a></li> +<li><a href="misc/descriptors.html">Descriptors and Apache</a></li> +<li><a href="misc/fin_wait_2.html">Connections in FIN_WAIT_2 and Apache</a></li> +<li><a href="misc/known_client_problems.html">Known Client Problems</a></li> +<li><a href="misc/nopgp.html">Why We Took PEM Out of Apache</a></li> +<li><a href="misc/vif-info.html">Configuring Multiple IP Addresses</a></li> +<li><a href="misc/windoz_keepalive.html">MS Windows Netscape 3.0b4 KeepAlive problem solved</a></li> +<li><a href="misc/client_block_api.html">Reading Client Input in Apache 1.2</a></li> +</ul></li> + +</ul></li> +</ul> + + <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + + </body> +</html> diff --git a/usr.sbin/httpd/htdocs/manual/stopping.html.en b/usr.sbin/httpd/htdocs/manual/stopping.html.en new file mode 100644 index 00000000000..9854a4b57b4 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/stopping.html.en @@ -0,0 +1,208 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Stopping and Restarting Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="CENTER">Stopping and Restarting Apache</h1> + + <p>This document covers stopping and restarting Apache on Unix + and Cygwin only. Windows users should see <a + href="windows.html#signal">Signalling Apache when + running</a>.</p> + + <p>You will notice many <code>httpd</code> executables running + on your system, but you should not send signals to any of them + except the parent, whose pid is in the <a + href="mod/core.html#pidfile">PidFile</a>. That is to say you + shouldn't ever need to send signals to any process except the + parent. There are three signals that you can send the parent: + <code>TERM</code>, <code>HUP</code>, and <code>USR1</code>, + which will be described in a moment.</p> + + <p>To send a signal to the parent you should issue a command + such as:</p> + + <blockquote> +<pre> + kill -TERM `cat /usr/local/apache/logs/httpd.pid` +</pre> + </blockquote> + You can read about its progress by issuing: + + <blockquote> +<pre> + tail -f /usr/local/apache/logs/error_log +</pre> + </blockquote> + Modify those examples to match your <a + href="mod/core.html#serverroot">ServerRoot</a> and <a + href="mod/core.html#pidfile">PidFile</a> settings. + + <p>As of Apache 1.3 we provide a script called <a + href="programs/apachectl.html">apachectl</a> which can be used + to start, stop, and restart Apache. It may need a little + customization for your system, see the comments at the top of + the script.</p> + + <h3>TERM Signal: stop now</h3> + + <p>Sending the <code>TERM</code> signal to the parent causes it + to immediately attempt to kill off all of its children. It may + take it several seconds to complete killing off its children. + Then the parent itself exits. Any requests in progress are + terminated, and no further requests are served.</p> + + <h3>HUP Signal: restart now</h3> + + <p>Sending the <code>HUP</code> signal to the parent causes it + to kill off its children like in <code>TERM</code> but the + parent doesn't exit. It re-reads its configuration files, and + re-opens any log files. Then it spawns a new set of children + and continues serving hits.</p> + + <p>Users of the <a href="mod/mod_status.html">status module</a> + will notice that the server statistics are set to zero when a + <code>HUP</code> is sent.</p> + + <p><strong>Note:</strong> If your configuration file has errors + in it when you issue a restart then your parent will not + restart, it will exit with an error. See below for a method of + avoiding this.</p> + + <h3>USR1 Signal: graceful restart</h3> + + <p><strong>Note:</strong> prior to release 1.2b9 this code is + quite unstable and shouldn't be used at all.</p> + + <p>The <code>USR1</code> signal causes the parent process to + <em>advise</em> the children to exit after their current + request (or to exit immediately if they're not serving + anything). The parent re-reads its configuration files and + re-opens its log files. As each child dies off the parent + replaces it with a child from the new <em>generation</em> of + the configuration, which begins serving new requests + immediately.</p> + + <p>This code is designed to always respect the <a + href="mod/core.html#maxclients">MaxClients</a>, <a + href="mod/core.html#minspareservers">MinSpareServers</a>, and + <a href="mod/core.html#maxspareservers">MaxSpareServers</a> + settings. Furthermore, it respects <a + href="mod/core.html#startservers">StartServers</a> in the + following manner: if after one second at least StartServers new + children have not been created, then create enough to pick up + the slack. This is to say that the code tries to maintain both + the number of children appropriate for the current load on the + server, and respect your wishes with the StartServers + parameter.</p> + + <p>Users of the <a href="mod/mod_status.html">status module</a> + will notice that the server statistics are <strong>not</strong> + set to zero when a <code>USR1</code> is sent. The code was + written to both minimize the time in which the server is unable + to serve new requests (they will be queued up by the operating + system, so they're not lost in any event) and to respect your + tuning parameters. In order to do this it has to keep the + <em>scoreboard</em> used to keep track of all children across + generations.</p> + + <p>The status module will also use a <code>G</code> to indicate + those children which are still serving requests started before + the graceful restart was given.</p> + + <p>At present there is no way for a log rotation script using + <code>USR1</code> to know for certain that all children writing + the pre-restart log have finished. We suggest that you use a + suitable delay after sending the <code>USR1</code> signal + before you do anything with the old log. For example if most of + your hits take less than 10 minutes to complete for users on + low bandwidth links then you could wait 15 minutes before doing + anything with the old log.</p> + + <p><strong>Note:</strong> If your configuration file has errors + in it when you issue a restart then your parent will not + restart, it will exit with an error. In the case of graceful + restarts it will also leave children running when it exits. + (These are the children which are "gracefully exiting" by + handling their last request.) This will cause problems if you + attempt to restart the server -- it will not be able to bind to + its listening ports. Before doing a restart, you can check the + syntax of the configuration files with the <code>-t</code> + command line argument (see <a + href="programs/httpd.html">httpd</a> ). This still will not + guarantee that the server will restart correctly. To check the + semantics of the configuration files as well as the syntax, you + can try starting httpd as a non-root user. If there are no + errors it will attempt to open its sockets and logs and fail + because it's not root (or because the currently running httpd + already has those ports bound). If it fails for any other + reason then it's probably a config file error and the error + should be fixed before issuing the graceful restart.</p> + + <h3>Appendix: signals and race conditions</h3> + + <p>Prior to Apache 1.2b9 there were several <em>race + conditions</em> involving the restart and die signals (a simple + description of race condition is: a time-sensitive problem, as + in if something happens at just the wrong time it won't behave + as expected). For those architectures that have the "right" + feature set we have eliminated as many as we can. But it should + be noted that there still do exist race conditions on certain + architectures.</p> + + <p>Architectures that use an on disk <a + href="mod/core.html#scoreboardfile">ScoreBoardFile</a> have the + potential to corrupt their scoreboards. This can result in the + "bind: Address already in use" (after <code>HUP</code>) or + "long lost child came home!" (after <code>USR1</code>). The + former is a fatal error, while the latter just causes the + server to lose a scoreboard slot. So it might be advisable to + use graceful restarts, with an occasional hard restart. These + problems are very difficult to work around, but fortunately + most architectures do not require a scoreboard file. See the <a + href="mod/core.html#scoreboardfile">ScoreBoardFile</a> + documentation for a architecture uses it.</p> + + <p><code>NEXT</code> and <code>MACHTEN</code> (68k only) have + small race conditions which can cause a restart/die signal to + be lost, but should not cause the server to do anything + otherwise problematic. + <!-- they don't have sigaction, or we're not using it -djg --> + </p> + + <p>All architectures have a small race condition in each child + involving the second and subsequent requests on a persistent + HTTP connection (KeepAlive). It may exit after reading the + request line but before reading any of the request headers. + There is a fix that was discovered too late to make 1.2. In + theory this isn't an issue because the KeepAlive client has to + expect these events because of network latencies and server + timeouts. In practice it doesn't seem to affect anything either + -- in a test case the server was restarted twenty times per + second and clients successfully browsed the site without + getting broken images or empty documents. + <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + </p> + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/stopping.html.fr b/usr.sbin/httpd/htdocs/manual/stopping.html.fr new file mode 100644 index 00000000000..bac6ac71f08 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/stopping.html.fr @@ -0,0 +1,261 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + <meta http-equiv="Content-Type" + content="text/html; charset=iso-8859-1" /><!-- Traduction anglais 1.18 --> + + <title>Arrêt et redémarrage d'Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="CENTER">Arrêt et redémarrage + d'Apache</h1> + + <p>Ce document décrit l'arrêt et le + redémarrage d'Apache sur Unix et Cygwin seulement. Les + utilisateurs de Windows sont invités à lire le + paragraphe <a href="windows.html#signal">signaler à + Apache en cours d'exécution</a>.</p> + + <p>Lorsque qu'Apache s'exécute, vous pouvez noter que + plusieurs processus <code>httpd</code> s'exécutent en + même temps sur votre machine, mais vous ne devez envoyer + de signaux qu'à celui dont l'identifiant de processus + est celui contenu dans le fichier <a + href="mod/core.html#pidfile">PidFile</a>. Autrement dit, vous + ne devez jamais envoyer de signaux aux processus + <code>httpd</code> autres que le processus père. Il + existe trois signaux que vous pouvez envoyer au processus + père : <code>TERM</code>, <code>HUP</code>, et + <code>USR1</code>, dont la signification est décrite ci + dessous.</p> + + <p>Pour envoyer un signal au père vous pouvez utiliser + une commande comme</p> + + <blockquote> +<pre> + kill -TERM `cat /usr/local/apache/logs/httpd.pid` +</pre> + </blockquote> + Vous pouvez lire l'effet de la commande + précédente en effectuant la commande + + <blockquote> +<pre> + tail -f /usr/local/apache/logs/error_log +</pre> + </blockquote> + Ces exemples devront être modifiés en fonction des + valeurs des directives <a + href="mod/core.html#serverroot">ServerRoot</a> et <a + href="mod/core.html#pidfile">PidFile</a>. + + <p>Avec Apache 1.3 est fourni un script <a + href="programs/apachectl.html">apachectl</a> qui peut + être employé pour démarrer, arrêter + et relancer Apache. Il peut nécessiter un peu + d'adaptation pour votre système, pour cela lisez les + commentaires situés au début de ce script.</p> + + <h3>Signal TERM : arrêt immédiat</h3> + + <p>L'envoi du signal <code>TERM</code> demande au processus + père d'essayer de tuer tous ses processus fils. Il peut + s'écouler quelques secondes avant que tous les processus + fils ne soient tués. Le processus père se termine + ensuite. Les requêtes en cours sont terminées et + plus aucune requête n'est traitée.</p> + + <h3>Signal HUP : redémarrage immédiat</h3> + + <p>L'envoi du signal <code>HUP</code> demande au processus + père de tuer tous ses processus fils, comme le signal + <code>TERM</code>, mais le processus père ne se termine + pas. Il relit ses fichiers de configuration, et rouvre les + fichiers de trace. Il lance ensuite un nouvel ensemble de + processus fils et continue de traiter les requêtes.</p> + + <p>Les utilisateurs du module <a + href="mod/mod_status.html">status</a> noteront que les + statistiques du serveur sont réinitialisées + à zéro après l'envoi du signal + <code>HUP</code>.</p> + + <p><strong>Note:</strong> si votre fichier de configuration + contient des erreurs lorsque vous demandez un + redémarrage, le processus père ne se relancera + pas mais se terminera avec une erreur. Voir plus bas pour une + méthode permettant d'éviter ce + problème.</p> + + <h3>Signal USR1 : redémarrage en douceur</h3> + + <p><strong>Note:</strong> pour les versions inférieures + à 1.2b9 cette fonction est instable et ne doit pas + être utilisée.</p> + + <p>Le signal <code>USR1</code> demande au processus père + de prier les processus de se terminer après avoir + traité leurs requêtes en cours (ou de se terminer + immédiatement s'ils n'ont pas de traitement en cours). + Le processus père relit les fichiers de configuration et + rouvre les fichiers de trace. Au fur et à mesure que les + fils meurent, ils sont remplacés par des processus fils + prenant en compte la nouvelle <em>génération</em> + de la configuration, et commencent aussitôt à + traiter les nouvelles requêtes.</p> + + <p>Cette fonction est conçue pour toujours respecter les + valeurs de <a href="mod/core.html#maxclients">MaxClients</a>, + <a href="mod/core.html#minspareservers">MinSpareServers</a>, et + <a href="mod/core.html#maxspareservers">MaxSpareServers</a>. De + plus, elle respecte la valeur de <a + href="mod/core.html#startservers">StartServers</a> de la + manière suivante : si après une seconde, au moins + StartServers nouveaux processus fils n'ont pas + été créés, alors elle en + crée suffisament pour combler le manque. Autrement dit, + la fonction essaie de maintenir à la fois le nombre de + processus fils approprié pour traiter la charge actuelle + du serveur, et respecter vos souhaits concernant le + paramètre StartServers.</p> + + <p>Les utilisateurs du module <a + href="mod/mod_status.html">status</a> noteront que les + statistiques du serveur <strong>ne sont pas</strong> + réinitialisées à zéro après + l'envoi du signal <code>USR1</code>. La fonction est + écrite afin de minimiser le temps durant lequel le + serveur est incapable de traiter de nouvelles requêtes + (elle sont mises en attente par le système + d'exploitation et donc ne sont pas perdues) tout en respectant + vos réglages. Pour cela, Apache doit maintenir la + <em>table de comunication interprocessus</em> pour les + différents processus fils et leur + génération.</p> + + <p>Le module <a href="mod/mod_status.html">status</a> utilise + également un <code>G</code> pour marquer les fils + traitant les requêtes démarrées avant le + redémarrage en douceur.</p> + + <p>Actuellement, il n'y a aucun moyen pour un script de + rotation des fichiers de trace qui utiliserait le signal + <code>USR1</code> de savoir de manière absolue que tous + les processus fils écrivant dans l'ancien fichier de + trace sont terminés. Nous suggérons d'utiliser un + délai d'attente raisonnable après l'envoi du + signal avant de faire quoi que ce soit avec l'ancien fichier de + trace. Si par exemple la majorité de vos accès + sont traités en moins de dix minutes pour des + utilisateurs utilisant des liaisons à bas débit, + alors vous devrez attendre quinze minutes avant de faire + quelque chose avec l'ancien fichier de trace.</p> + + <p><strong>Note:</strong> Si votre fichier de configuration + contient des erreurs au moment de réinitialiser le + processus père, ce dernier ne redémarrera pas et + se terminera avec une erreur. Dans le cas d'un + redémarrage en douceur, le processus père laisse + les fils continuer quand il se termine. Ce sont les processus + fils qui sont "terminés en douceur" en traitant leurs + requêtes en cours. Ceci peut poser des problèmes + si vous essayez de redémarrer le serveur -- il ne sera + pas capable de se connecter sur son port d'écoute. Afin + d'effectuer un redémarrage, vous pouvez vérifier + la syntaxe du fichier de configuration en utilisant le + paramètre <code>-t</code> (cf. <a + href="programs/httpd.html">httpd</a>). Ceci n'est pas suffisant + pour garantir que le serveur redémarrera correctement. + Afin de vérifier la sémantique des fichiers de + configuration ainsi que leur syntaxe, vous pouvez essayer de + lancer <code>httpd</code> sous un compte utilisateur autre que + root. S'il n'y a pas d'erreur, il essaiera d'ouvrir ses ports + réseau, mais échouera, soit parce qu'il n'est pas + root, soit parce que le serveur existant est déjà + connecté sur ces ports. S'il échoue pour une + autre raison, c'est qu'il existe une erreur dans les fichiers + de configuration et cette erreur doit être + corrigée avant de déclencher une relance en + douceur.</p> + + <h3>Annexe : signaux et conditions temporelles</h3> + + <p>Avant la version 1.2b9 d'Apache il existait un certain + nombre de <em>conditions temporelles</em> concernant les + signaux de redémarrage et d'arrêt. Une description + simple d'une condition temporelle est un problème + lié à l'ordre des traitements dans le temps, + comme quand quelque chose arrive au mauvais moment et ne se + comporte pas comme prévu. Pour les architectures + possédant les "bonnes" fonctionnalités, nous les + avons éliminées autant que possible. Mais il doit + être noté qu'il existe toujours des + problèmes sur certaines architectures.</p> + + <p>Les architectures utilisant un fichier sur disque <a + href="mod/core.html#scoreboardfile">ScoreBoardFile</a> pour la + communication interprocessus peuvent éventuellement + corrompre ce fichier. Il en résulte le message d'erreur + "bind: Address already in use" (après le signal + <code>HUP</code>) ou "long lost child came home!" (après + le signal <code>USR1</code>). Le premier est une erreur fatale, + tandis que le deuxième a juste pour effet de perdre une + entrée dans la table de communication interprocessus. Il + est donc envisageable d'utiliser le redémarrage en + douceur, avec d'occasionnels redémarrages + immédiats. Ces problèmes sont très + difficiles à éviter, mais heureusement de + nombreuses architectures n'ont pas besoin d'utiliser un fichier + pour la communication interprocessus. Consulter la + documentation sur <a + href="mod/core.html#scoreboardfile">ScoreBoardFile</a> pour + savoir si votre architecture l'utilise.</p> + + <p><code>NEXT</code> et <code>MACHTEN</code> (68k seulement) + présentent quelques conditions temporelles qui peuvent + provoquer la perte d'un signal d'arrêt ou de + redémarrage, mais ne devraient pas créer de + problème majeur.</p> + + <p>Sur toutes les architectures, les processus fils + présentent des conditions temporelles dans le cas du + traitement de la deuxième requête, et des + suivantes, pour des connexions HTTP persistantes (KeepAlive). + Le processus peut se terminer après avoir lu la + requête mais avant d'avoir lu l'en-tête. Il existe + un correctif, mais celui ci a été + réalisé trop tard pour être + intégré dans la version 1.2. En théorie, + ceci ne doit pas être un problème car le client + utilisant la persistance des connexions doit être capable + de traiter ce genre de cas, qui peut se produire soit à + cause des temps de latence du réseau, soit à + cause des délais de réponse trop longs des + serveurs. En pratique, cela ne semble pas non plus affecter le + système. Dans un test, le serveur était + redémarré vingt fois par seconde et les clients + ont pu consulter le site sans obtenir de documents vides ou + d'images invalides.</p> + <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/stopping.html.html b/usr.sbin/httpd/htdocs/manual/stopping.html.html new file mode 100644 index 00000000000..10a619c0e48 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/stopping.html.html @@ -0,0 +1,212 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Stopping and Restarting Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="CENTER">Stopping and Restarting Apache</h1> + + <p>This document covers stopping and restarting Apache on Unix + and Cygwin only. Windows users should see <a + href="windows.html#signal">Signalling Apache when + running</a>.</p> + + <p>You will notice many <code>httpd</code> executables running + on your system, but you should not send signals to any of them + except the parent, whose pid is in the <a + href="mod/core.html#pidfile">PidFile</a>. That is to say you + shouldn't ever need to send signals to any process except the + parent. There are three signals that you can send the parent: + <code>TERM</code>, <code>HUP</code>, and <code>USR1</code>, + which will be described in a moment.</p> + + <p>To send a signal to the parent you should issue a command + such as:</p> + + <blockquote> +<pre> + kill -TERM `cat /usr/local/apache/logs/httpd.pid` +</pre> + </blockquote> + You can read about its progress by issuing: + + <blockquote> +<pre> + tail -f /usr/local/apache/logs/error_log +</pre> + </blockquote> + Modify those examples to match your <a + href="mod/core.html#serverroot">ServerRoot</a> and <a + href="mod/core.html#pidfile">PidFile</a> settings. + + <p>As of Apache 1.3 we provide a script called <a + href="programs/apachectl.html">apachectl</a> which can be used + to start, stop, and restart Apache. It may need a little + customization for your system, see the comments at the top of + the script.</p> + + <h3>TERM Signal: stop now</h3> + + <p>Sending the <code>TERM</code> signal to the parent causes it + to immediately attempt to kill off all of its children. It may + take it several seconds to complete killing off its children. + Then the parent itself exits. Any requests in progress are + terminated, and no further requests are served.</p> + + <h3>HUP Signal: restart now</h3> + + <p>Sending the <code>HUP</code> signal to the parent causes it + to kill off its children like in <code>TERM</code> but the + parent doesn't exit. It re-reads its configuration files, and + re-opens any log files. Then it spawns a new set of children + and continues serving hits.</p> + + <p>Users of the <a href="mod/mod_status.html">status module</a> + will notice that the server statistics are set to zero when a + <code>HUP</code> is sent.</p> + + <p><strong>Note:</strong> If your configuration file has errors + in it when you issue a restart then your parent will not + restart, it will exit with an error. See below for a method of + avoiding this.</p> + + <h3>USR1 Signal: graceful restart</h3> + + <p><strong>Note:</strong> prior to release 1.2b9 this code is + quite unstable and shouldn't be used at all.</p> + + <p>The <code>USR1</code> signal causes the parent process to + <em>advise</em> the children to exit after their current + request (or to exit immediately if they're not serving + anything). The parent re-reads its configuration files and + re-opens its log files. As each child dies off the parent + replaces it with a child from the new <em>generation</em> of + the configuration, which begins serving new requests + immediately.</p> + + <p>This code is designed to always respect the <a + href="mod/core.html#maxclients">MaxClients</a>, <a + href="mod/core.html#minspareservers">MinSpareServers</a>, and + <a href="mod/core.html#maxspareservers">MaxSpareServers</a> + settings. Furthermore, it respects <a + href="mod/core.html#startservers">StartServers</a> in the + following manner: if after one second at least StartServers new + children have not been created, then create enough to pick up + the slack. This is to say that the code tries to maintain both + the number of children appropriate for the current load on the + server, and respect your wishes with the StartServers + parameter.</p> + + <p>Users of the <a href="mod/mod_status.html">status module</a> + will notice that the server statistics are <strong>not</strong> + set to zero when a <code>USR1</code> is sent. The code was + written to both minimize the time in which the server is unable + to serve new requests (they will be queued up by the operating + system, so they're not lost in any event) and to respect your + tuning parameters. In order to do this it has to keep the + <em>scoreboard</em> used to keep track of all children across + generations.</p> + + <p>The status module will also use a <code>G</code> to indicate + those children which are still serving requests started before + the graceful restart was given.</p> + + <p>At present there is no way for a log rotation script using + <code>USR1</code> to know for certain that all children writing + the pre-restart log have finished. We suggest that you use a + suitable delay after sending the <code>USR1</code> signal + before you do anything with the old log. For example if most of + your hits take less than 10 minutes to complete for users on + low bandwidth links then you could wait 15 minutes before doing + anything with the old log.</p> + + <p><strong>Note:</strong> If your configuration file has errors + in it when you issue a restart then your parent will not + restart, it will exit with an error. In the case of graceful + restarts it will also leave children running when it exits. + (These are the children which are "gracefully exiting" by + handling their last request.) This will cause problems if you + attempt to restart the server -- it will not be able to bind to + its listening ports. Before doing a restart, you can check the + syntax of the configuration files with the <code>-t</code> + command line argument (see <a + href="programs/httpd.html">httpd</a> ). This still will not + guarantee that the server will restart correctly. To check the + semantics of the configuration files as well as the syntax, you + can try starting httpd as a non-root user. If there are no + errors it will attempt to open its sockets and logs and fail + because it's not root (or because the currently running httpd + already has those ports bound). If it fails for any other + reason then it's probably a config file error and the error + should be fixed before issuing the graceful restart.</p> + + <h3>Appendix: signals and race conditions</h3> + + <p>Prior to Apache 1.2b9 there were several <em>race + conditions</em> involving the restart and die signals (a simple + description of race condition is: a time-sensitive problem, as + in if something happens at just the wrong time it won't behave + as expected). For those architectures that have the "right" + feature set we have eliminated as many as we can. But it should + be noted that there still do exist race conditions on certain + architectures.</p> + + <p>Architectures that use an on disk <a + href="mod/core.html#scoreboardfile">ScoreBoardFile</a> have the + potential to corrupt their scoreboards. This can result in the + "bind: Address already in use" (after <code>HUP</code>) or + "long lost child came home!" (after <code>USR1</code>). The + former is a fatal error, while the latter just causes the + server to lose a scoreboard slot. So it might be advisable to + use graceful restarts, with an occasional hard restart. These + problems are very difficult to work around, but fortunately + most architectures do not require a scoreboard file. See the <a + href="mod/core.html#scoreboardfile">ScoreBoardFile</a> + documentation for a architecture uses it.</p> + + <p><code>NEXT</code> and <code>MACHTEN</code> (68k only) have + small race conditions which can cause a restart/die signal to + be lost, but should not cause the server to do anything + otherwise problematic. + <!-- they don't have sigaction, or we're not using it -djg --> + </p> + + <p>All architectures have a small race condition in each child + involving the second and subsequent requests on a persistent + HTTP connection (KeepAlive). It may exit after reading the + request line but before reading any of the request headers. + There is a fix that was discovered too late to make 1.2. In + theory this isn't an issue because the KeepAlive client has to + expect these events because of network latencies and server + timeouts. In practice it doesn't seem to affect anything either + -- in a test case the server was restarted twenty times per + second and clients successfully browsed the site without + getting broken images or empty documents. + <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + </p> + </body> +</html> + + + diff --git a/usr.sbin/httpd/htdocs/manual/suexec.html.en b/usr.sbin/httpd/htdocs/manual/suexec.html.en new file mode 100644 index 00000000000..e208ce88869 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/suexec.html.en @@ -0,0 +1,618 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache suEXEC Support</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="CENTER">Apache suEXEC Support</h1> + + <ol> + <li><big><strong>CONTENTS</strong></big></li> + + <li><a href="#what">What is suEXEC?</a></li> + + <li><a href="#before">Before we begin.</a></li> + + <li><a href="#model">suEXEC Security Model.</a></li> + + <li><a href="#install">Configuring & Installing + suEXEC</a></li> + + <li><a href="#enable">Enabling & Disabling + suEXEC</a></li> + + <li><a href="#usage">Using suEXEC</a></li> + + <li><a href="#debug">Debugging suEXEC</a></li> + + <li><a href="#jabberwock">Beware the Jabberwock: Warnings + & Examples</a></li> + </ol> + + <h3><a id="what" name="what">What is suEXEC?</a></h3> + + <p align="LEFT">The <strong>suEXEC</strong> feature -- + introduced in Apache 1.2 -- provides Apache users the ability + to run <strong>CGI</strong> and <strong>SSI</strong> programs + under user IDs different from the user ID of the calling + web-server. Normally, when a CGI or SSI program executes, it + runs as the same user who is running the web server.</p> + + <p align="LEFT">Used properly, this feature can reduce + considerably the security risks involved with allowing users to + develop and run private CGI or SSI programs. However, if suEXEC + is improperly configured, it can cause any number of problems + and possibly create new holes in your computer's security. If + you aren't familiar with managing setuid root programs and the + security issues they present, we highly recommend that you not + consider using suEXEC.</p> + + <p align="CENTER"><strong><a href="suexec.html">BACK TO + CONTENTS</a></strong></p> + + <h3><a id="before" name="before">Before we begin.</a></h3> + + <p align="LEFT">Before jumping head-first into this document, + you should be aware of the assumptions made on the part of the + Apache Group and this document.</p> + + <p align="LEFT">First, it is assumed that you are using a UNIX + derivate operating system that is capable of + <strong>setuid</strong> and <strong>setgid</strong> operations. + All command examples are given in this regard. Other platforms, + if they are capable of supporting suEXEC, may differ in their + configuration.</p> + + <p align="LEFT">Second, it is assumed you are familiar with + some basic concepts of your computer's security and its + administration. This involves an understanding of + <strong>setuid/setgid</strong> operations and the various + effects they may have on your system and its level of + security.</p> + + <p align="LEFT">Third, it is assumed that you are using an + <strong>unmodified</strong> version of suEXEC code. All code + for suEXEC has been carefully scrutinized and tested by the + developers as well as numerous beta testers. Every precaution + has been taken to ensure a simple yet solidly safe base of + code. Altering this code can cause unexpected problems and new + security risks. It is <strong>highly</strong> recommended you + not alter the suEXEC code unless you are well versed in the + particulars of security programming and are willing to share + your work with the Apache Group for consideration.</p> + + <p align="LEFT">Fourth, and last, it has been the decision of + the Apache Group to <strong>NOT</strong> make suEXEC part of + the default installation of Apache. To this end, suEXEC + configuration requires of the administrator careful attention + to details. After due consideration has been given to the + various settings for suEXEC, the administrator may install + suEXEC through normal installation methods. The values for + these settings need to be carefully determined and specified by + the administrator to properly maintain system security during + the use of suEXEC functionality. It is through this detailed + process that the Apache Group hopes to limit suEXEC + installation only to those who are careful and determined + enough to use it.</p> + + <p align="LEFT">Still with us? Yes? Good. Let's move on!</p> + + <p align="CENTER"><strong><a href="suexec.html">BACK TO + CONTENTS</a></strong></p> + + <h3><a id="model" name="model">suEXEC Security Model</a></h3> + + <p align="LEFT">Before we begin configuring and installing + suEXEC, we will first discuss the security model you are about + to implement. By doing so, you may better understand what + exactly is going on inside suEXEC and what precautions are + taken to ensure your system's security.</p> + + <p align="LEFT"><strong>suEXEC</strong> is based on a setuid + "wrapper" program that is called by the main Apache web server. + This wrapper is called when an HTTP request is made for a CGI + or SSI program that the administrator has designated to run as + a userid other than that of the main server. When such a + request is made, Apache provides the suEXEC wrapper with the + program's name and the user and group IDs under which the + program is to execute.</p> + + <p align="LEFT">The wrapper then employs the following process + to determine success or failure -- if any one of these + conditions fail, the program logs the failure and exits with an + error, otherwise it will continue:</p> + + <ol> + <li> + <strong>Was the wrapper called with the proper number of + arguments?</strong> + + <blockquote> + The wrapper will only execute if it is given the proper + number of arguments. The proper argument format is known + to the Apache web server. If the wrapper is not receiving + the proper number of arguments, it is either being + hacked, or there is something wrong with the suEXEC + portion of your Apache binary. + </blockquote> + </li> + + <li> + <strong>Is the user executing this wrapper a valid user of + this system?</strong> + + <blockquote> + This is to ensure that the user executing the wrapper is + truly a user of the system. + </blockquote> + </li> + + <li> + <strong>Is this valid user allowed to run the + wrapper?</strong> + + <blockquote> + Is this user the user allowed to run this wrapper? Only + one user (the Apache user) is allowed to execute this + program. + </blockquote> + </li> + + <li> + <strong>Does the target program have an unsafe hierarchical + reference?</strong> + + <blockquote> + Does the target program contain a leading '/' or have a + '..' backreference? These are not allowed; the target + program must reside within the Apache webspace. + </blockquote> + </li> + + <li> + <strong>Is the target user name valid?</strong> + + <blockquote> + Does the target user exist? + </blockquote> + </li> + + <li> + <strong>Is the target group name valid?</strong> + + <blockquote> + Does the target group exist? + </blockquote> + </li> + + <li> + <strong>Is the target user <em>NOT</em> superuser?</strong> + + + <blockquote> + Presently, suEXEC does not allow 'root' to execute + CGI/SSI programs. + </blockquote> + </li> + + <li> + <strong>Is the target userid <em>ABOVE</em> the minimum ID + number?</strong> + + <blockquote> + The minimum user ID number is specified during + configuration. This allows you to set the lowest possible + userid that will be allowed to execute CGI/SSI programs. + This is useful to block out "system" accounts. + </blockquote> + </li> + + <li> + <strong>Is the target group <em>NOT</em> the superuser + group?</strong> + + <blockquote> + Presently, suEXEC does not allow the 'root' group to + execute CGI/SSI programs. + </blockquote> + </li> + + <li> + <strong>Is the target groupid <em>ABOVE</em> the minimum ID + number?</strong> + + <blockquote> + The minimum group ID number is specified during + configuration. This allows you to set the lowest possible + groupid that will be allowed to execute CGI/SSI programs. + This is useful to block out "system" groups. + </blockquote> + </li> + + <li> + <strong>Can the wrapper successfully become the target user + and group?</strong> + + <blockquote> + Here is where the program becomes the target user and + group via setuid and setgid calls. The group access list + is also initialized with all of the groups of which the + user is a member. + </blockquote> + </li> + + <li> + <strong>Does the directory in which the program resides + exist?</strong> + + <blockquote> + If it doesn't exist, it can't very well contain files. + </blockquote> + </li> + + <li> + <strong>Is the directory within the Apache + webspace?</strong> + + <blockquote> + If the request is for a regular portion of the server, is + the requested directory within the server's document + root? If the request is for a UserDir, is the requested + directory within the user's document root? + </blockquote> + </li> + + <li> + <strong>Is the directory <em>NOT</em> writable by anyone + else?</strong> + + <blockquote> + We don't want to open up the directory to others; only + the owner user may be able to alter this directories + contents. + </blockquote> + </li> + + <li> + <strong>Does the target program exist?</strong> + + <blockquote> + If it doesn't exists, it can't very well be executed. + </blockquote> + </li> + + <li> + <strong>Is the target program <em>NOT</em> writable by + anyone else?</strong> + + <blockquote> + We don't want to give anyone other than the owner the + ability to change the program. + </blockquote> + </li> + + <li> + <strong>Is the target program <em>NOT</em> setuid or + setgid?</strong> + + <blockquote> + We do not want to execute programs that will then change + our UID/GID again. + </blockquote> + </li> + + <li> + <strong>Is the target user/group the same as the program's + user/group?</strong> + + <blockquote> + Is the user the owner of the file? + </blockquote> + </li> + + <li> + <strong>Can we successfully clean the process environment + to ensure safe operations?</strong> + + <blockquote> + suEXEC cleans the process' environment by establishing a + safe execution PATH (defined during configuration), as + well as only passing through those variables whose names + are listed in the safe environment list (also created + during configuration). + </blockquote> + </li> + + <li> + <strong>Can we successfully become the target program and + execute?</strong> + + <blockquote> + Here is where suEXEC ends and the target program begins. + </blockquote> + </li> + </ol> + + <p align="LEFT">This is the standard operation of the the + suEXEC wrapper's security model. It is somewhat stringent and + can impose new limitations and guidelines for CGI/SSI design, + but it was developed carefully step-by-step with security in + mind.</p> + + <p align="LEFT">For more information as to how this security + model can limit your possibilities in regards to server + configuration, as well as what security risks can be avoided + with a proper suEXEC setup, see the <a + href="#jabberwock">"Beware the Jabberwock"</a> section of this + document.</p> + + <p align="CENTER"><strong><a href="suexec.html">BACK TO + CONTENTS</a></strong></p> + + <h3><a id="install" name="install">Configuring & Installing + suEXEC</a></h3> + + <p align="LEFT">Here's where we begin the fun. If you use + Apache 1.2 or prefer to configure Apache 1.3 with the + "<code>src/Configure</code>" script you have to edit the suEXEC + header file and install the binary in its proper location + manually. This procedure is described in an <a + href="suexec_1_2.html">extra document</a>. The following + sections describe the configuration and installation for Apache + 1.3 with the AutoConf-style interface (APACI).</p> + + <p align="LEFT"><strong>APACI's suEXEC configuration + options</strong><br /> + </p> + + <dl> + <dt><code>--enable-suexec</code></dt> + + <dd>This option enables the suEXEC feature which is never + installed or activated by default. At least one + --suexec-xxxxx option has to be provided together with the + --enable-suexec option to let APACI accept your request for + using the suEXEC feature.</dd> + + <dt><code>--suexec-caller=<em>UID</em></code></dt> + + <dd>The <a href="mod/core.html#user">username</a> under which + Apache normally runs. This is the only user allowed to + execute this program.</dd> + + <dt><code>--suexec-docroot=<em>DIR</em></code></dt> + + <dd>Define as the DocumentRoot set for Apache. This will be + the only hierarchy (aside from UserDirs) that can be used for + suEXEC behavior. The default directory is the --datadir value + with the suffix "/htdocs", <em>e.g.</em> if you configure + with "<code>--datadir=/home/apache</code>" the directory + "/home/apache/htdocs" is used as document root for the suEXEC + wrapper.</dd> + + <dt><code>--suexec-logfile=<em>FILE</em></code></dt> + + <dd>This defines the filename to which all suEXEC + transactions and errors are logged (useful for auditing and + debugging purposes). By default the logfile is named + "suexec_log" and located in your standard logfile directory + (--logfiledir).</dd> + + <dt><code>--suexec-userdir=<em>DIR</em></code></dt> + + <dd>Define to be the subdirectory under users' home + directories where suEXEC access should be allowed. All + executables under this directory will be executable by suEXEC + as the user so they should be "safe" programs. If you are + using a "simple" UserDir directive (ie. one without a "*" in + it) this should be set to the same value. suEXEC will not + work properly in cases where the UserDir directive points to + a location that is not the same as the user's home directory + as referenced in the passwd file. Default value is + "public_html".<br /> + If you have virtual hosts with a different UserDir for each, + you will need to define them to all reside in one parent + directory; then name that parent directory here. <strong>If + this is not defined properly, "~userdir" cgi requests will + not work!</strong></dd> + + <dt><code>--suexec-uidmin=<em>UID</em></code></dt> + + <dd>Define this as the lowest UID allowed to be a target user + for suEXEC. For most systems, 500 or 100 is common. Default + value is 100.</dd> + + <dt><code>--suexec-gidmin=<em>GID</em></code></dt> + + <dd>Define this as the lowest GID allowed to be a target + group for suEXEC. For most systems, 100 is common and + therefore used as default value.</dd> + + <dt><code>--suexec-safepath=<em>PATH</em></code></dt> + + <dd>Define a safe PATH environment to pass to CGI + executables. Default value is + "/usr/local/bin:/usr/bin:/bin".</dd> + </dl> + + <p align="LEFT"><strong>Checking your suEXEC + setup</strong><br /> + Before you compile and install the suEXEC wrapper you can + check the configuration with the --layout option.<br /> + Example output:</p> +<pre> + suEXEC setup: + suexec binary: /usr/local/apache/sbin/suexec + document root: /usr/local/apache/share/htdocs + userdir suffix: public_html + logfile: /usr/local/apache/var/log/suexec_log + safe path: /usr/local/bin:/usr/bin:/bin + caller ID: www + minimum user ID: 100 + minimum group ID: 100 +</pre> + + <p align="LEFT"><strong>Compiling and installing the suEXEC + wrapper</strong><br /> + If you have enabled the suEXEC feature with the + --enable-suexec option the suexec binary (together with Apache + itself) is automatically built if you execute the command + "make".<br /> + After all components have been built you can execute the + command "make install" to install them. The binary image + "suexec" is installed in the directory defined by the --sbindir + option. Default location is + "/usr/local/apache/sbin/suexec".<br /> + Please note that you need <strong><em>root + privileges</em></strong> for the installation step. In order + for the wrapper to set the user ID, it must be installed as + owner <code><em>root</em></code> and must have the setuserid + execution bit set for file modes.</p> + + <p align="CENTER"><strong><a href="suexec.html">BACK TO + CONTENTS</a></strong></p> + + <h3><a id="enable" name="enable">Enabling & Disabling + suEXEC</a></h3> + + <p align="LEFT">Upon startup of Apache, it looks for the file + "suexec" in the "sbin" directory (default is + "/usr/local/apache/sbin/suexec"). If Apache finds a properly + configured suEXEC wrapper, it will print the following message + to the error log:</p> +<pre> + [notice] suEXEC mechanism enabled (wrapper: <em>/path/to/suexec</em>) +</pre> + + <p>If you don't see this message at server startup, the server + is most likely not finding the wrapper program where it expects + it, or the executable is not installed <em>setuid + root</em>.<br /> + If you want to enable the suEXEC mechanism for the first time + and an Apache server is already running you must kill and + restart Apache. Restarting it with a simple HUP or USR1 signal + will not be enough.<br /> + If you want to disable suEXEC you should kill and restart + Apache after you have removed the "suexec" file.</p> + + <p align="CENTER"><strong><a href="suexec.html">BACK TO + CONTENTS</a></strong></p> + + <h3><a id="usage" name="usage">Using suEXEC</a></h3> + + <p align="LEFT"><strong>Virtual Hosts:</strong><br /> + One way to use the suEXEC wrapper is through the <a + href="mod/core.html#user">User</a> and <a + href="mod/core.html#group">Group</a> directives in <a + href="mod/core.html#virtualhost">VirtualHost</a> definitions. + By setting these directives to values different from the main + server user ID, all requests for CGI resources will be executed + as the <em>User</em> and <em>Group</em> defined for that + <code><VirtualHost></code>. If only one or neither of + these directives are specified for a + <code><VirtualHost></code> then the main server userid is + assumed.</p> + + <p><strong>User directories:</strong><br /> + The suEXEC wrapper can also be used to execute CGI programs as + the user to which the request is being directed. This is + accomplished by using the "<strong><code>~</code></strong>" + character prefixing the user ID for whom execution is desired. + The only requirement needed for this feature to work is for CGI + execution to be enabled for the user and that the script must + meet the scrutiny of the <a href="#model">security checks</a> + above.</p> + + <p align="CENTER"><strong><a href="suexec.html">BACK TO + CONTENTS</a></strong></p> + + <h3><a id="debug" name="debug">Debugging suEXEC</a></h3> + + <p align="LEFT">The suEXEC wrapper will write log information + to the file defined with the --suexec-logfile option as + indicated above. If you feel you have configured and installed + the wrapper properly, have a look at this log and the error_log + for the server to see where you may have gone astray.</p> + + <p align="CENTER"><strong><a href="suexec.html">BACK TO + CONTENTS</a></strong></p> + + <h3><a id="jabberwock" name="jabberwock">Beware the Jabberwock: + Warnings & Examples</a></h3> + + <p align="LEFT"><strong>NOTE!</strong> This section may not be + complete. For the latest revision of this section of the + documentation, see the Apache Group's <a + href="http://www.apache.org/docs/suexec.html">Online + Documentation</a> version.</p> + + <p align="LEFT">There are a few points of interest regarding + the wrapper that can cause limitations on server setup. Please + review these before submitting any "bugs" regarding suEXEC.</p> + + <ul> + <li><strong>suEXEC Points Of Interest</strong></li> + + <li> + Hierarchy limitations + + <blockquote> + For security and efficiency reasons, all suexec requests + must remain within either a top-level document root for + virtual host requests, or one top-level personal document + root for userdir requests. For example, if you have four + VirtualHosts configured, you would need to structure all + of your VHosts' document roots off of one main Apache + document hierarchy to take advantage of suEXEC for + VirtualHosts. (Example forthcoming.) + </blockquote> + </li> + + <li> + suEXEC's PATH environment variable + + <blockquote> + This can be a dangerous thing to change. Make certain + every path you include in this define is a + <strong>trusted</strong> directory. You don't want to + open people up to having someone from across the world + running a trojan horse on them. + </blockquote> + </li> + + <li> + Altering the suEXEC code + + <blockquote> + Again, this can cause <strong>Big Trouble</strong> if you + try this without knowing what you are doing. Stay away + from it if at all possible. + </blockquote> + </li> + </ul> + + <p align="CENTER"><strong><a href="suexec.html">BACK TO + CONTENTS</a></strong></p> + <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/suexec.html.html b/usr.sbin/httpd/htdocs/manual/suexec.html.html new file mode 100644 index 00000000000..3e785675b6e --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/suexec.html.html @@ -0,0 +1,622 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache suEXEC Support</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="CENTER">Apache suEXEC Support</h1> + + <ol> + <li><big><strong>CONTENTS</strong></big></li> + + <li><a href="#what">What is suEXEC?</a></li> + + <li><a href="#before">Before we begin.</a></li> + + <li><a href="#model">suEXEC Security Model.</a></li> + + <li><a href="#install">Configuring & Installing + suEXEC</a></li> + + <li><a href="#enable">Enabling & Disabling + suEXEC</a></li> + + <li><a href="#usage">Using suEXEC</a></li> + + <li><a href="#debug">Debugging suEXEC</a></li> + + <li><a href="#jabberwock">Beware the Jabberwock: Warnings + & Examples</a></li> + </ol> + + <h3><a id="what" name="what">What is suEXEC?</a></h3> + + <p align="LEFT">The <strong>suEXEC</strong> feature -- + introduced in Apache 1.2 -- provides Apache users the ability + to run <strong>CGI</strong> and <strong>SSI</strong> programs + under user IDs different from the user ID of the calling + web-server. Normally, when a CGI or SSI program executes, it + runs as the same user who is running the web server.</p> + + <p align="LEFT">Used properly, this feature can reduce + considerably the security risks involved with allowing users to + develop and run private CGI or SSI programs. However, if suEXEC + is improperly configured, it can cause any number of problems + and possibly create new holes in your computer's security. If + you aren't familiar with managing setuid root programs and the + security issues they present, we highly recommend that you not + consider using suEXEC.</p> + + <p align="CENTER"><strong><a href="suexec.html">BACK TO + CONTENTS</a></strong></p> + + <h3><a id="before" name="before">Before we begin.</a></h3> + + <p align="LEFT">Before jumping head-first into this document, + you should be aware of the assumptions made on the part of the + Apache Group and this document.</p> + + <p align="LEFT">First, it is assumed that you are using a UNIX + derivate operating system that is capable of + <strong>setuid</strong> and <strong>setgid</strong> operations. + All command examples are given in this regard. Other platforms, + if they are capable of supporting suEXEC, may differ in their + configuration.</p> + + <p align="LEFT">Second, it is assumed you are familiar with + some basic concepts of your computer's security and its + administration. This involves an understanding of + <strong>setuid/setgid</strong> operations and the various + effects they may have on your system and its level of + security.</p> + + <p align="LEFT">Third, it is assumed that you are using an + <strong>unmodified</strong> version of suEXEC code. All code + for suEXEC has been carefully scrutinized and tested by the + developers as well as numerous beta testers. Every precaution + has been taken to ensure a simple yet solidly safe base of + code. Altering this code can cause unexpected problems and new + security risks. It is <strong>highly</strong> recommended you + not alter the suEXEC code unless you are well versed in the + particulars of security programming and are willing to share + your work with the Apache Group for consideration.</p> + + <p align="LEFT">Fourth, and last, it has been the decision of + the Apache Group to <strong>NOT</strong> make suEXEC part of + the default installation of Apache. To this end, suEXEC + configuration requires of the administrator careful attention + to details. After due consideration has been given to the + various settings for suEXEC, the administrator may install + suEXEC through normal installation methods. The values for + these settings need to be carefully determined and specified by + the administrator to properly maintain system security during + the use of suEXEC functionality. It is through this detailed + process that the Apache Group hopes to limit suEXEC + installation only to those who are careful and determined + enough to use it.</p> + + <p align="LEFT">Still with us? Yes? Good. Let's move on!</p> + + <p align="CENTER"><strong><a href="suexec.html">BACK TO + CONTENTS</a></strong></p> + + <h3><a id="model" name="model">suEXEC Security Model</a></h3> + + <p align="LEFT">Before we begin configuring and installing + suEXEC, we will first discuss the security model you are about + to implement. By doing so, you may better understand what + exactly is going on inside suEXEC and what precautions are + taken to ensure your system's security.</p> + + <p align="LEFT"><strong>suEXEC</strong> is based on a setuid + "wrapper" program that is called by the main Apache web server. + This wrapper is called when an HTTP request is made for a CGI + or SSI program that the administrator has designated to run as + a userid other than that of the main server. When such a + request is made, Apache provides the suEXEC wrapper with the + program's name and the user and group IDs under which the + program is to execute.</p> + + <p align="LEFT">The wrapper then employs the following process + to determine success or failure -- if any one of these + conditions fail, the program logs the failure and exits with an + error, otherwise it will continue:</p> + + <ol> + <li> + <strong>Was the wrapper called with the proper number of + arguments?</strong> + + <blockquote> + The wrapper will only execute if it is given the proper + number of arguments. The proper argument format is known + to the Apache web server. If the wrapper is not receiving + the proper number of arguments, it is either being + hacked, or there is something wrong with the suEXEC + portion of your Apache binary. + </blockquote> + </li> + + <li> + <strong>Is the user executing this wrapper a valid user of + this system?</strong> + + <blockquote> + This is to ensure that the user executing the wrapper is + truly a user of the system. + </blockquote> + </li> + + <li> + <strong>Is this valid user allowed to run the + wrapper?</strong> + + <blockquote> + Is this user the user allowed to run this wrapper? Only + one user (the Apache user) is allowed to execute this + program. + </blockquote> + </li> + + <li> + <strong>Does the target program have an unsafe hierarchical + reference?</strong> + + <blockquote> + Does the target program contain a leading '/' or have a + '..' backreference? These are not allowed; the target + program must reside within the Apache webspace. + </blockquote> + </li> + + <li> + <strong>Is the target user name valid?</strong> + + <blockquote> + Does the target user exist? + </blockquote> + </li> + + <li> + <strong>Is the target group name valid?</strong> + + <blockquote> + Does the target group exist? + </blockquote> + </li> + + <li> + <strong>Is the target user <em>NOT</em> superuser?</strong> + + + <blockquote> + Presently, suEXEC does not allow 'root' to execute + CGI/SSI programs. + </blockquote> + </li> + + <li> + <strong>Is the target userid <em>ABOVE</em> the minimum ID + number?</strong> + + <blockquote> + The minimum user ID number is specified during + configuration. This allows you to set the lowest possible + userid that will be allowed to execute CGI/SSI programs. + This is useful to block out "system" accounts. + </blockquote> + </li> + + <li> + <strong>Is the target group <em>NOT</em> the superuser + group?</strong> + + <blockquote> + Presently, suEXEC does not allow the 'root' group to + execute CGI/SSI programs. + </blockquote> + </li> + + <li> + <strong>Is the target groupid <em>ABOVE</em> the minimum ID + number?</strong> + + <blockquote> + The minimum group ID number is specified during + configuration. This allows you to set the lowest possible + groupid that will be allowed to execute CGI/SSI programs. + This is useful to block out "system" groups. + </blockquote> + </li> + + <li> + <strong>Can the wrapper successfully become the target user + and group?</strong> + + <blockquote> + Here is where the program becomes the target user and + group via setuid and setgid calls. The group access list + is also initialized with all of the groups of which the + user is a member. + </blockquote> + </li> + + <li> + <strong>Does the directory in which the program resides + exist?</strong> + + <blockquote> + If it doesn't exist, it can't very well contain files. + </blockquote> + </li> + + <li> + <strong>Is the directory within the Apache + webspace?</strong> + + <blockquote> + If the request is for a regular portion of the server, is + the requested directory within the server's document + root? If the request is for a UserDir, is the requested + directory within the user's document root? + </blockquote> + </li> + + <li> + <strong>Is the directory <em>NOT</em> writable by anyone + else?</strong> + + <blockquote> + We don't want to open up the directory to others; only + the owner user may be able to alter this directories + contents. + </blockquote> + </li> + + <li> + <strong>Does the target program exist?</strong> + + <blockquote> + If it doesn't exists, it can't very well be executed. + </blockquote> + </li> + + <li> + <strong>Is the target program <em>NOT</em> writable by + anyone else?</strong> + + <blockquote> + We don't want to give anyone other than the owner the + ability to change the program. + </blockquote> + </li> + + <li> + <strong>Is the target program <em>NOT</em> setuid or + setgid?</strong> + + <blockquote> + We do not want to execute programs that will then change + our UID/GID again. + </blockquote> + </li> + + <li> + <strong>Is the target user/group the same as the program's + user/group?</strong> + + <blockquote> + Is the user the owner of the file? + </blockquote> + </li> + + <li> + <strong>Can we successfully clean the process environment + to ensure safe operations?</strong> + + <blockquote> + suEXEC cleans the process' environment by establishing a + safe execution PATH (defined during configuration), as + well as only passing through those variables whose names + are listed in the safe environment list (also created + during configuration). + </blockquote> + </li> + + <li> + <strong>Can we successfully become the target program and + execute?</strong> + + <blockquote> + Here is where suEXEC ends and the target program begins. + </blockquote> + </li> + </ol> + + <p align="LEFT">This is the standard operation of the the + suEXEC wrapper's security model. It is somewhat stringent and + can impose new limitations and guidelines for CGI/SSI design, + but it was developed carefully step-by-step with security in + mind.</p> + + <p align="LEFT">For more information as to how this security + model can limit your possibilities in regards to server + configuration, as well as what security risks can be avoided + with a proper suEXEC setup, see the <a + href="#jabberwock">"Beware the Jabberwock"</a> section of this + document.</p> + + <p align="CENTER"><strong><a href="suexec.html">BACK TO + CONTENTS</a></strong></p> + + <h3><a id="install" name="install">Configuring & Installing + suEXEC</a></h3> + + <p align="LEFT">Here's where we begin the fun. If you use + Apache 1.2 or prefer to configure Apache 1.3 with the + "<code>src/Configure</code>" script you have to edit the suEXEC + header file and install the binary in its proper location + manually. This procedure is described in an <a + href="suexec_1_2.html">extra document</a>. The following + sections describe the configuration and installation for Apache + 1.3 with the AutoConf-style interface (APACI).</p> + + <p align="LEFT"><strong>APACI's suEXEC configuration + options</strong><br /> + </p> + + <dl> + <dt><code>--enable-suexec</code></dt> + + <dd>This option enables the suEXEC feature which is never + installed or activated by default. At least one + --suexec-xxxxx option has to be provided together with the + --enable-suexec option to let APACI accept your request for + using the suEXEC feature.</dd> + + <dt><code>--suexec-caller=<em>UID</em></code></dt> + + <dd>The <a href="mod/core.html#user">username</a> under which + Apache normally runs. This is the only user allowed to + execute this program.</dd> + + <dt><code>--suexec-docroot=<em>DIR</em></code></dt> + + <dd>Define as the DocumentRoot set for Apache. This will be + the only hierarchy (aside from UserDirs) that can be used for + suEXEC behavior. The default directory is the --datadir value + with the suffix "/htdocs", <em>e.g.</em> if you configure + with "<code>--datadir=/home/apache</code>" the directory + "/home/apache/htdocs" is used as document root for the suEXEC + wrapper.</dd> + + <dt><code>--suexec-logfile=<em>FILE</em></code></dt> + + <dd>This defines the filename to which all suEXEC + transactions and errors are logged (useful for auditing and + debugging purposes). By default the logfile is named + "suexec_log" and located in your standard logfile directory + (--logfiledir).</dd> + + <dt><code>--suexec-userdir=<em>DIR</em></code></dt> + + <dd>Define to be the subdirectory under users' home + directories where suEXEC access should be allowed. All + executables under this directory will be executable by suEXEC + as the user so they should be "safe" programs. If you are + using a "simple" UserDir directive (ie. one without a "*" in + it) this should be set to the same value. suEXEC will not + work properly in cases where the UserDir directive points to + a location that is not the same as the user's home directory + as referenced in the passwd file. Default value is + "public_html".<br /> + If you have virtual hosts with a different UserDir for each, + you will need to define them to all reside in one parent + directory; then name that parent directory here. <strong>If + this is not defined properly, "~userdir" cgi requests will + not work!</strong></dd> + + <dt><code>--suexec-uidmin=<em>UID</em></code></dt> + + <dd>Define this as the lowest UID allowed to be a target user + for suEXEC. For most systems, 500 or 100 is common. Default + value is 100.</dd> + + <dt><code>--suexec-gidmin=<em>GID</em></code></dt> + + <dd>Define this as the lowest GID allowed to be a target + group for suEXEC. For most systems, 100 is common and + therefore used as default value.</dd> + + <dt><code>--suexec-safepath=<em>PATH</em></code></dt> + + <dd>Define a safe PATH environment to pass to CGI + executables. Default value is + "/usr/local/bin:/usr/bin:/bin".</dd> + </dl> + + <p align="LEFT"><strong>Checking your suEXEC + setup</strong><br /> + Before you compile and install the suEXEC wrapper you can + check the configuration with the --layout option.<br /> + Example output:</p> +<pre> + suEXEC setup: + suexec binary: /usr/local/apache/sbin/suexec + document root: /usr/local/apache/share/htdocs + userdir suffix: public_html + logfile: /usr/local/apache/var/log/suexec_log + safe path: /usr/local/bin:/usr/bin:/bin + caller ID: www + minimum user ID: 100 + minimum group ID: 100 +</pre> + + <p align="LEFT"><strong>Compiling and installing the suEXEC + wrapper</strong><br /> + If you have enabled the suEXEC feature with the + --enable-suexec option the suexec binary (together with Apache + itself) is automatically built if you execute the command + "make".<br /> + After all components have been built you can execute the + command "make install" to install them. The binary image + "suexec" is installed in the directory defined by the --sbindir + option. Default location is + "/usr/local/apache/sbin/suexec".<br /> + Please note that you need <strong><em>root + privileges</em></strong> for the installation step. In order + for the wrapper to set the user ID, it must be installed as + owner <code><em>root</em></code> and must have the setuserid + execution bit set for file modes.</p> + + <p align="CENTER"><strong><a href="suexec.html">BACK TO + CONTENTS</a></strong></p> + + <h3><a id="enable" name="enable">Enabling & Disabling + suEXEC</a></h3> + + <p align="LEFT">Upon startup of Apache, it looks for the file + "suexec" in the "sbin" directory (default is + "/usr/local/apache/sbin/suexec"). If Apache finds a properly + configured suEXEC wrapper, it will print the following message + to the error log:</p> +<pre> + [notice] suEXEC mechanism enabled (wrapper: <em>/path/to/suexec</em>) +</pre> + + <p>If you don't see this message at server startup, the server + is most likely not finding the wrapper program where it expects + it, or the executable is not installed <em>setuid + root</em>.<br /> + If you want to enable the suEXEC mechanism for the first time + and an Apache server is already running you must kill and + restart Apache. Restarting it with a simple HUP or USR1 signal + will not be enough.<br /> + If you want to disable suEXEC you should kill and restart + Apache after you have removed the "suexec" file.</p> + + <p align="CENTER"><strong><a href="suexec.html">BACK TO + CONTENTS</a></strong></p> + + <h3><a id="usage" name="usage">Using suEXEC</a></h3> + + <p align="LEFT"><strong>Virtual Hosts:</strong><br /> + One way to use the suEXEC wrapper is through the <a + href="mod/core.html#user">User</a> and <a + href="mod/core.html#group">Group</a> directives in <a + href="mod/core.html#virtualhost">VirtualHost</a> definitions. + By setting these directives to values different from the main + server user ID, all requests for CGI resources will be executed + as the <em>User</em> and <em>Group</em> defined for that + <code><VirtualHost></code>. If only one or neither of + these directives are specified for a + <code><VirtualHost></code> then the main server userid is + assumed.</p> + + <p><strong>User directories:</strong><br /> + The suEXEC wrapper can also be used to execute CGI programs as + the user to which the request is being directed. This is + accomplished by using the "<strong><code>~</code></strong>" + character prefixing the user ID for whom execution is desired. + The only requirement needed for this feature to work is for CGI + execution to be enabled for the user and that the script must + meet the scrutiny of the <a href="#model">security checks</a> + above.</p> + + <p align="CENTER"><strong><a href="suexec.html">BACK TO + CONTENTS</a></strong></p> + + <h3><a id="debug" name="debug">Debugging suEXEC</a></h3> + + <p align="LEFT">The suEXEC wrapper will write log information + to the file defined with the --suexec-logfile option as + indicated above. If you feel you have configured and installed + the wrapper properly, have a look at this log and the error_log + for the server to see where you may have gone astray.</p> + + <p align="CENTER"><strong><a href="suexec.html">BACK TO + CONTENTS</a></strong></p> + + <h3><a id="jabberwock" name="jabberwock">Beware the Jabberwock: + Warnings & Examples</a></h3> + + <p align="LEFT"><strong>NOTE!</strong> This section may not be + complete. For the latest revision of this section of the + documentation, see the Apache Group's <a + href="http://www.apache.org/docs/suexec.html">Online + Documentation</a> version.</p> + + <p align="LEFT">There are a few points of interest regarding + the wrapper that can cause limitations on server setup. Please + review these before submitting any "bugs" regarding suEXEC.</p> + + <ul> + <li><strong>suEXEC Points Of Interest</strong></li> + + <li> + Hierarchy limitations + + <blockquote> + For security and efficiency reasons, all suexec requests + must remain within either a top-level document root for + virtual host requests, or one top-level personal document + root for userdir requests. For example, if you have four + VirtualHosts configured, you would need to structure all + of your VHosts' document roots off of one main Apache + document hierarchy to take advantage of suEXEC for + VirtualHosts. (Example forthcoming.) + </blockquote> + </li> + + <li> + suEXEC's PATH environment variable + + <blockquote> + This can be a dangerous thing to change. Make certain + every path you include in this define is a + <strong>trusted</strong> directory. You don't want to + open people up to having someone from across the world + running a trojan horse on them. + </blockquote> + </li> + + <li> + Altering the suEXEC code + + <blockquote> + Again, this can cause <strong>Big Trouble</strong> if you + try this without knowing what you are doing. Stay away + from it if at all possible. + </blockquote> + </li> + </ul> + + <p align="CENTER"><strong><a href="suexec.html">BACK TO + CONTENTS</a></strong></p> + <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + </body> +</html> + + + diff --git a/usr.sbin/httpd/htdocs/manual/suexec.html.ja.jis b/usr.sbin/httpd/htdocs/manual/suexec.html.ja.jis new file mode 100644 index 00000000000..c1ab782164e --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/suexec.html.ja.jis @@ -0,0 +1,548 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<title>Apache suEXEC Support</title> +</head> +<!-- English revision:1.24 --> +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> +<body + bgcolor="#ffffff" + text="#000000" + link="#0000ff" + vlink="#000080" + alink="#ff0000" +> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + +<h1 align="center">Apache suEXEC Support</h1> + +<ol> + <li><big><strong>$BL\<!(B</strong></big></li> + <li><a href="#what">suEXEC $B$H$O(B?</a></li> + <li><a href="#before">$B;O$a$kA0$K(B</a></li> + <li><a href="#model">suEXEC $B$N%;%-%e%j%F%#%b%G%k(B</a></li> + <li><a href="#install">suEXEC $B$N@_Dj$H%$%s%9%H!<%k(B</a></li> + <li><a href="#enable">suEXEC $B$NM-8z2=$HL58z2=(B</a></li> + <li><a href="#usage">suEXEC $B$N;HMQ(B</a></li> + <li><a href="#debug">suEXEC $B$N%G%P%C%0(B</a></li> + <li><a href="#jabberwock">$B$H$+$2$KCm0U(B: $B7Y9p$H;vNc(B</a></li> +</ol> + +<h3><a name="what">suEXEC $B$H$O(B?</a></h3> +<p align="left"> +Apache 1.2 $B$GF3F~$5$l$?(B <strong>suEXEC</strong> $B5!G=$K$h$j!"(B +Apache $B%f!<%6$O(B Web $B%5!<%P$r<B9T$7$F$$$k%f!<%6(B ID $B$H(B +$B0[$J$k%f!<%6(B ID $B$G(B <strong>CGI</strong> $B%W%m%0%i%`$d(B <strong>SSI</strong> +$B%W%m%0%i%`$r<B9T$9$k$3$H$,$G$-$^$9!#(B +CGI $B%W%m%0%i%`$^$?$O(B SSI $B%W%m%0%i%`$r<B9T$9$k>l9g!"DL>o$O(B web $B%5!<%P$H(B +$BF1$8%f!<%6$G<B9T$5$l$^$9!#(B +</p> + +<p align="left"> +$BE,@Z$K;HMQ$9$k$H!"$3$N5!G=$K$h$j%f!<%6$,8DJL$N(B CGI $B$d(B SSI +$B%W%m%0%i%`$r3+H/$7<B9T$9$k$3$H$G@8$8$k%;%-%e%j%F%#>e$N4m81$r!"(B +$B$+$J$j8:$i$9$3$H$,$G$-$^$9!#$7$+$7!"(BsuEXEC $B$N@_Dj$,ITE,@Z$@$H!"(B +$BB?$/$NLdBj$,@8$8!"$"$J$?$N%3%s%T%e!<%?$K?7$7$$(B +$B%;%-%e%j%F%#%[!<%k$r:n$C$F$7$^$&2DG=@-$,$"$j$^$9!#(B +$B$"$J$?$,(B root $B$K(B setuid $B$5$l$?%W%m%0%i%`$H!"$=$l$i$+$i@8$8$k(B +$B%;%-%e%j%F%#>e$NLdBj$N4IM}$K>\$7$/$J$$$h$&$J$i!"(BsuEXEC $B$N;HMQ$r(B +$B8!F$$7$J$$$h$&$K6/$/?d>)$7$^$9!#(B +</p> + +<p align="center"> +<strong><a href="suexec.html">$BL\<!$KLa$k(B</a></strong> +</p> + +<h3><a name="before">$B;O$a$kA0$K(B</a></h3> +<p align="left"> +$B$3$NJ8=q$N@hF,$KHt$VA0$K!"(BApache $B%0%k!<%W$H(B +$B$3$NJ8=q$G$N2>Dj$rCN$C$F$*$/$Y$-$G$7$g$&!#(B +</p> + +<p align="left"> +$BBh(B 1 $B$K!"$"$J$?$,(B <strong>setuid</strong> $B$H(B +<strong>setgid</strong> $BA`:n$,2DG=$J(B UNIX $BM3Mh$N(B +$B%*%Z%l!<%F%#%s%0%7%9%F%`$r;H$C$F$$$k$3$H$rA[Dj$7$F$$$^$9!#(B +$B$3$l$O!"$9$Y$F$N%3%^%s%INc$K$"$F$O$^$j$^$9!#(B +$B$=$NB>$N%W%i%C%H%[!<%`$G$O!"$b$7(B suEXEC $B$,%5%]!<%H$5$l$F$$$?$H(B +$B$7$F$b@_Dj$O0[$J$k$+$b$7$l$^$;$s!#(B +</p> + +<p align="left"> +$BBh(B 2 $B$K!";HMQCf$N%3%s%T%e!<%?$N%;%-%e%j%F%#$K4X$9$k4pK\E*$J35G0$H!"(B +$B$=$l$i$N4IM}$K$D$$$F$"$J$?$,>\$7$$$3$H$rA[Dj$7$F$$$^$9!#(B +$B$3$l$O!"(B<strong>setuid/setgid</strong> $BA`:n!"(B +$B$"$J$?$N%7%9%F%`>e$G$N$=$NA`:n$K$h$kMM!9$J8z2L!"(B +$B%;%-%e%j%F%#%l%Y%k$K$D$$$F$"$J$?$,M}2r$7$F$$$k$H$$$&$3$H$r4^$_$^$9!#(B +</p> + +<p align="left"> +$BBh(B 3 $B$K!"(B<strong>$B2~B$$5$l$F$$$J$$(B</strong> suEXEC $B%3!<%I$N(B +$B;HMQ$rA[Dj$7$F$$$^$9!#(B +suEXEC $B$N%3!<%I$O!"B?$/$N%Y!<%?%F%9%?$@$1$G$J$/!"3+H/<T$K$h$C$F$b(B +$BCm0U?<$/@:::$5$l%F%9%H$5$l$F$$$^$9!#(B +$B$=$l$i$NCm0U$K$h$j!"4J7i$G?.Mj$G$-$k0BA4$J%3!<%I$N4pHW$,(B +$BJ]>Z$5$l$^$9!#$3$N%3!<%I$r2~JQ$9$k$3$H$G!"M=4|$5$l$J$$LdBj$d(B +$B?7$7$$%;%-%e%j%F%#>e$N4m81$,@8$8$k$3$H$,$"$j$^$9!#(B +$B%;%-%e%j%F%#%W%m%0%i%_%s%0$N>\:Y$KDL$8$F$$$F!"(B +$B:#8e$N8!F$$N$?$a$K@.2L$r(B Apache $B%0%k!<%W$H6&M-$7$h$&$H;W$&$N$G(B +$B$J$1$l$P!"(BsuEXEC $B%3!<%I$OJQ$($J$$$3$H$r(B +<strong>$B6/$/(B</strong>$B?d>)$7$^$9!#(B +</p> + +<p align="left"> +$BBh(B 4 $B$K!"$3$l$,:G8e$G$9$,!"(BsuEXEC $B$r(B Apache $B$N%G%U%)%k%H(B +$B%$%s%9%H!<%k$K(B<strong>$B4^$a$J$$(B</strong>$B$3$H$,(B +Apache $B%0%k!<%W$G7hDj$5$l$F$$$^$9!#(B +$B$3$l$O!"(BsuEXEC $B$N@_Dj$K$O4IM}<T$N>\:Y$K$o$?$k?5=E$JCm0U$,I,MW(B +$B$@$+$i$G$9!#(BsuEXEC $B$NMM!9$J@_Dj$K$D$$$F8!F$$,=*$o$l$P!"(B +$B4IM}<T$O(B suEXEC $B$rDL>o$N%$%s%9%H!<%kJ}K!$G%$%s%9%H!<%k$9$k(B +$B$3$H$,$G$-$^$9!#$3$l$i$N@_DjCM$O!"(BsuEXEC $B5!G=$N;HMQCf$K(B +$B%7%9%F%`%;%-%e%j%F%#$rE,@Z$KJ]$D$?$a$K!"4IM}<T$K$h$C$F(B +$B?5=E$K7hDj$5$l;XDj$5$l$k$3$H$,I,MW$G$9!#(B +$B$3$N>\:Y$J<j=g$K$h$j!"(B +Apache $B%0%k!<%W$O!"(BsuEXEC $B$N%$%s%9%H!<%k$K$D$$$F!"(B +$BCm0U?<$/==J,$K8!F$$7$F$=$l$r;HMQ$9$k$3$H$r7hDj$7$?>l9g$K(B +$B8B$C$F$$$?$@$-$?$$$H9M$($F$$$^$9!#(B +</p> + +<p align="left"> +$B$=$l$G$b?J$_$^$9$+(B? $B$h$m$7$$!#$G$O!"@h$X?J$_$^$7$g$&(B! +</p> + +<p align="center"> +<strong><a href="suexec.html">$BL\<!$KLa$k(B</a></strong> +</p> + +<h3><a name="model">suEXEC $B%;%-%e%j%F%#%b%G%k(B</a></h3> +<p align="left"> +suEXEC $B$N@_Dj$H%$%s%9%H!<%k$r;O$a$kA0$K!"$^$:(B +$B<BAu$7$h$&$H$7$F$$$k%;%-%e%j%F%#%b%G%k$K$D$$$F(B +$BO@$8$F$*$-$^$9!#$=$l$K$O!"(BsuEXEC $B$NFbIt$G9T$J$o$l$F$$$k$3$H!"(B +$B%7%9%F%`$N%;%-%e%j%F%#$rJ]>Z$9$k$?$a$K7Y9p$5$l$k$3$H(B +$B$r$h$/M}2r$7$F$*$$$?J}$,$h$$$G$7$g$&!#(B +</p> + +<p align="left"> +<strong>suEXEC</strong> $B$O!"(BApache web $B%5!<%P$+$i(B +$B8F$S=P$5$l$k(B setuid $B$5$l$?(B "wrapper" $B%W%m%0%i%`$,4pK\$H$J$C$F$$$^$9!#(B +$B@_7W$7$?(B CGI$B!"$^$?$O(B SSI $B%W%m%0%i%`$X$N(B HTTP $B%j%/%(%9%H$,(B +$B$"$k$H!"$3$N(B wrapper $B$,8F$S=P$5$l$^$9!#(B +$B$3$N$h$&$J%j%/%(%9%H$,$"$k$H!"(BApache $B$O$=$N%W%m%0%i%`$,(B +$B<B9T$5$l$k:]$N%W%m%0%i%`L>$H%f!<%6(B ID $B$H%0%k!<%W(B ID $B$r;XDj$7$F(B +suEXEC wrapper $B$r<B9T$7$^$9!#(B +</p> + +<p align="left"> +$B$=$l$+$i!"(Bwrapper $B$O@.8y$^$?$O<:GT$r7hDj$9$k$?$a(B +$B0J2<$N=hM}$r9T$J$$$^$9!#(B +$B$3$l$i$N>uBV$N$&$A0l$D$G$b<:GT$7$?>l9g!"%W%m%0%i%`$O<:GT$r(B +$B%m%0$K5-O?$7$F%(%i!<$G=*N;$7$^$9!#$=$&$G$J$1$l$P!"(B +$B8e$N=hM}$,B3$1$i$l$^$9!#(B +</p> + +<ol> + <li><strong>wrapper $B$,E,@Z$J?t$N0z?t$G8F$S=P$5$l$?$+(B?</strong> + <blockquote> + wrapper $B$OE,@Z$J?t$N0z?t$,M?$($i$l$?>l9g$K<B9T$5$l$^$9!#(B + $BE,@Z$J?t$N0z?t$r<u$1<h$i$J$1$l$P!"967b$r$5$l$?$+(B + $B$"$J$?$N(B Apache $B%P%$%J%j$N(B suEXEC $B$NItJ,$,(B + $B$I$3$+$*$+$7$$2DG=@-$,$"$j$^$9!#(B + </blockquote> + </li> + <li><strong>wrapper $B$r<B9T$7$F$$$k%f!<%6$O(B +$B$3$N%7%9%F%`$N@5Ev$J%f!<%6$+(B?</strong> + <blockquote> + $B$3$l$O!"(Bwrapper $B$r<B9T$7$F$$$k%f!<%6$,(B + $BK\Ev$K%7%9%F%`$NMxMQ<T$G$"$k$3$H$rJ]>Z$9$k$?$a$G$9!#(B + </blockquote> + </li> + <li><strong>$B$3$N@5Ev$J%f!<%6$O(B wrapper $B$N<B9T$r5v2D$5$l$F$$$k$+(B?</strong> + <blockquote> + $B$3$N%f!<%6$O(B wrapper $B<B9T$r5v2D$5$l$?%f!<%6$G$9$+(B? + $B$?$@0l?M$N%f!<%6(B (Apache $B%f!<%6(B) $B$@$1$,!"$3$N%W%m%0%i%`$N(B + $B<B9T$r5v2D$5$l$^$9!#(B + </blockquote> + </li> + <li><strong>$BBP>]$N%W%m%0%i%`$,0BA4$G$J$$3,AX$N;2>H$r$7$F$$$k$+(B?</strong> + <blockquote> + $BBP>]$N%W%m%0%i%`$,(B '/' $B$+$i;O$^$k!"$^$?$O(B + '..' $B$K$h$k;2>H$r9T$J$C$F$$$^$9$+(B? $B$3$l$i$O5v2D$5$l$^$;$s!#(B + $BBP>]$N%W%m%0%i%`$O(B Apache $B$N(B web $B6u4VFb$K$J$1$l$P$J$j$^$;$s!#(B + </blockquote> + </li> + <li><strong>$BBP>]$H$J$k%f!<%6L>$O@5Ev$J$b$N$+(B?</strong> + <blockquote> + $BBP>]$H$J$k%f!<%6L>$OB8:_$7$F$$$^$9$+(B? + </blockquote> + </li> + <li><strong>$BBP>]$H$J$k%0%k!<%WL>$O@5Ev$J$b$N$+(B?</strong> + <blockquote> + $BBP>]$H$J$k%0%k!<%WL>$OB8:_$7$F$$$^$9$+(B? + </blockquote> + </li> + <li><strong>$BL\E*$N%f!<%6$O%9!<%Q!<%f!<%6$G$O(B<em>$B$J$$(B</em>$B$+(B?</strong> + <blockquote> + $B:#$N$H$3$m!"(BsuEXEC $B$O(B 'root' $B$K$h$k(B CGI/SSI $B%W%m%0%i%`$N(B + $B<B9T$r5v2D$7$F$$$^$;$s!#(B + </blockquote> + </li> + <li><strong>$BBP>]$H$J$k%f!<%6(B ID $B$O!":G>.$N(B ID $BHV9f$h$j$b(B<em>$BBg$-$$(B</em>$B$+(B? + </strong> + <blockquote> + $B:G>.%f!<%6(B ID $BHV9f$O@_Dj;~$K;XDj$5$l$^$9!#(B + $B$3$l$O!"(BCGI/SSI $B%W%m%0%i%`<B9T$r5v2D$5$l$k%f!<%6(B ID $B$N(B + $B$H$j$&$k:G>.CM$G$9!#$3$l$O(B "system" $BMQ$N%"%+%&%s%H$r(B + $BJD$a=P$9$N$KM-8z$G$9!#(B + </blockquote> + </li> + <li><strong>$BBP>]$H$J$k%0%k!<%W$O%9!<%Q!<%f!<%6$N%0%k!<%W$G$O(B<em>$B$J$$(B</em>$B$+(B? + </strong> + <blockquote> + $B:#$N$H$3$m!"(BsuEXEC $B$O(B 'root' $B%0%k!<%W$K$h$k(B CGI/SSI + $B%W%m%0%i%`$N<B9T$r5v2D$7$F$$$^$;$s!#(B + </blockquote> + </li> + <li><strong>$BBP>]$H$J$k%0%k!<%W(B ID $B$O:G>.$N(B ID $BHV9f$h$j$b(B<em>$BBg$-$$(B</em>$B$+(B? + </strong> + <blockquote> + $B:G>.%0%k!<%W(B ID $BHV9f$O@_Dj;~$K;XDj$5$l$^$9!#(B + $B$3$l$O!"(BCGI/SSI $B%W%m%0%i%`<B9T$r5v2D$5$l$k%0%k!<%W(B ID $B$N(B + $B$H$j$&$k:G>.CM$G$9!#$3$l$O(B "system" $BMQ$N%0%k!<%W$r(B + $BJD$a=P$9$N$KM-8z$G$9!#(B + </blockquote> + </li> + <li><strong>wrapper $B$,@5>o$KBP>]$H$J$k%f!<%6$H%0%k!<%W$K$J$l$k$+(B? + </strong> + <blockquote> + $B$3$3$G!"(Bsetuid $B$H(B setgid $B$N5/F0$K$h$j%W%m%0%i%`$OBP>]$H$J$k(B + $B%f!<%6$H%0%k!<%W$K$J$j$^$9!#%0%k!<%W%"%/%;%9%j%9%H$O!"(B + $B%f!<%6$,B0$7$F$$$k$9$Y$F$N%0%k!<%W$G=i4|2=$5$l$^$9!#(B + </blockquote> + </li> + <li><strong>$B%W%m%0%i%`$,CV$+$l$k%G%#%l%/%H%j$OB8:_$7$F$$$k$+(B? + </strong> + <blockquote> + $B%G%#%l%/%H%j$,B8:_$7$J$$$J$i!"$=$N%U%!%$%k$bB8:_$7$J$$(B + $B$+$b$7$l$^$;$s!#(B + </blockquote> + </li> + <li><strong>$B%G%#%l%/%H%j$,(B Apache $B$N%I%-%e%a%s%H%D%j!<Fb$K$"$k$+(B? + </strong> + <blockquote> + $B%j%/%(%9%H$,%5!<%PFb$N$b$N$G$"$l$P!"MW5a$5$l$?%G%#%l%/%H%j$,(B + $B%5!<%P$N%I%-%e%a%s%H%k!<%HG[2<$K$"$j$^$9$+(B? + $B%j%/%(%9%H$,(B UserDir $B$N$b$N$G$"$l$P!"MW5a$5$l$?%G%#%l%/%H%j$,(B + $B%f!<%6$N%I%-%e%a%s%H%k!<%HG[2<$K$"$j$^$9$+(B? + </blockquote> + </li> + <li><strong>$B%G%#%l%/%H%j$rB>$N%f!<%6$,=q$-9~$a$k$h$&$K$J$C$F(B + <em>$B$$$J$$(B</em>$B$+(B?</strong> + <blockquote> + $B%G%#%l%/%H%j$rB>%f!<%6$K3+J|$7$J$$$h$&$K$7$^$9!#(B + $B=jM-%f!<%6$@$1$,$3$N%G%#%l%/%H%j$NFbMF$r2~JQ$G$-$k$h$&$K$7$^$9!#(B + </blockquote> + </li> + <li><strong>$BBP>]$H$J$k%W%m%0%i%`$OB8:_$9$k$+(B?</strong> + <blockquote> + $BB8:_$7$J$1$l$P<B9T$G$-$^$;$s!#(B + </blockquote> + </li> + <li><strong>$BBP>]$H$J$k%W%m%0%i%`%U%!%$%k$,B>%"%+%&%s%H$+$i=q$-9~$a$k$h$&$K$J$C$F(B + <em>$B$$$J$$(B</em>$B$+(B?</strong> + <blockquote> + $B=jM-<T0J30$K$O%W%m%0%i%`$rJQ99$9$k8"8B$OM?$($i$l$^$;$s!#(B + </blockquote> + </li> + <li><strong>$BBP>]$H$J$k%W%m%0%i%`$,(B setuid $B$^$?$O(B setgid + $B$5$l$F(B<em>$B$$$J$$(B</em>$B$+(B?</strong> + <blockquote> + UID/GID $B$r:FEYJQ99$7$F$N%W%m%0%i%`<B9T$O$7$^$;$s(B + </blockquote> + </li> + <li><strong>$BBP>]$H$J$k%f!<%6(B/$B%0%k!<%W$,%W%m%0%i%`$N%f!<%6(B/$B%0%k!<%W$HF1$8$+(B? + </strong> + <blockquote> + $B%f!<%6$,$=$N%U%!%$%k$N=jM-<T$G$9$+(B? + </blockquote> + </li> + <li><strong>$B0BA4$JF0:n$rJ]>Z$9$k$?$a$N4D6-JQ?t%/%j%"$,2DG=$+(B?</strong> + <blockquote> + suEXEC $B$O!"0BA4$J4D6-JQ?t$N%j%9%H(B + ($B$3$l$i$O@_Dj;~$K:n@.$5$l$^$9(B) $BFb$NJQ?t$H$7$F(B + $BEO$5$l$k0BA4$J(B PATH $BJQ?t(B ($B@_Dj;~$K;XDj$5$l$^$9(B) $B$r(B + $B@_Dj$9$k$3$H$G!"%W%m%;%9$N4D6-JQ?t$r%/%j%"$7$^$9!#(B + </blockquote> + </li> + <li><strong>$BBP>]$H$J$k%W%m%0%i%`$r(B exec $B$7$F<B9T$G$-$k$+(B?</strong> + <blockquote> + $B$3$3$G(B suEXEC $B$,=*N;$7!"BP>]$H$J$k%W%m%0%i%`$,3+;O$5$l$^$9!#(B + </blockquote> + </li> +</ol> + +<p align="left"> +$B$3$3$^$G$,(B suEXEC $B$N(B wrapper $B$K$*$1$k%;%-%e%j%F%#%b%G%k$NI8=`E*$JF0:n$G$9!#(B +$B$b$&>/$787=E$K(B CGI/SSI $B@_7W$K$D$$$F$N?7$7$$@)8B$d5,Dj$r(B +$B<h$jF~$l$k$3$H$b$G$-$^$9$,!"(BsuEXEC $B$O%;%-%e%j%F%#$KCm0U$7$F(B +$B?5=E$K>/$7$:$D3+H/$5$l$F$-$^$7$?!#(B +</p> + +<p align="left"> +$B$3$N%;%-%e%j%F%#%b%G%k$rMQ$$$F(B +$B%5!<%P@_Dj;~$K$I$N$h$&$K5v$9$3$H$r@)8B$9$k$+!"(B +$B$^$?!"(BsuEXEC $B$rE,@Z$K@_Dj$9$k$H$I$N$h$&$J%;%-%e%j%F%#>e$N(B +$B4m81$rHr$1$i$l$k$+$K4X$9$k$h$j>\$7$$>pJs$K$D$$$F$O!"(B +<a href="#jabberwock">"$B$H$+$2$KCm0U(B" (Beware the Jabberwock)</a> + $B$N>O$r;2>H$7$F$/$@$5$$!#(B +</p> + +<p align="center"> +<strong><a href="suexec.html">$BL\<!$KLa$k(B</a></strong> +</p> + +<h3><a name="install">suEXEC $B$N@_Dj$H%$%s%9%H!<%k(B</a></h3> +<p align="left"> +$B$3$3$+$i3Z$7$/$J$j$^$9!#(BApache 1.2 $B$"$k$$$O(B <code>"src/Configure"</code> +$B%9%/%j%W%H$G(B Apache 1.3 $B$r@_Dj$9$k$J$i!"(BsuEXEC $B%X%C%@%U%!%$%k$rJT=8$7$F(B +$B%P%$%J%j$rE,@Z$J>l=j$K<j:n6H$G%$%s%9%H!<%k$7$J$1$l$P$J$j$^$;$s!#(B +$B$3$N=hM}$K$D$$$F$O(B <a href="suexec_1_2.html">$BJL$NJ8=q(B</a>$B$K(B +$B5-:\$5$l$F$$$^$9!#0J2<$N>O$G$O!"(BAutoConf-style $B%$%s%?%U%'!<%9(B +(APACI) $B$r;H$C$?(B Apache 1.3 $B$G$N@_Dj$H%$%s%9%H!<%k$K(B +$B$D$$$F=R$Y$F$$$^$9!#(B +</p> + +<p align="left"> +<strong>APACI $B$N(B suEXEC $B@_Dj%*%W%7%g%s(B</strong><br> +</p> + +<dl> +<dt><code>--enable-suexec</code> +<dd>$B$3$N%*%W%7%g%s$O!"%G%U%)%k%H$G$O%$%s%9%H!<%k$5$l$:!"M-8z$K$O$J$i$J$$(B + suEXEC $B5!G=$rM-8z$K$7$^$9!#(BsuEXEC $B$r;H$&$h$&$K(B APACI $B$K(B + $BMW5a$9$k$K$O!"(B--enable-suexec $B%*%W%7%g%s$K$"$o$;$F(B + $B>/$J$/$H$b0l$D$O(B --suexec-xxxxx $B%*%W%7%g%s$,;XDj(B + $B$5$l$J$1$l$P$J$j$^$;$s!#(B +<dt><code>--suexec-caller=<em>UID</em></code> +<dd>Apache $B$rDL>oF0:n$5$;$k(B + <a href="mod/core.html#user">$B%f!<%6L>(B</a>$B$r;XDj$7$^$9!#(B + $B$3$N%f!<%6$@$1$,(B suexec $B$N<B9T$r5v2D$5$l$?%f!<%6$K$J$j$^$9!#(B +<dt><code>--suexec-docroot=<em>DIR</em></code> +<dd>Apache $B$N%I%-%e%a%s%H%k!<%H$r@_Dj$7$^$9!#(B + $B$3$l$,(B suEXEC $B$NF0:n$G;HMQ$9$k(B + $BM#0l$N%G%#%l%/%H%j3,AX$K$J$j$^$9(B (UserDir $B$N;XDj$OJL(B)$B!#(B + $B%G%U%)%k%H$G$O(B --datedir $B$K(B "/htdocs" $B$H$$$&%5%U%#%C%/%9$r(B + $B$D$1$?$b$N$G$9!#(B"<code>--datadir=/home/apache</code>" + $B$H$7$F@_Dj$9$k$H!"(B + suEXEC wrapper $B$K$H$C$F(B "/home/apache/htdocs" $B$,%I%-%e%a%s%H(B + $B%k!<%H$H$7$F;H$o$l$^$9!#(B +<dt><code>--suexec-logfile=<em>FILE</em></code> +<dd>suEXEC $B$N=hM}$H%(%i!<$,5-O?$5$l$k%U%!%$%kL>$r;XDj$7$^$9!#(B + ($B4F::$d%G%P%C%0L\E*$KM-MQ(B) + $B%G%U%)%k%H$G$O%m%0%U%!%$%k$O(B "suexec_log" $B$H$$$&L>A0$G!"(B + $BI8=`$N%m%0%U%!%$%k%G%#%l%/%H%j(B (--logfiledir) $B$KCV$+$l$^$9!#(B +<dt><code>--suexec-userdir=<em>DIR</em></code> +<dd>suEXEC $B$,%"%/%;%9$r5v$5$l$k%f!<%6%[!<%`%G%#%l%/%H%jG[2<$N(B + $B%5%V%G%#%l%/%H%j$r;XDj$7$^$9!#$3$N%G%#%l%/%H%j0J2<$NA4<B9T(B + $B%U%!%$%k$O!"(B"$B0BA4$J(B" $B%W%m%0%i%`$K$J$k$h$&!"(BsuEXEC $B$,(B + $B$=$N%f!<%6$H$7$F<B9T$G$-$k$h$&$K$7$^$9!#(B + "$BC1=c$J(B" UserDir $B%G%#%l%/%F%#%V$r;H$C$F$$$k>l9g(B + ($B$9$J$o$A(B "*" $B$r4^$^$J$$$b$N(B)$B!"$3$l$HF1$8CM$r@_Dj$9$Y$-$G$9!#(B + Userdir $B%G%#%l%/%F%#%V$,$=$N%f!<%6$N%Q%9%o!<%I%U%!%$%kFb$N(B + $B%[!<%`%G%#%l%/%H%j$HF1$8>l=j$r;X$7$F$$$J$1$l$P!"(B + suEXEC $B$OE,@Z$KF0:n$7$^$;$s!#(B + $B%G%U%)%k%H$O(B "public_html" $B$G$9!#(B + <br> + $B3F(B UserDir $B$,0[$J$C$?2>A[%[%9%H$r@_Dj$7$F$$$k>l9g!"(B + $B$=$l$i$rA4$F0l$D$N?F%G%#%l%/%H%j$K4^$a$F!"$=$N?F%G%#%l%/%H%j$N(B + $BL>A0$r$3$3$G;XDj$9$kI,MW$,$"$j$^$9!#(B + <strong>$B$3$N$h$&$K;XDj$5$l$J$1$l$P(B + "~userdir" cgi $B$X$N%j%/%(%9%H$,F0:n$7$^$;$s!#(B</strong> +<dt><code>--suexec-uidmin=<em>UID</em></code> +<dd>suEXEC $B$NBP>]%f!<%6$H$7$F5v$5$l$k(B UID $B$N:G>.CM$r;XDj$7$^$9!#(B + $BBgDq$N%7%9%F%`$G$O(B 500 $B$+(B 100 $B$,0lHLE*$G$9!#(B + $B%G%U%)%k%HCM$O(B 100 $B$G$9!#(B +<dt><code>--suexec-gidmin=<em>GID</em></code> +<dd>suEXEC $B$NBP>]%0%k!<%W$H$7$F5v$5$l$k(B GID $B$N:G>.CM$r;XDj$7$^$9!#(B + $BBgDq$N%7%9%F%`$G$O(B 100 $B$,0lHLE*$J$N$G!"%G%U%)%k%HCM$H$7$F$b(B 100 $B$,;H$o$l$F$$$^$9!#(B +<dt><code>--suexec-safepath=<em>PATH</em></code> +<dd>CGI $B<B9T%U%!%$%k$KEO$5$l$k0BA4$J(B PATH $B4D6-JQ?t$G$9!#(B + $B%G%U%)%k%HCM$O(B "/usr/local/bin:/usr/bin:/bin" $B$G$9!#(B +</dl> + +<p align="left"> +<strong>suEXEC $B@_Dj$N3NG'(B</strong><br> +suEXEC wrapper $B$r%3%s%Q%$%k$7$F%$%s%9%H!<%k$9$kA0$K!"(B +$B@_DjFbMF$r(B --layout $B%*%W%7%g%s$G3NG'$G$-$^$9!#(B +<br> +$B=PNONc(B: +</p> + +<pre> + suEXEC setup: + suexec binary: /usr/local/apache/sbin/suexec + document root: /usr/local/apache/share/htdocs + userdir suffix: public_html + logfile: /usr/local/apache/var/log/suexec_log + safe path: /usr/local/bin:/usr/bin:/bin + caller ID: www + minimum user ID: 100 + minimum group ID: 100 +</pre> + +<p align="left"> +<strong>suEXEC wrapper $B$N%3%s%Q%$%k$H%$%s%9%H!<%k(B</strong><br> +--enable-suexec $B%*%W%7%g%s$G(B suEXEC $B5!G=$rM-8z$K$9$k$H!"(B +"make" $B%3%^%s%I$r<B9T$7$?;~$K(B suEXEC $B$N%P%$%J%j(B (Apache $B<+BN$b(B) $B$,(B +$B<+F0E*$K:n@.$5$l$^$9!#(B +<br> +$B$9$Y$F$N9=@.MWAG$,:n@.$5$l$k$H!"$=$l$i$N%$%s%9%H!<%k$K$O(B + "make install" $B%3%^%s%I$,<B9T$G$-$^$9!#%P%$%J%j%$%a!<%8$N(B "suexec" $B$O(B +--sbindir $B%*%W%7%g%s$G;XDj$5$l$?%G%#%l%/%H%j$K%$%s%9%H!<%k$5$l$^$9!#(B +$B%G%U%)%k%H$N>l=j$O(B "/usr/local/apache/sbin/suexec" $B$G$9!#(B +<br> +$B%$%s%9%H!<%k;~$K$O(B <em><strong>root</em></strong> $B8"8B$,(B +$BI,MW$J$N$GCm0U$7$F$/$@$5$$!#(B +wrapper $B$,%f!<%6(B ID $B$r@_Dj$9$k$?$a$K!"(B +$B=jM-<T(B <em><code>root</em></code> $B$G$N(B +$B%;%C%H%f!<%6(B ID $B%S%C%H$r$=$N%U%!%$%k$N%b!<%I$K(B +$B@_Dj$7$J$1$l$P$J$j$^$;$s!#(B +</p> + +<p align="center"> +<strong><a href="suexec.html">$BL\<!$KLa$k(B</a></strong> +</p> + +<h3><a name="enable">suEXEC $B$NM-8z2=$HL58z2=(B</a></h3> +<p align="left"> +$B5/F0;~$K!"(BApache $B$O(B "sbin" $B%G%#%l%/%H%j$G(B "suexec" $B$rC5$7$^$9(B + ($B%G%U%)%k%H$O(B "/usr/local/apache/sbin/suexec") $B!#(B +$BE,@Z$K@_Dj$5$l$?(B suEXEC $B$,$_$D$+$k$H!"%(%i!<%m%0$K(B +$B0J2<$N%a%C%;!<%8$,=PNO$5$l$^$9!#(B +</p> + +<pre> + [notice] suEXEC mechanism enabled (wrapper: <em>/path/to/suexec</em>) +</pre> + +<p> +$B%5!<%P5/F0;~$K$3$N%a%C%;!<%8$,=P$J$$>l9g!"BgDq$O%5!<%P$,(B +$BA[Dj$7$?>l=j$G(B wrapper $B%W%m%0%i%`$,8+$D$+$i$J$+$C$?$+!"(B +<em>setuid root</em> $B$H$7$F%$%s%9%H!<%k$5$l$F$$$J$$$+$G$9!#(B +<br> +suEXEC $B$N;EAH$_$r;HMQ$9$k$N$,=i$a$F$G!"(BApache $B$,4{$KF0:nCf(B +$B$G$"$l$P!"(BApache $B$r(B kill $B$7$F!":F5/F0$7$J$1$l$P$J$j$^$;$s!#(B +HUP $B%7%0%J%k$d(B USR1 $B%7%0%J%k$K$h$kC1=c$J:F5/F0$G$OIT==J,$G$9!#(B +<br> +suEXEC $B$rL58z$K$9$k>l9g$O!"(B"suexec" $B%U%!%$%k$r:o=|$7$F$+$i(B +Apache $B$r(B kill $B$7$F:F5/F0$7$^$9!#(B +</p> + +<p align="center"> +<strong><a href="suexec.html">$BL\<!$KLa$k(B</a></strong> +</p> + +<h3><a name="usage">suEXEC $B$N;HMQ(B</a></h3> +<p align="left"> +<strong>$B2>A[%[%9%H(B:</strong><br> +suEXEC wrapper $B$N;H$$J}$H$7$F!"(B +<a href="mod/core.html#virtualhost">$B2>A[%[%9%H(B</a>$B@_Dj$G$N(B +<a href="mod/core.html#user">User</a> $B%G%#%l%/%F%#%V$H(B +<a href="mod/core.html#group">Group</a> $B%G%#%l%/%F%#%V(B +$B$rDL$7$?$b$N$,$"$j$^$9!#$3$l$i$N%G%#%l%/%F%#%V$r(B +$B%a%$%s%5!<%P$N%f!<%6(B ID $B$H0[$J$k$b$N$K$9$k$H!"(BCGI $B%j%=!<%9(B +$B$X$N$9$Y$F$N%j%/%(%9%H$O!"$=$N(B <code><VirtualHost></code> $B$G(B +$B;XDj$5$l$?(B <em>User</em> $B$H(B <em>Group</em> $B$H$7$F<B9T$5$l$^$9!#(B +<code><VirtualHost></code> $B$G$=$l$i$N(B +$B%G%#%l%/%F%#%V$N$I$A$i$+!"$^$?$ON>J}$,;XDj$5$l$F$$$J$$>l9g!"(B +$B%a%$%s%5!<%P$N%f!<%6(B ID $B$,A[Dj$5$l$^$9!#(B +<p> +<strong>$B%f!<%6%G%#%l%/%H%j(B:</strong><br> +suEXEC wrapper $B$O!"%j%/%(%9%H@h$N%f!<%6$H$7$F(B CGI $B$r<B9T$9$k$?$a$K$b(B +$B;H$($^$9!#$3$l$O4|BT$9$k<B9T8"8B$N%f!<%6(B ID $B$NA0$K!"(B +"<strong><code>~</code></strong>" $BJ8;z$r(B +$BCV$/$3$H$G<B8=$5$l$^$9!#$3$N5!G=$rF0:n$5$;$k$?$a$KI,MW$J$3$H$O!"(B +CGI $B$r$=$N%f!<%6$G<B9T$G$-$k$3$H!"$=$N%9%/%j%W%H$,(B +$B>e5-$N(B<a href="#model">$B%;%-%e%j%F%#8!::(B</a>$B$r(B +$B%Q%9$G$-$k$3$H$G$9!#(B + +<p align="center"> +<strong><a href="suexec.html">$BL\<!$KLa$k(B</a></strong> +</p> + +<h3><a name="debug">suEXEC $B$N%G%P%C%0(B</a></h3> +<p align="left"> +suEXEC wrapper $B$O!">e5-$G=R$Y$?(B --suexec-logfile $B%*%W%7%g%s$G(B +$B;XDj$5$l$?%U%!%$%k$K%m%0>pJs$r5-O?$7$^$9!#(B +wrapper $B$rE,@Z$K@_Dj!"%$%s%9%H!<%k$G$-$F$$$k$H;W$&>l9g!"(B +$B$I$3$GLB$C$F$$$k$+8+$h$&$H$9$k$J$i$3$N%m%0$H%5!<%P$N(B +$B%(%i!<%m%0$r8+$k$H$h$$$G$7$g$&!#(B +</p> + +<p align="center"> +<strong><a href="suexec.html">$BL\<!$KLa$k(B</a></strong> +</p> + +<h3> +<a name="jabberwock">$B$H$+$2$KCm0U(B: $B7Y9p$H;vNc(B</a> +</h3> +<p align="left"> +<strong>$BCm0U(B!</strong> $B$3$N>O$O40A4$G$O$"$j$^$;$s!#(B +$B$3$N>O$N:G?72~D{HG$K$D$$$F$O!"(B +Apache $B%0%k!<%W$N(B<a href="http://www.apache.org/docs/suexec.html"> +$B%*%s%i%$%s%I%-%e%a%s%H(B</a>$BHG$r;2>H$7$F$/$@$5$$!#(B +</p> + +<p align="left"> +$B%5!<%P$N@_Dj$K@)8B$r$b$&$1$k(B wrapper $B$K$D$$$F!"(B +$B$$$/$D$+6=L#?<$$E@$,$"$j$^$9!#(BsuEXEC $B$K4X$9$k(B "$B%P%0(B" $B$r(B +$BJs9p$9$kA0$K$3$l$i$r3NG'$7$F$/$@$5$$!#(B +<ul> + <li><strong>suEXEC $B$N6=L#?<$$E@(B</strong></li> + <li>$B3,AX9=B$$N@)8B(B + <blockquote> + $B%;%-%e%j%F%#$H8zN($NM}M3$+$i!"(BsuEXEC $B$NA4$F$N%j%/%(%9%H$O(B + $B2>A[%[%9%H$X$N%j%/%(%9%H$K$*$1$k:G>e0L$N%I%-%e%a%s%H%k!<%HFb$+!"(B + $B%f!<%6%G%#%l%/%H%j$X$N%j%/%(%9%H$K$*$1$k8D!9$N%f!<%6$N:G>e0L$N(B + $B%I%-%e%a%s%H%k!<%HFb$K;D$i$J$1$l$P$J$j$^$;$s!#(B + $BNc$($P!";M$D$N2>A[%[%9%H$r@_Dj$7$F$$$k>l9g!"(B + $B2>A[%[%9%H$N(B suEXEC $B$KM-Mx$J$h$&$K!"(B + $B%a%$%s$N(B Apache $B%I%-%e%a%s%H3,AX$N30B&$K(B + $BA4$F$N2>A[%[%9%H$N%I%-%e%a%s%H%k!<%H$r9=C[$9$kI,MW$,$"$j$^$9!#(B + ($BNc$O8eF|5-:\(B) + </blockquote> + </li> + <li>suEXEC $B$N(B PATH $B4D6-JQ?t(B + <blockquote> + $B$3$l$rJQ99$9$k$N$O4m81$G$9!#$3$N;XDj$K4^$^$l$k3F%Q%9$,(B + $B?.Mj$G$-$k%G%#%l%/%H%j$G$"$k$3$H$r3NG'$7$F$/$@$5$$!#(B + $B@$3&$+$i$N%"%/%;%9$K$h$j!"C/$+$,%[%9%H>e$G%H%m%$$NLZGO(B + $B$r<B9T$G$-$k$h$&$K$O$7$?$/$J$$$G$7$g$&!#(B + </blockquote> + </li> + <li>suEXEC $B%3!<%I$N2~B$(B + <blockquote> + $B7+$jJV$7$^$9$,!"2?$r$d$m$&$H$7$F$$$k$+GD0.$;$:$K$3$l$r$d$k$H(B + <strong>$BBg$-$JLdBj(B</strong>$B$r0z$-5/$3$7$+$M$^$;$s!#(B + $B2DG=$J8B$jHr$1$F$/$@$5$$!#(B + </blockquote> + </li> +</ul> + +<p align="center"> +<strong><a href="suexec.html">$BL\<!$KLa$k(B</a></strong> +</p> + + <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + +</body> +</html> diff --git a/usr.sbin/httpd/htdocs/manual/vhosts/name-based.html.en b/usr.sbin/httpd/htdocs/manual/vhosts/name-based.html.en new file mode 100644 index 00000000000..0356198a023 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/vhosts/name-based.html.en @@ -0,0 +1,243 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <title>Name-based Virtual Hosts</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + + + <h1 align="CENTER">Name-based Virtual Host Support</h1> + +<p>This document describes when and how to use name-based virtual hosts.</p> + +<ul> +<li><a href="#namevip">Name-based vs. IP-based Virtual Hosts</a></li> +<li><a href="#using">Using Name-based Virtual Hosts</a></li> +<li><a href="#compat">Compatibility With Older Browsers</a></li> +</ul> + +<p>See also: <a href="examples.html">Virtual Host examples for common +setups</a>, <a href="ip-based.html">IP-based Virtual Host Support</a>, +<a href="details.html">An In-Depth Discussion of Virtual Host +Matching</a>, and <a href="mass.html">Dynamically configured mass +virtual hosting</a>.</p> + +<hr /> + +<h2><a name="namevip">Name-based vs. IP-based Virtual Hosts</a></h2> + +<p>IP-based virtual hosts use the IP address of the connection to +determine the correct virtual host to serve. Therefore you need to +have a separate IP address for each host. With name-based virtual +hosting, the server relies on the client to report the hostname as +part of the HTTP headers. Using this technique, many different hosts +can share the same IP address.</p> + +<p>Name-based virtual hosting is usually simpler, since you need +only configure your DNS server to map each hostname to the correct +IP address and then configure the Apache HTTP Server to recognize +the different hostnames. Name-based virtual hosting also eases +the demand for scarce IP addresses. Therefore you should use +name-based virtual hosting unless there is a specific reason to +choose IP-based virtual hosting. Some reasons why you might consider +using IP-based virtual hosting:</p> + +<ul> + +<li>Some ancient clients are not compatible with name-based virtual +hosting. For name-based virtual hosting to work, the client must send +the HTTP Host header. This is required by HTTP/1.1, and is +implemented by all modern HTTP/1.0 browsers as an extension. If you +need to support obsolete clients and still use name-based virtual +hosting, a possible technique is discussed at the end of this +document.</li> + +<li>Name-based virtual hosting cannot be used with SSL secure servers +because of the nature of the SSL protocol.</li> + +<li>Some operating systems and network equipment implement bandwidth +management techniques that cannot differentiate between hosts unless +they are on separate IP addresses.</li> + +</ul> + +<h2><a name="using">Using Name-based Virtual Hosts</a></h2> + +<table border="1"> +<tr><td align="top"> +<strong>Related Directives</strong><br><br> + +<a href="../mod/core.html#documentroot">DocumentRoot</a><br /> +<a href="../mod/core.html#namevirtualhost">NameVirtualHost</a><br /> +<a href="../mod/core.html#serveralias">ServerAlias</a><br /> +<a href="../mod/core.html#servername">ServerName</a><br /> +<a href="../mod/core.html#serverpath">ServerPath</a><br /> +<a href="../mod/core.html#virtualhost">VirtualHost</a><br /> +</td></tr></table> + +<p>To use name-based virtual hosting, you must designate the IP +address (and possibly port) on the server that will be accepting +requests for the hosts. This is configured using the <a +href="../mod/core.html#namevirtualhost">NameVirtualHost</a> directive. +In the normal case where any and all IP addresses on the server should +be used, you can use <code>*</code> as the argument to +<code>NameVirtualHost</code>. (<code>NameVirtualHost *</code> will +work only in version 1.3.13 and later.) Note that mentioning an IP +address in a <code>NameVirtualHost</code> directive does not +automatically make the server listen to that IP address. See <a +href="../bind.html">Setting which addresses and ports Apache uses</a> +for more details. In addition, any IP address specified here must be +associated with a network interface on the server.</p> + +<p>The next step is to create a <a +href="../mod/core.html#virtualhost"><VirtualHost></a> block for +each different host that you would like to serve. The argument to the +<code><VirtualHost></code> directive should be the same as the +argument to the <code>NameVirtualHost</code> directive (ie, an IP +address, or <code>*</code> for all addresses). Inside each +<code><VirtualHost></code> block, you will need at minimum a <a +href="../mod/core.html#servername">ServerName</a> directive to +designate which host is served and a <a +href="../mod/core.html#documentroot">DocumentRoot</a> directive to +show where in the filesystem the content for that host lives.</p> + +<p>For example, suppose that both <samp>www.domain.tld</samp> and +<samp>www.otherdomain.tld</samp> point at an IP address +that the server is listening to. Then you simply add the following +to <code>httpd.conf</code>:</p> + +<pre> + NameVirtualHost * + + <VirtualHost *> + ServerName www.domain.tld + DocumentRoot /www/domain + </VirtualHost> + + <VirtualHost *> + ServerName www.otherdomain.tld + DocumentRoot /www/otherdomain + </VirtualHost> +</pre> + +<p>You can alternatively specify an explicit IP address in place of +the * in both the <code>NameVirtualHost</code> and +<code><VirtualHost></code> directives. The IP address is +required in version 1.3.12 and earlier.</p> + +<p>Many servers want to be accessible by more than one name. This is +possible with the <a +href="../mod/core.html#serveralias"><code>ServerAlias</code></a> +directive, placed inside the <VirtualHost> section. For +example if you add this to the first <VirtualHost> block +above</p> + +<blockquote><code> +ServerAlias domain.tld *.domain.tld +</code></blockquote> + +<p>then requests for all hosts in the <code>domain.tld</code> domain +will be served by the <code>www.domain.tld</code> virtual host. The +wildcard characters * and ? can be used to match names. Of course, +you can't just make up names and place them in <code>ServerName</code> +or <code>ServerAlias</code>. You must first have your DNS server +properly configured to map those names to an IP address associated +with your server.</p> + +<p>Finally, you can fine-tune the configuration of the virtual hosts +by placing other directives inside the +<code><VirtualHost></code> containers. Most directives can be +placed in these containers and will then change the configuration only +of the relevant virtual host. To find out if a particular directive +is allowed, check the <a +href="../mod/directive-dist.html#Context">Context</a> of the +directive. Configuration directives set in the <em>main server +context</em> (outside any <code><VirtualHost></code> container) +will be used only if they are not overriden by the virtual host +settings.</p> + +<p>Now when a request arrives, the server will first check if it is +using an IP address that matches the <code>NameVirtualHost</code>. If +it is, then it will look at each <code><VirtualHost></code> +section with a matching IP address and try to find one where the +<code>ServerName</code> or <code>ServerAlias</code> matches the +requested hostname. If it finds one, then it uses the configuration +for that server. If no matching virtual host is found, then +<strong>the first listed virtual host</strong> that matches the IP +address will be used.</p> + +<p>As a consequence, the first listed virtual host is the +<em>default</em> virtual host. The <code>DocumentRoot</code> from the +<em>main server</em> will <strong>never</strong> be used when an IP +address matches the <code>NameVirtualHost</code> directive. If you +would like to have a special configuration for requests that do not +match any particular virtual host, simply put that configuration in a +<code><VirtualHost></code> container and list it first in the +configuration file.</p> + +<h2><a name="compat">Compatibility with Older Browsers</a></h2> + + <p>As mentioned earlier, there are some clients + who do not send the required data for the name-based virtual + hosts to work properly. These clients will always be sent the + pages from the first virtual host listed for that IP address + (the <cite>primary</cite> name-based virtual host).</p> + + <p>There is a possible workaround with the <a + href="../mod/core.html#serverpath"><code>ServerPath</code></a> + directive, albeit a slightly cumbersome one:</p> + + <p>Example configuration:</p> +<pre> + NameVirtualHost 111.22.33.44 + + <VirtualHost 111.22.33.44> + ServerName www.domain.tld + ServerPath /domain + DocumentRoot /web/domain + </VirtualHost> +</pre> + + <p>What does this mean? It means that a request for any URI + beginning with "<samp>/domain</samp>" will be served from the + virtual host <samp>www.domain.tld</samp> This means that the + pages can be accessed as + <code>http://www.domain.tld/domain/</code> for all clients, + although clients sending a <samp>Host:</samp> header can also + access it as <code>http://www.domain.tld/</code>.</p> + + <p>In order to make this work, put a link on your primary + virtual host's page to + <samp>http://www.domain.tld/domain/</samp> Then, in the virtual + host's pages, be sure to use either purely relative links + (<em>e.g.</em>, "<samp>file.html</samp>" or + "<samp>../icons/image.gif</samp>" or links containing the + prefacing <samp>/domain/</samp> (<em>e.g.</em>, + "<samp>http://www.domain.tld/domain/misc/file.html</samp>" or + "<samp>/domain/misc/file.html</samp>").</p> + + <p>This requires a bit of discipline, but adherence to these + guidelines will, for the most part, ensure that your pages will + work with all browsers, new and old.</p> + + <p>See also: <a href="examples.html#serverpath">ServerPath + configuration example</a></p> + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/vhosts/name-based.html.html b/usr.sbin/httpd/htdocs/manual/vhosts/name-based.html.html new file mode 100644 index 00000000000..896c07d8204 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/vhosts/name-based.html.html @@ -0,0 +1,237 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <title>Name-based Virtual Hosts</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Name-based Virtual Host Support</h1> + +<p>This document describes when and how to use name-based virtual hosts.</p> + +<ul> +<li><a href="#namevip">Name-based vs. IP-based Virtual Hosts</a></li> +<li><a href="#using">Using Name-based Virtual Hosts</a></li> +<li><a href="#compat">Compatibility With Older Browsers</a></li> +</ul> + +<p>See also: <a href="examples.html">Virtual Host examples for common +setups</a>, <a href="ip-based.html">IP-based Virtual Host Support</a>, +<a href="details.html">An In-Depth Discussion of Virtual Host +Matching</a>, and <a href="mass.html">Dynamically configured mass +virtual hosting</a>.</p> + +<hr /> + +<h2><a name="namevip">Name-based vs. IP-based Virtual Hosts</a></h2> + +<p>IP-based virtual hosts use the IP address of the connection to +determine the correct virtual host to serve. Therefore you need to +have a separate IP address for each host. With name-based virtual +hosting, the server relies on the client to report the hostname as +part of the HTTP headers. Using this technique, many different hosts +can share the same IP address.</p> + +<p>Name-based virtual hosting is usually simpler, since you need +only configure your DNS server to map each hostname to the correct +IP address and then configure the Apache HTTP Server to recognize +the different hostnames. Name-based virtual hosting also eases +the demand for scarce IP addresses. Therefore you should use +name-based virtual hosting unless there is a specific reason to +choose IP-based virtual hosting. Some reasons why you might consider +using IP-based virtual hosting:</p> + +<ul> + +<li>Some ancient clients are not compatible with name-based virtual +hosting. For name-based virtual hosting to work, the client must send +the HTTP Host header. This is required by HTTP/1.1, and is +implemented by all modern HTTP/1.0 browsers as an extension. If you +need to support obsolete clients and still use name-based virtual +hosting, a possible technique is discussed at the end of this +document.</li> + +<li>Name-based virtual hosting cannot be used with SSL secure servers +because of the nature of the SSL protocol.</li> + +<li>Some operating systems and network equipment implement bandwidth +management techniques that cannot differentiate between hosts unless +they are on separate IP addresses.</li> + +</ul> + +<h2><a name="using">Using Name-based Virtual Hosts</a></h2> + +<table border="1"> +<tr><td align="top"> +<strong>Related Directives</strong><br><br> + +<a href="../mod/core.html#documentroot">DocumentRoot</a><br /> +<a href="../mod/core.html#namevirtualhost">NameVirtualHost</a><br /> +<a href="../mod/core.html#serveralias">ServerAlias</a><br /> +<a href="../mod/core.html#servername">ServerName</a><br /> +<a href="../mod/core.html#serverpath">ServerPath</a><br /> +<a href="../mod/core.html#virtualhost">VirtualHost</a><br /> +</td></tr></table> + +<p>To use name-based virtual hosting, you must designate the IP +address (and possibly port) on the server that will be accepting +requests for the hosts. This is configured using the <a +href="../mod/core.html#namevirtualhost">NameVirtualHost</a> directive. +In the normal case where any and all IP addresses on the server should +be used, you can use <code>*</code> as the argument to +<code>NameVirtualHost</code>. (<code>NameVirtualHost *</code> will +work only in version 1.3.13 and later.) Note that mentioning an IP +address in a <code>NameVirtualHost</code> directive does not +automatically make the server listen to that IP address. See <a +href="../bind.html">Setting which addresses and ports Apache uses</a> +for more details. In addition, any IP address specified here must be +associated with a network interface on the server.</p> + +<p>The next step is to create a <a +href="../mod/core.html#virtualhost"><VirtualHost></a> block for +each different host that you would like to serve. The argument to the +<code><VirtualHost></code> directive should be the same as the +argument to the <code>NameVirtualHost</code> directive (ie, an IP +address, or <code>*</code> for all addresses). Inside each +<code><VirtualHost></code> block, you will need at minimum a <a +href="../mod/core.html#servername">ServerName</a> directive to +designate which host is served and a <a +href="../mod/core.html#documentroot">DocumentRoot</a> directive to +show where in the filesystem the content for that host lives.</p> + +<p>For example, suppose that both <samp>www.domain.tld</samp> and +<samp>www.otherdomain.tld</samp> point at an IP address +that the server is listening to. Then you simply add the following +to <code>httpd.conf</code>:</p> + +<pre> + NameVirtualHost * + + <VirtualHost *> + ServerName www.domain.tld + DocumentRoot /www/domain + </VirtualHost> + + <VirtualHost *> + ServerName www.otherdomain.tld + DocumentRoot /www/otherdomain + </VirtualHost> +</pre> + +<p>You can alternatively specify an explicit IP address in place of +the * in both the <code>NameVirtualHost</code> and +<code><VirtualHost></code> directives. The IP address is +required in version 1.3.12 and earlier.</p> + +<p>Many servers want to be accessible by more than one name. This is +possible with the <a +href="../mod/core.html#serveralias"><code>ServerAlias</code></a> +directive, placed inside the <VirtualHost> section. For +example if you add this to the first <VirtualHost> block +above</p> + +<blockquote><code> +ServerAlias domain.tld *.domain.tld +</code></blockquote> + +<p>then requests for all hosts in the <code>domain.tld</code> domain +will be served by the <code>www.domain.tld</code> virtual host. The +wildcard characters * and ? can be used to match names. Of course, +you can't just make up names and place them in <code>ServerName</code> +or <code>ServerAlias</code>. You must first have your DNS server +properly configured to map those names to an IP address associated +with your server.</p> + +<p>Finally, you can fine-tune the configuration of the virtual hosts +by placing other directives inside the +<code><VirtualHost></code> containers. Most directives can be +placed in these containers and will then change the configuration only +of the relevant virtual host. To find out if a particular directive +is allowed, check the <a +href="../mod/directive-dist.html#Context">Context</a> of the +directive. Configuration directives set in the <em>main server +context</em> (outside any <code><VirtualHost></code> container) +will be used only if they are not overriden by the virtual host +settings.</p> + +<p>Now when a request arrives, the server will first check if it is +using an IP address that matches the <code>NameVirtualHost</code>. If +it is, then it will look at each <code><VirtualHost></code> +section with a matching IP address and try to find one where the +<code>ServerName</code> or <code>ServerAlias</code> matches the +requested hostname. If it finds one, then it uses the configuration +for that server. If no matching virtual host is found, then +<strong>the first listed virtual host</strong> that matches the IP +address will be used.</p> + +<p>As a consequence, the first listed virtual host is the +<em>default</em> virtual host. The <code>DocumentRoot</code> from the +<em>main server</em> will <strong>never</strong> be used when an IP +address matches the <code>NameVirtualHost</code> directive. If you +would like to have a special configuration for requests that do not +match any particular virtual host, simply put that configuration in a +<code><VirtualHost></code> container and list it first in the +configuration file.</p> + +<h2><a name="compat">Compatibility with Older Browsers</a></h2> + + <p>As mentioned earlier, there are some clients + who do not send the required data for the name-based virtual + hosts to work properly. These clients will always be sent the + pages from the first virtual host listed for that IP address + (the <cite>primary</cite> name-based virtual host).</p> + + <p>There is a possible workaround with the <a + href="../mod/core.html#serverpath"><code>ServerPath</code></a> + directive, albeit a slightly cumbersome one:</p> + + <p>Example configuration:</p> +<pre> + NameVirtualHost 111.22.33.44 + + <VirtualHost 111.22.33.44> + ServerName www.domain.tld + ServerPath /domain + DocumentRoot /web/domain + </VirtualHost> +</pre> + + <p>What does this mean? It means that a request for any URI + beginning with "<samp>/domain</samp>" will be served from the + virtual host <samp>www.domain.tld</samp> This means that the + pages can be accessed as + <code>http://www.domain.tld/domain/</code> for all clients, + although clients sending a <samp>Host:</samp> header can also + access it as <code>http://www.domain.tld/</code>.</p> + + <p>In order to make this work, put a link on your primary + virtual host's page to + <samp>http://www.domain.tld/domain/</samp> Then, in the virtual + host's pages, be sure to use either purely relative links + (<em>e.g.</em>, "<samp>file.html</samp>" or + "<samp>../icons/image.gif</samp>" or links containing the + prefacing <samp>/domain/</samp> (<em>e.g.</em>, + "<samp>http://www.domain.tld/domain/misc/file.html</samp>" or + "<samp>/domain/misc/file.html</samp>").</p> + + <p>This requires a bit of discipline, but adherence to these + guidelines will, for the most part, ensure that your pages will + work with all browsers, new and old.</p> + + <p>See also: <a href="examples.html#serverpath">ServerPath + configuration example</a></p> + <!--#include virtual="footer.html" --> + </body> +</html> + + + diff --git a/usr.sbin/httpd/htdocs/manual/vhosts/name-based.html.ja.jis b/usr.sbin/httpd/htdocs/manual/vhosts/name-based.html.ja.jis new file mode 100644 index 00000000000..8b41b008e0b --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/vhosts/name-based.html.ja.jis @@ -0,0 +1,207 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<HTML><HEAD> +<!-- English revision: 1.15 --> +<TITLE>Apache $B$N%M!<%`%Y!<%9$N%P!<%A%c%k%[%9%H(B</TITLE> +</HEAD> + +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> +<BODY + BGCOLOR="#FFFFFF" + TEXT="#000000" + LINK="#0000FF" + VLINK="#000080" + ALINK="#FF0000" +> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + +<H1 ALIGN="CENTER">Apache $B$N%M!<%`%Y!<%9$N%P!<%A%c%k%[%9%H$N%5%]!<%H(B</H1> + +<STRONG>$B;29M(B:</STRONG> +<A HREF="ip-based.html">IP $B%Y!<%9$N%P!<%A%c%k%[%9%H$N%5%]!<%H(B</A> + +<HR> + +<H2>$B%M!<%`%Y!<%9$H(B IP $B%Y!<%9$N%P!<%A%c%k%[%9%H$NHf3S(B</H2> + +<P>$B=i4|$N%P!<%8%g%s$N(B HTTP $B$G$O(B ($BB>$NB?$/$N%W%m%H%3%k!"Nc$($P(B FTP $B$HF1MM(B) +$B0l$D$N%5!<%P>e$G$N%P!<%A%c%k%[%9%H$4$H$K0[$J$C$?(B IP $B%"%I%l%9$,I,MW$G$7$?!#(B +$B$$$/$D$+$N%W%i%C%H%U%)!<%`$G$O!"(B +$B$3$l$,<B9T2DG=$J%P!<%A%c%k%[%9%H$N?t$r8BDj$7$F$7$^$&$3$H$K$J$j$^$7$?!#(B +$B$^$?!"(BIP $B%"%I%l%9$N?t$K$O8B$j$,$"$k$H$$$&$3$H$K$D$$$F$N7|G0$+$i!"(B +$B%l%8%9%H%i(B (ARIN, RIPE, APNIC) $B$O%P!<%A%c%k%[%9%H$4$H$K(B +IP $B$r3d$jEv$F$k$h$&$J$3$H$OHr$1$k$h$&6/$/MW@A$7$F$$$^$9!#(B</P> + +<P><CODE>HTTP/1.1</CODE> $B%W%m%H%3%k$d!"(B +<CODE>HTTP/1.0</CODE> $B$G$N0lHLE*$J3HD%$K$O!"(B +$B$I$NL>A0$G%j%/%(%9%H$5$l$F$$$k$N$+$r%5!<%P$,H=JL$9$kJ}K!$,$"$j$^$9!#(B +Apache 1.1 $B0J9_$G$O@N$+$i$N!V%[%9%HL>$4$H$K(B IP $B%"%I%l%9!W$H$$$&J}K!$K2C$($F!"(B +$B$3$N%"%W%m!<%A$b%5%]!<%H$7$F$$$^$9!#(B</P> + +<P>$B%M!<%`%Y!<%9$N%P!<%A%c%k%[%9%H$NMxE@$H$7$F$O!"(B +$B;v<B>eL58B$N?t$N%5!<%P$r1?MQ$G$-$k$H$$$&$3$H!"@_Dj$7MxMQ$9$k$N$,4JC1$J$3$H!"(B +$BDI2C$N%O!<%I%&%'%"$d%=%U%H%&%'%"$,ITMW$J$3$H!"$H$$$&$N$,$"$j$^$9!#(B + +$B$b$C$H$bBg$-$JLdBjE@$H$7$F$O!"(B +$B%/%i%$%"%s%H$O$3$N%W%m%H%3%k$r%5%]!<%H$7$J$1$l$P$$$1$J$$$H$$$&$3$H$G$9!#(B +$B$[$H$s$I$9$Y$F$N%V%i%&%6$G%5%]!<%H$5$l$F$$$^$9$,!"(B +$B%5%]!<%H$7$F$$$J$$%V%i%&%6$b>/$J$$$J$,$i$b0MA3$H$7$FB8:_$7$F$$$^$9!#(B +$B$=$N$?$a$KLdBj$,H/@8$9$k$3$H$,$"$j$^$9!#$3$l$KBP$9$k2r7hJ}K!$K(B +$B$J$jF@$k$b$N$O8e=R$7$^$9!#(B</P> + +<H2>$B%M!<%`%Y!<%9$N%P!<%A%c%k%[%9%H$rMxMQ$9$k(B</H2> + +<P>$B%M!<%`%Y!<%9$N%P!<%A%c%k%[%9%H$rMxMQ$9$k$N$O$H$F$b4JC1$G$9!#(B +$B8+$?L\$K$O=>Mh$N(B IP $B%Y!<%9$NJ}K!$K;w$F$$$^$9!#(B + +IP $B%Y!<%9$H%M!<%`%Y!<%9$N%P!<%A%c%k%[%9%H$N@_Dj$N=EMW$J0c$$$O!"(B +<A HREF="../mod/core.html#namevirtualhost"><CODE>NameVirtualHost</CODE></A> +$B%G%#%l%/%F%#%V$G!"%M!<%`%Y!<%9$N%P!<%A%c%k%[%9%H$N%?!<%2%C%H$H$7$F;H$o$l$k(B +IP $B%"%I%l%9$r;XDj$9$k$H$$$&$3$H$G$9!#(B</P> + +<P>$B$?$H$($P!"(B +<SAMP>www.domain.tld</SAMP> $B$H(B <SAMP>www.otherdomain.tld</SAMP> +$B$NN>J}$,(B <SAMP>111.22.33.44</SAMP> $B$H$$$&(B IP $B%"%I%l%9$r;X$7$F$$$k$H$7$^$7$g$&!#(B + +$B$=$N$h$&$J>l9g$O!"(BApache $B$N@_Dj%U%!%$%k$N0l$D(B +($BDL>o$O(B <CODE>httpd.conf</CODE> $B$+(B <CODE>srm.conf</CODE> $B$N$I$A$i$+(B) $B$K(B +$B0J2<$N$h$&$J%3!<%I$rDI2C$9$k$@$1$G$9(B:</P> + +<PRE> + NameVirtualHost 111.22.33.44 + + <VirtualHost 111.22.33.44> + ServerName www.domain.tld + DocumentRoot /www/domain + </VirtualHost> + + <VirtualHost 111.22.33.44> + ServerName www.otherdomain.tld + DocumentRoot /www/otherdomain + </VirtualHost> +</PRE> + +<P>$B$b$A$m$s!"%G%#%l%/%F%#%V$r(B +<CODE><VirtualHost></CODE> +$B%;%/%7%g%s$KDI2C$9$k$3$H$,$G$-$^$9(B ($B$9$k$Y$-$G$9(B) $B!#(B + +$B$3$l$rF0:n$9$k$?$a$KI,MW$J$3$H$O!"(B +<SAMP>www.domain.tld</SAMP> $B$d(B <SAMP>www.otherdomain.tld</SAMP> +$B$H$$$&L>A0$,(B IP $B%"%I%l%9(B <SAMP>111.22.33.44</SAMP> +$B$r;X$7$F$$$k$+3NG'$9$k$H$$$&$3$H$@$1$G$9!#(B</P> + +<P>$BCm0U(B: <CODE>NameVirtualHost</CODE> $B%G%#%l%/%F%#%V$G(B +IP $B%"%I%l%9$r;XDj$7$?>l9g!"$=$N(B IP $B%"%I%l%9$X$N%j%/%(%9%H$O!"(B +$B>o$K$=$N%j%/%(%9%H$K%^%C%A$9$k(B <VirtualHost> $B$G$N$_=hM}$5$l$^$9!#(B +$B$=$N(B IP $B%"%I%l%9$G$O!V%a%$%s%5!<%P!W$O(B<STRONG>$B7h$7$F(B</STRONG>$B8+$($^$;$s!#(B +$B%P!<%A%c%k%[%9%H$r;H$&$N$G$"$l$P!V%a%$%s%5!<%P!W$rFHN)$7$?%5!<%P$H$7$F;H$&$N$O(B +$B;_$a$k$Y$-$G$9!#$`$7$m!"$=$NItJ,$O$9$Y$F$N%P!<%A%c%k%[%9%H$G6&DL$J@_Dj%G%#%l(B +$B%/%F%#%V$r5-=R$9$k$?$a$K;HMQ$7$F$/$@$5$$!#(B +$B8@$$49$($k$H!"%5!<%P>e$G1?MQ$7$?$$(B<EM>$B$9$Y$F$N(B</EM>$B%5!<%P(B +($B%[%9%HL>(B) $B$K$D$$$F(B <VirtualHost> $B%;%/%7%g%s$rDI2C$9$Y$-$G$9!#(B + +<P>Apache 1.3.13 $B0J9_$G$O!"(B + +<CODE>NameVirtualHost</CODE> $B$N(B IP $B%"%I%l%9$K%o%$%k%I%+!<%I(B <CODE>*</CODE> +$B$r;XDj$G$-$^$9!#$3$N%o%$%k%I%+!<%I$O!"(B +$B$h$j6qBNE*$J%P!<%A%c%k%[%9%H$N%G%#%l%/%F%#%V$G%+%P!<$5$l$F$$$J$$G$0U$N(B +IP $B%"%I%l%9$K%^%C%A$7$^$9!#(B +$B$3$l$O!"A0$b$C$F(B IP $B%"%I%l%9$rCN$k$3$H$N$G$-$J$$%5!<%P$r@_Dj$9$k:]$KLr(B +$B$KN)$A$^$9!#$?$H$($P!"F0E*$K(B IP $B%"%I%l%9$,@_Dj$5$l$k>l9g$d!"F1$8@_Dj%U%!(B +$B%$%k$r6&M-$9$kIi2YJ,;6$N$?$a$N%/%i%9%?$N0lIt$H$J$k>l9g$J$I$G$9!#(B</P> + +<P>$B$5$i$K!"J#?t$NL>A0$G%5!<%P%"%/%;%9$,$G$-$k$h$&$K$7$?$$$3$H$bB?$$$G$7$g$&!#(B +$B$?$H$($P!"F1$8(B IP $B%"%I%l%9$r;X$9(B +<CODE>domain.tld</CODE> $B$H(B <CODE>www2.domain.tld</CODE> +$B$N$I$A$i$G$G$b%5!<%P$K%"%/%;%9$G$-$k$h$&$K$7$?$$>l9g$J$I$G$9!#(B +$B$=$l$I$3$m$+!"(B<CODE>domain.tld</CODE> $B$N$I$s$J%"%I%l%9$G$G$b$=$N%5!<%P$K(B +$B%"%/%;%9$G$-$k$h$&$K$7$?$$>l9g$,$"$k$+$b$7$l$^$;$s!#(B + +$B$3$N$h$&$J$3$H$O!"(B +<A HREF="../mod/core.html#serveralias"><CODE>ServerAlias</CODE></A> +$B%G%#%l%/%F%#%V$r(B <VirtualHost> $B%;%/%7%g%s$K5-=R$9$k$3$H$G<B8=$G$-$^$9!#(B +$B$?$H$($P(B:</P> + +<PRE> + ServerAlias domain.tld *.domain.tld +</PRE> + +<P><CODE>*</CODE> $B$d(B <CODE>?</CODE> $B$r%o%$%k%I%+!<%IJ8;z$H$7$F;HMQ$G$-$k$3$H$K(B +$BCm0U$7$F$/$@$5$$!#(B</P> + +<P>$BIaDL$O%I%a%$%sL>$r>JN,$9$k$G$"$m$&%m!<%+%k$N%f!<%6$N$?$a$K(B +<CODE>ServerAlias</CODE> $B$,I,MW$+$b$7$l$^$;$s!#(B + +$B$?$H$($P!"$b$7%m!<%+%k$N%f!<%6$,(B "www" $B$d(B "www.foobar" $B$H%?%$%W$9$k$N$K(B +$B?F$7$s$G$$$k>l9g!"(B +<CODE>ServerAlias www www.foobar</CODE> $B$rDI2C$9$kI,MW$,$"$k$G$7$g$&!#(B + +$B%/%i%$%"%s%H$,L>A0$N2r7h$K$I$N$h$&$J%I%a%$%sL>$r;H$C$?$N$+$r%5!<%P$,(B +$BCN$k$3$H$OIT2DG=$G$9!#%/%i%$%"%s%H$O%j%/%(%9%H$K$=$N$h$&$J>pJs$r4^$a$J$$(B +$B$+$i$G$9!#(B +$BDL>o$O!"(B<CODE>ServerAlias</CODE> $B%G%#%l%/%F%#%V$OF1$8%P!<%A%c%k%[%9%H$KBP$7$F(B +$B0[$J$C$?%[%9%HL>$r3d$jEv$F$kJ}K!$G$9!#(B</P> + +<H2>$B8E$$%V%i%&%6$H$N8_49@-(B</H2> + +<P>$B>e$G=q$$$?$h$&$K!"%M!<%`%Y!<%9$N%P!<%A%c%k%[%9%H$,@5$7$/F0:n$9$k(B +$B$?$a$KI,MW$J>pJs$rAw$C$F$3$J$$%/%i%$%"%s%H$,0MA3$H$7$FB8:_$7$F$$$^$9!#(B +$B$=$N$h$&$J%/%i%$%"%s%H$KBP$7$F$O!"3:Ev$9$k(B IP $B%"%I%l%9$K$D$$$F!"(B +$B0lHV:G=i$K@_Dj$5$l$F$$$k%P!<%A%c%k%[%9%H(B +(<CITE>$B%W%i%$%^%j(B</CITE>$B$N%M!<%`%Y!<%9$N%P!<%A%c%k%[%9%H(B) +$B$+$i%Z!<%8$,Aw$jJV$5$l$^$9!#(B</P> + +<P><A HREF="../mod/core.html#serverpath"><CODE>ServerPath</CODE></A> +$B%G%#%l%/%F%#%V$GBP=h$,2DG=$G$9!#$A$g$C$HIT3J9%$G$9$1$l$I$b!#(B</P> + +<P>$B@_DjNc(B: + +<PRE> + NameVirtualHost 111.22.33.44 + + <VirtualHost 111.22.33.44> + ServerName www.domain.tld + ServerPath /domain + DocumentRoot /web/domain + </VirtualHost> +</PRE> + +<P>$B$3$NNc$K$O$I$&$$$&0UL#$,$"$k$G$7$g$&$+(B? $B$3$l$O(B +"<SAMP>/domain</SAMP>" $B$G;O$^$k(B URI $B$X$N%j%/%(%9%H$O$9$Y$F!"(B +$B%P!<%A%c%k%[%9%H(B <SAMP>www.domain.tld</SAMP> $B$G=hM}$5$l$k!"$H$$$&0UL#$G$9!#(B + +$B$D$^$j!"$9$Y$F$N%/%i%$%"%s%H$G(B +<CODE>http://www.domain.tld/domain/</CODE> $B$G%"%/%;%9$G$-$k%Z!<%8$,!"(B +<SAMP>Host:</SAMP> $B%X%C%@$rAw$C$F$/$k%/%i%$%"%s%H$G$"$l$P(B +<CODE>http://www.domain.tld/</CODE> $B$H$7$F$b%"%/%;%9$G$-$k!"$H$$$&(B +$B0UL#$G$9!#(B</P> + +<P>$B$3$l$r<BMQE*$J$b$N$H$9$k$?$a$K$O!"(B +$B%W%i%$%^%j$N%P!<%A%c%k%[%9%H$N%Z!<%8$K(B +<SAMP>http://www.domain.tld/domain/</SAMP> $B$X$N%j%s%/$r@_CV$7$^$9!#(B + +$B$=$7$F!"%P!<%A%c%k%[%9%H$N%Z!<%8$G$O!"(B +$B=c?h$JAjBP%j%s%/(B (<EM>$BNc(B:</EM> "<SAMP>file.html</SAMP>" $B$d(B +"<SAMP>../icons/image.gif</SAMP>")$B!"(B +$B$"$k$$$O(B <SAMP>/domain/</SAMP> $B$G;O$^$k%j%s%/(B +(<EM>$BNc(B:</EM> "<SAMP>http://www.domain.tld/domain/misc/file.html</SAMP>" $B$d(B +"<SAMP>/domain/misc/file.html</SAMP>") $B$@$1$r@_CV$7$^$9!#(B</P> + +<P>$B$3$l$K$O!"4vJ,$+$N5,N'$,I,MW$H$J$j$^$9$,!"(B +$B$3$N$h$&$J%,%$%I%i%$%s$rCi<B$K<i$k$3$H$K$h$j!"$?$$$F$$$N>l9g!"(B +$B$9$Y$F$N%V%i%&%6$G!=?7$7$$%V%i%&%6$G$b8E$$$b$N$G$b!=(B +$B:n@.$7$?%Z!<%8$,8+$($k$H$$$&$3$H$rJ]>Z$7$^$9!#(B</P> + +<P>$B;29M(B: <A HREF="examples.html#serverpath">ServerPath $B@_DjNc(B</A></P> + + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + +</BODY> +</HTML> diff --git a/usr.sbin/httpd/htdocs/manual/win_service.html.en b/usr.sbin/httpd/htdocs/manual/win_service.html.en new file mode 100644 index 00000000000..9e1bc7a3552 --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/win_service.html.en @@ -0,0 +1,445 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Running Apache for Windows as a Service</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="CENTER">Running Apache for Windows as a Service</h1> + + <p>Apache can be run as a service on Windows NT/2000. (There is + also some experimental support for similar behavior on + <a href="#win95svc">Windows 95/98</a>, introduced with Apache + 1.3.13).</p> + + <p>Installing Apache as a service should only be done once you + can successfully run it in a console window. See <a + href="windows.html">Using Apache with Microsoft Windows</a> + before you attempt to install or run Apache as a service. + Changes to the httpd.conf file should always be followed by + starting Apache as a console window. If this succeeds, the + service should succeed.</p> + + <p><strong>NOTE: Prior to version 1.3.13, the configuration was + <em>not tested</em> prior to performing the + installation</strong>, and a lack of service dependencies often + caused the console window to succeed, but the service would + still fail. See <a href="#service">below</a> if you are having + problems running a version of Apache prior to 1.3.13 to resolve + the issue. If you have this problem with version 1.3.13 or + greater, first try uninstalling (-u) and re-installing (-i) the + Apache service. Better yet, upgrade to the most recent version.</p> + <hr /> + + <p>To start Apache as a service, you first need to install it + as a service. Multiple Apache services can be installed, each + with a different name and configuration. To install the default + Apache service named "Apache", choose the "Install as Service for + All Users" option when launching the Apache installation package. + Once this is done you can start the "Apache" service by opening + the Services window (in the Control Panel, hidden in "Administrative + Tools" on Windows 2000), selecting Apache, then clicking + on Start. Apache will now be running, hidden in the background. + You can later stop Apache by clicking on Stop. As an + alternative to using the Services window, you can start and + stop the "Apache" service from the command line with</p> +<pre> + NET START APACHE + NET STOP APACHE +</pre> + + <p>See <a href="#signal">Controlling Apache as a Service</a> + for more information on installing and controlling Apache + services.</p> + + <p><strong>Apache, unlike many other Windows NT/2000 services, + logs most errors to its own error.log file, in the logs folder + within the Apache server root folder. You will find few Apache + error details in the Windows NT Event Log. Only errors as + Apache attempts to start are captured in the Application Event + Log.</strong></p> + + <p>After starting Apache as a service (or if you have trouble + starting it) you can test it using the same <a + href="windows.html#test">procedure</a> as for running in a + console window. Remember to use the command:</p> +<pre> + apache -n "service name" +</pre> + + <p>to assure you are using the service's default + configuration.</p> + + <h2><a id="service" name="service">Running Apache for Windows + as a Service</a></h2> + + <p><strong>Note: The -n option to specify a service name is + only available with Apache 1.3.7 and later.</strong> Earlier + versions of Apache only support the default service name + 'Apache'. Only version 1.3.21 supports Windows 2000 ability + to 'rename' the display name of a service.</p> + + <p>You can install Apache as a Windows NT service as + follows:</p> +<pre> + apache -i -n "service name" +</pre> + + <p>To install a service to use a particular configuration, + specify the configuration file when the service is + installed:</p> +<pre> + apache -i -n "service name" -f "\my server\conf\my.conf" +</pre> + + <p>You can pass any other arguments, such as -d to change the + default server root directory, -D, -C or -c to change config + file processing, etc. Since these are stored in the registry + and are difficult to modify, use this command to clear the + options and replace them with a new list of options;</p> +<pre> + apache -k config -n "service name" -f "\my server\conf\my.conf" +</pre> + + <p>To remove an Apache service, use:</p> +<pre> + apache -u -n "service name" +</pre> + + <p>The default "service name", if one is not specified, is + "Apache".</p> + + <p>Once a service is installed, you can use the <samp>-n</samp> + option, in conjunction with other options, to refer to a + service's configuration file. For example:</p> + + <p>To test a service's configuration file and report the + default options for the service (configured with -i, -k install + or -k config) use:</p> +<pre> + apache -n "service name" -t +</pre> + + <p>To start a console Apache using a service's configuration + file and its default options, use:</p> +<pre> + apache -n "service name" +</pre> + + <p>Effective with Apache release 1.3.15, the -k install option + was added as an alias to -i, and the -k uninstall option was + added as an alias to -u. The original -i and -u options are + deprecated in Apache 2.0. These aliases were added to ease the + transition for administrators running both versions.</p> + + <h2><a id="depends" name="depends">Important Note on service + dependencies:</a></h2> + + <p>Prior to Apache release 1.3.13, the dependencies required to + successfully start an installed service were not configured. + After installing a service using earlier versions of Apache, + you must follow these steps:</p> +<pre> + Run regedt32 + Select <u>W</u>indow - "HKEY_LOCAL_MACHINE on Local Machine" from the menu + Double-click to open the SYSTEM, then the CurrentControlSet keys + Scroll down and click on the Apache servicename + Select <u>E</u>dit - Add <u>V</u>alue... from the menu + Fill in the Add Value dialog with + <u>V</u>alue Name: DependOnGroup + <u>D</u>ata Type: REG_MULTI_SZ + and click OK + Leave the Multi-String Editor dialog empty and click OK + Select <u>E</u>dit - Add <u>V</u>alue... from the menu + Fill in the Add Value dialog with + <u>V</u>alue Name: DependOnService + <u>D</u>ata Type: REG_MULTI_SZ + and click OK + Type the following list (one per line) in the Multi-String Editor dialog + Tcpip + Afd + and click OK +</pre> + + <p>If you are using COM or DCOM components from a third party + module, ISAPI, or other add-in scripting technologies such as + ActiveState Perl, you may also need to add the entry Rpcss to + the DependOnService list. To avoid exposing the TCP port 135 + when it is unnecessary, Apache does not create that entry upon + installation. Follow the directions above to find or create the + DependOnService value, double click that value if it already + exists, and add the Rpcss entry to the list.</p> + + <p>Other installations may require additional dependencies. + If any files required at startup reside on a network drive, you + may need to first configure the service to depend on the network + redirector (usually lanmanworkstation) and follow the directions + below under the "User Account for Apache Service to Run As" section.</p> + + <p>Attempting to use both IIS and Apache, on the same port but on + two different IP addresses may require the W3SVC (IIS) to start prior + to Apache, because IIS tries to glom onto all IP addresses (0.0.0.0) + as it starts, and will fail if Apache has already started on a + specific IP address.</p> + + <p>Apache 1.3.21 introduces a MUCH simpler way to add a dependency. + The -W "servicename" argument modifies the -k install or -k config + commands to configure a dependency for Apache. Multiple -W arguments + may be given, but they should all occur after the -k option. + For example, to add the LanmanWorkstation dependency to an installed + "Apache" service, use this command:</p> +<pre> + apache -k config -n Apache -W LanmanWorkstation +</pre> + + <h2>User Account for Apache Service to Run As (NT/2000)</h2> + + <p>When Apache is first installed as a service (e.g. with the + -i option) it will run as user "System" (the LocalSystem + account). There should be few issues if all resources for the + web server reside on the local system, but it has broad + security privileges to affect the local machine!</p> + + <blockquote> + LocalSystem is a very privileged account locally, so you + shouldn't run any shareware applications there. However, it + has no network privileges and cannot leave the machine via + any NT-secured mechanism, including file system, named pipes, + DCOM, or secure RPC. + </blockquote> + + <p><strong>NEVER grant network privileges to the SYSTEM + account!</strong> Create a new user account instead, grant the + appropriate privileges to that user, and use the 'Log On As:' + option. Select the Start Menu -> Settings -> Control + Panel -> Services -> apache service ... and click the + "Startup" button to access this setting.</p> + + <blockquote> + A service that runs in the context of the LocalSystem account + inherits the security context of the SCM. It is not + associated with any logged-on user account and does not have + credentials (domain name, user name, and password) to be used + for verification. + </blockquote> + + <p>The SYSTEM account has no privileges to the network, so + shared pages or a shared installation of Apache is invisible to + the service. If you intend to use <em>any</em> network + resources, the following steps should help:</p> + + <ul> + <li>Select Apache from the Control Panel's Service dialog and + click Startup.</li> + + <li>Verify that the service account is correct. You may wish + to create an account for your Apache services.</li> + + <li>Retype the password and password confirmation.</li> + + <li>Go to User Manager for Domains.</li> + + <li>Click on Policies from the title bar menu, and select + User Rights.</li> + + <li>Select the option for Advanced User Rights.</li> + + <li> + In the drop-down list, verify that the following rights + have been granted to the selected account: + + <ul> + <li>Act as part of the operating system</li> + + <li>Back up files and directories</li> + + <li>Log on as a service</li> + + <li>Restore files and directories</li> + </ul> + </li> + + <li>Confirm that the selected account is a member of the + Users group.</li> + + <li>Confirm the selected account has access to all document + and script directories (minimally read and browse + access).</li> + + <li>Confirm the selected account has read/write/delete access + to the Apache logs directory!</li> + </ul> + + <p>If you allow the account to log in as a user, then you can + log in yourself and test that the account has the privileges to + execute the scripts, read the web pages, and that you can start + Apache in a console window. If this works, and you have + followed the steps above, Apache should execute as a service + with no problems.</p> + + <p><strong>Note: error code 2186</strong> is a good indication + that you need to review the 'Log On As' configuration, since + the server can't access a required network resource.</p> + + <h2><a id="trouble" name="trouble">Troubleshooting Apache for + Windows as a Service</a></h2> + + <p>When starting Apache as a service you may encounter an error + message from Windows service manager. For example if you try to + start Apache using the Services applet in Windows Control Panel + you may get the following message;</p> +<pre> + Could not start the apache service on \\COMPUTER + Error 1067; The process terminated unexpectedly. +</pre> + + <p>You will get this error if there is any problem starting + Apache. In order to see what is causing the problem you should + follow the instructions for <a href="windows.html#test">Testing + Apache at the Command Prompt</a>.</p> + + <p>Also, Apache 1.3.13 now records startup errors in the + Application Event Log under Windows NT/2000, if Apache is run + as a service. Run the Event Viewer and select <u>L</u>og ... + <u>A</u>pplication to see these events.</p> + + <p><strong>Check the Application Event Log with the Event + Viewer in case of any problems, even if no error message pops + up to warn you that an error occurred.</strong></p> + + <h2><a id="cmdline" name="cmdline">Running Apache for Windows + from the Command Line</a></h2> + For details on controlling Apache service from the command + line, please refer to <a href="windows.html#cmdline">console + command line</a> section. + + <h2><a id="signal" name="signal">Controlling Apache as a + Service</a></h2> + + <p>Multiple instances of Apache can be installed and run as + services. Signal an installed Apache service to start, restart, + or shutdown/stop as follows:</p> +<pre> + apache -n "service name" -k start + apache -n "service name" -k restart + apache -n "service name" -k shutdown + apache -n "service name" -k stop +</pre> + + <p>For the default "Apache" service, the -n Apache option is + still required, since the -k commands without the -n option are + directed at Apache running in a console window. The quotes are + only required if the service name contains spaces.</p> + + <p><strong>Note: the -k stop alias for the -k shutdown command + was introduced in Apache version 1.3.13.</strong> Earlier + versions of Apache will only recognize the -k shutdown option. + Prior to 1.3.3, Apache did not recognize <em>any</em> -k + options at all!</p> + + <p>Note that you may specify startup options on the apache -k + start command line, including the -D, -C and -c options. These + affect the processing of the service configuration, and may be + used with an <IfDefine> block to conditionally process + directives. You may also override the server root path or + configuration file with the -d or -f options. The options + should also be passed to the -k restart command, but they are + ignored if the service is running, and only processed if the + service is started.</p> + + <p>The service also appears in the Service Control applet on + Windows NT/2000. For NT, this is found in the Settings -> + Control Panel -> Services entry, and on 2000 it is found in + the Settings -> Control Panel -> Administrative Tools + -> Services entry. Here you can select the desired Apache + service to start or stop it. Pass additional options such as + -D, -C and -c, or override the default -d or -f options in the + Start Parameters box before clicking the Start button. These + options behave identically to the apache -k start command.</p> + + <p>In addition, you can use the native Windows NT/2000 command + NET to start and stop Apache services:</p> +<pre> + NET START "service name" + NET STOP "service name" +</pre> + + <p>Again, quotes are only required if the service name contains + spaces. There is no way using the NET START command to pass + additional options such as -D, -c or -C using the NET START + command. If options are required, use one of the other two + methods instead.</p> + + <h2><a id="win95svc" name="win95svc">Experimental + Windows 95/98 Service</a></h2> + + <p><strong>Note: The service options for Windows 95 and 98 are + only available with Apache 1.3.13 and later.</strong> Earlier + versions of Apache only supported Apache in a console window + for Windows 95/98.</p> + + <p>There is some support for Apache on Windows 95/98 to behave + in a similar manner as a service on Windows NT/2000. It is + <em>experimental</em>, if it works (at all) the Apache + Software Foundation will not attest to its reliability or + future support. Proceed at your own risk!</p> + + <p>Once you have confirmed that Apache runs correctly at the <a + href="windows.html#test">Command Prompt</a> you can install, + control and uninstall it with the same commands as the Windows + NT/2000 version.</p> + + <p>There are, however, significant differences that you should + note:</p> + + <p>Apache will attempt to start and if successful it will run + in the background. If you run the command</p> +<pre> + Apache -n "service name" -k start +</pre> + + <p>via a shortcut on your desktop, for example, then if the + service starts successfully a console window will flash up but + immediately disappears. If Apache detects any errors on startup + such as a incorrect entries in the httpd.conf file, then the + console window will remain visible. This may display an error + message which will be useful in tracking down the cause of the + problem, and you should also review the error.log file in the + Apache logs directory.</p> + + <p>Windows 95/98 does not support NET START or NET STOP + commands so you must use Apache's Service Control options at a + command prompt. You may wish to set up a shortcut for each of + these commands so that you can just choose it from the start + menu or desktop to perform the required action.</p> + + <p>Apache and Windows 95/98 offer no support for running the + Apache service as a specific user with network privileges. In + fact, Windows 95/98 offers no security on the local machine, + either. This is the simple reason that the Apache Software + Foundation never endorses the use of Windows 95/98 as a public + httpd server. These facilities exist only to assist the user in + developing web content and learning the Apache server, and + perhaps as a intranet server on a secured, private network.</p> + <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + </body> +</html> + diff --git a/usr.sbin/httpd/htdocs/manual/win_service.html.html b/usr.sbin/httpd/htdocs/manual/win_service.html.html new file mode 100644 index 00000000000..6923201e67a --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/win_service.html.html @@ -0,0 +1,449 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Running Apache for Windows as a Service</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + + <h1 align="CENTER">Running Apache for Windows as a Service</h1> + + <p>Apache can be run as a service on Windows NT/2000. (There is + also some experimental support for similar behavior on + <a href="#win95svc">Windows 95/98</a>, introduced with Apache + 1.3.13).</p> + + <p>Installing Apache as a service should only be done once you + can successfully run it in a console window. See <a + href="windows.html">Using Apache with Microsoft Windows</a> + before you attempt to install or run Apache as a service. + Changes to the httpd.conf file should always be followed by + starting Apache as a console window. If this succeeds, the + service should succeed.</p> + + <p><strong>NOTE: Prior to version 1.3.13, the configuration was + <em>not tested</em> prior to performing the + installation</strong>, and a lack of service dependencies often + caused the console window to succeed, but the service would + still fail. See <a href="#service">below</a> if you are having + problems running a version of Apache prior to 1.3.13 to resolve + the issue. If you have this problem with version 1.3.13 or + greater, first try uninstalling (-u) and re-installing (-i) the + Apache service. Better yet, upgrade to the most recent version.</p> + <hr /> + + <p>To start Apache as a service, you first need to install it + as a service. Multiple Apache services can be installed, each + with a different name and configuration. To install the default + Apache service named "Apache", choose the "Install as Service for + All Users" option when launching the Apache installation package. + Once this is done you can start the "Apache" service by opening + the Services window (in the Control Panel, hidden in "Administrative + Tools" on Windows 2000), selecting Apache, then clicking + on Start. Apache will now be running, hidden in the background. + You can later stop Apache by clicking on Stop. As an + alternative to using the Services window, you can start and + stop the "Apache" service from the command line with</p> +<pre> + NET START APACHE + NET STOP APACHE +</pre> + + <p>See <a href="#signal">Controlling Apache as a Service</a> + for more information on installing and controlling Apache + services.</p> + + <p><strong>Apache, unlike many other Windows NT/2000 services, + logs most errors to its own error.log file, in the logs folder + within the Apache server root folder. You will find few Apache + error details in the Windows NT Event Log. Only errors as + Apache attempts to start are captured in the Application Event + Log.</strong></p> + + <p>After starting Apache as a service (or if you have trouble + starting it) you can test it using the same <a + href="windows.html#test">procedure</a> as for running in a + console window. Remember to use the command:</p> +<pre> + apache -n "service name" +</pre> + + <p>to assure you are using the service's default + configuration.</p> + + <h2><a id="service" name="service">Running Apache for Windows + as a Service</a></h2> + + <p><strong>Note: The -n option to specify a service name is + only available with Apache 1.3.7 and later.</strong> Earlier + versions of Apache only support the default service name + 'Apache'. Only version 1.3.21 supports Windows 2000 ability + to 'rename' the display name of a service.</p> + + <p>You can install Apache as a Windows NT service as + follows:</p> +<pre> + apache -i -n "service name" +</pre> + + <p>To install a service to use a particular configuration, + specify the configuration file when the service is + installed:</p> +<pre> + apache -i -n "service name" -f "\my server\conf\my.conf" +</pre> + + <p>You can pass any other arguments, such as -d to change the + default server root directory, -D, -C or -c to change config + file processing, etc. Since these are stored in the registry + and are difficult to modify, use this command to clear the + options and replace them with a new list of options;</p> +<pre> + apache -k config -n "service name" -f "\my server\conf\my.conf" +</pre> + + <p>To remove an Apache service, use:</p> +<pre> + apache -u -n "service name" +</pre> + + <p>The default "service name", if one is not specified, is + "Apache".</p> + + <p>Once a service is installed, you can use the <samp>-n</samp> + option, in conjunction with other options, to refer to a + service's configuration file. For example:</p> + + <p>To test a service's configuration file and report the + default options for the service (configured with -i, -k install + or -k config) use:</p> +<pre> + apache -n "service name" -t +</pre> + + <p>To start a console Apache using a service's configuration + file and its default options, use:</p> +<pre> + apache -n "service name" +</pre> + + <p>Effective with Apache release 1.3.15, the -k install option + was added as an alias to -i, and the -k uninstall option was + added as an alias to -u. The original -i and -u options are + deprecated in Apache 2.0. These aliases were added to ease the + transition for administrators running both versions.</p> + + <h2><a id="depends" name="depends">Important Note on service + dependencies:</a></h2> + + <p>Prior to Apache release 1.3.13, the dependencies required to + successfully start an installed service were not configured. + After installing a service using earlier versions of Apache, + you must follow these steps:</p> +<pre> + Run regedt32 + Select <u>W</u>indow - "HKEY_LOCAL_MACHINE on Local Machine" from the menu + Double-click to open the SYSTEM, then the CurrentControlSet keys + Scroll down and click on the Apache servicename + Select <u>E</u>dit - Add <u>V</u>alue... from the menu + Fill in the Add Value dialog with + <u>V</u>alue Name: DependOnGroup + <u>D</u>ata Type: REG_MULTI_SZ + and click OK + Leave the Multi-String Editor dialog empty and click OK + Select <u>E</u>dit - Add <u>V</u>alue... from the menu + Fill in the Add Value dialog with + <u>V</u>alue Name: DependOnService + <u>D</u>ata Type: REG_MULTI_SZ + and click OK + Type the following list (one per line) in the Multi-String Editor dialog + Tcpip + Afd + and click OK +</pre> + + <p>If you are using COM or DCOM components from a third party + module, ISAPI, or other add-in scripting technologies such as + ActiveState Perl, you may also need to add the entry Rpcss to + the DependOnService list. To avoid exposing the TCP port 135 + when it is unnecessary, Apache does not create that entry upon + installation. Follow the directions above to find or create the + DependOnService value, double click that value if it already + exists, and add the Rpcss entry to the list.</p> + + <p>Other installations may require additional dependencies. + If any files required at startup reside on a network drive, you + may need to first configure the service to depend on the network + redirector (usually lanmanworkstation) and follow the directions + below under the "User Account for Apache Service to Run As" section.</p> + + <p>Attempting to use both IIS and Apache, on the same port but on + two different IP addresses may require the W3SVC (IIS) to start prior + to Apache, because IIS tries to glom onto all IP addresses (0.0.0.0) + as it starts, and will fail if Apache has already started on a + specific IP address.</p> + + <p>Apache 1.3.21 introduces a MUCH simpler way to add a dependency. + The -W "servicename" argument modifies the -k install or -k config + commands to configure a dependency for Apache. Multiple -W arguments + may be given, but they should all occur after the -k option. + For example, to add the LanmanWorkstation dependency to an installed + "Apache" service, use this command:</p> +<pre> + apache -k config -n Apache -W LanmanWorkstation +</pre> + + <h2>User Account for Apache Service to Run As (NT/2000)</h2> + + <p>When Apache is first installed as a service (e.g. with the + -i option) it will run as user "System" (the LocalSystem + account). There should be few issues if all resources for the + web server reside on the local system, but it has broad + security privileges to affect the local machine!</p> + + <blockquote> + LocalSystem is a very privileged account locally, so you + shouldn't run any shareware applications there. However, it + has no network privileges and cannot leave the machine via + any NT-secured mechanism, including file system, named pipes, + DCOM, or secure RPC. + </blockquote> + + <p><strong>NEVER grant network privileges to the SYSTEM + account!</strong> Create a new user account instead, grant the + appropriate privileges to that user, and use the 'Log On As:' + option. Select the Start Menu -> Settings -> Control + Panel -> Services -> apache service ... and click the + "Startup" button to access this setting.</p> + + <blockquote> + A service that runs in the context of the LocalSystem account + inherits the security context of the SCM. It is not + associated with any logged-on user account and does not have + credentials (domain name, user name, and password) to be used + for verification. + </blockquote> + + <p>The SYSTEM account has no privileges to the network, so + shared pages or a shared installation of Apache is invisible to + the service. If you intend to use <em>any</em> network + resources, the following steps should help:</p> + + <ul> + <li>Select Apache from the Control Panel's Service dialog and + click Startup.</li> + + <li>Verify that the service account is correct. You may wish + to create an account for your Apache services.</li> + + <li>Retype the password and password confirmation.</li> + + <li>Go to User Manager for Domains.</li> + + <li>Click on Policies from the title bar menu, and select + User Rights.</li> + + <li>Select the option for Advanced User Rights.</li> + + <li> + In the drop-down list, verify that the following rights + have been granted to the selected account: + + <ul> + <li>Act as part of the operating system</li> + + <li>Back up files and directories</li> + + <li>Log on as a service</li> + + <li>Restore files and directories</li> + </ul> + </li> + + <li>Confirm that the selected account is a member of the + Users group.</li> + + <li>Confirm the selected account has access to all document + and script directories (minimally read and browse + access).</li> + + <li>Confirm the selected account has read/write/delete access + to the Apache logs directory!</li> + </ul> + + <p>If you allow the account to log in as a user, then you can + log in yourself and test that the account has the privileges to + execute the scripts, read the web pages, and that you can start + Apache in a console window. If this works, and you have + followed the steps above, Apache should execute as a service + with no problems.</p> + + <p><strong>Note: error code 2186</strong> is a good indication + that you need to review the 'Log On As' configuration, since + the server can't access a required network resource.</p> + + <h2><a id="trouble" name="trouble">Troubleshooting Apache for + Windows as a Service</a></h2> + + <p>When starting Apache as a service you may encounter an error + message from Windows service manager. For example if you try to + start Apache using the Services applet in Windows Control Panel + you may get the following message;</p> +<pre> + Could not start the apache service on \\COMPUTER + Error 1067; The process terminated unexpectedly. +</pre> + + <p>You will get this error if there is any problem starting + Apache. In order to see what is causing the problem you should + follow the instructions for <a href="windows.html#test">Testing + Apache at the Command Prompt</a>.</p> + + <p>Also, Apache 1.3.13 now records startup errors in the + Application Event Log under Windows NT/2000, if Apache is run + as a service. Run the Event Viewer and select <u>L</u>og ... + <u>A</u>pplication to see these events.</p> + + <p><strong>Check the Application Event Log with the Event + Viewer in case of any problems, even if no error message pops + up to warn you that an error occurred.</strong></p> + + <h2><a id="cmdline" name="cmdline">Running Apache for Windows + from the Command Line</a></h2> + For details on controlling Apache service from the command + line, please refer to <a href="windows.html#cmdline">console + command line</a> section. + + <h2><a id="signal" name="signal">Controlling Apache as a + Service</a></h2> + + <p>Multiple instances of Apache can be installed and run as + services. Signal an installed Apache service to start, restart, + or shutdown/stop as follows:</p> +<pre> + apache -n "service name" -k start + apache -n "service name" -k restart + apache -n "service name" -k shutdown + apache -n "service name" -k stop +</pre> + + <p>For the default "Apache" service, the -n Apache option is + still required, since the -k commands without the -n option are + directed at Apache running in a console window. The quotes are + only required if the service name contains spaces.</p> + + <p><strong>Note: the -k stop alias for the -k shutdown command + was introduced in Apache version 1.3.13.</strong> Earlier + versions of Apache will only recognize the -k shutdown option. + Prior to 1.3.3, Apache did not recognize <em>any</em> -k + options at all!</p> + + <p>Note that you may specify startup options on the apache -k + start command line, including the -D, -C and -c options. These + affect the processing of the service configuration, and may be + used with an <IfDefine> block to conditionally process + directives. You may also override the server root path or + configuration file with the -d or -f options. The options + should also be passed to the -k restart command, but they are + ignored if the service is running, and only processed if the + service is started.</p> + + <p>The service also appears in the Service Control applet on + Windows NT/2000. For NT, this is found in the Settings -> + Control Panel -> Services entry, and on 2000 it is found in + the Settings -> Control Panel -> Administrative Tools + -> Services entry. Here you can select the desired Apache + service to start or stop it. Pass additional options such as + -D, -C and -c, or override the default -d or -f options in the + Start Parameters box before clicking the Start button. These + options behave identically to the apache -k start command.</p> + + <p>In addition, you can use the native Windows NT/2000 command + NET to start and stop Apache services:</p> +<pre> + NET START "service name" + NET STOP "service name" +</pre> + + <p>Again, quotes are only required if the service name contains + spaces. There is no way using the NET START command to pass + additional options such as -D, -c or -C using the NET START + command. If options are required, use one of the other two + methods instead.</p> + + <h2><a id="win95svc" name="win95svc">Experimental + Windows 95/98 Service</a></h2> + + <p><strong>Note: The service options for Windows 95 and 98 are + only available with Apache 1.3.13 and later.</strong> Earlier + versions of Apache only supported Apache in a console window + for Windows 95/98.</p> + + <p>There is some support for Apache on Windows 95/98 to behave + in a similar manner as a service on Windows NT/2000. It is + <em>experimental</em>, if it works (at all) the Apache + Software Foundation will not attest to its reliability or + future support. Proceed at your own risk!</p> + + <p>Once you have confirmed that Apache runs correctly at the <a + href="windows.html#test">Command Prompt</a> you can install, + control and uninstall it with the same commands as the Windows + NT/2000 version.</p> + + <p>There are, however, significant differences that you should + note:</p> + + <p>Apache will attempt to start and if successful it will run + in the background. If you run the command</p> +<pre> + Apache -n "service name" -k start +</pre> + + <p>via a shortcut on your desktop, for example, then if the + service starts successfully a console window will flash up but + immediately disappears. If Apache detects any errors on startup + such as a incorrect entries in the httpd.conf file, then the + console window will remain visible. This may display an error + message which will be useful in tracking down the cause of the + problem, and you should also review the error.log file in the + Apache logs directory.</p> + + <p>Windows 95/98 does not support NET START or NET STOP + commands so you must use Apache's Service Control options at a + command prompt. You may wish to set up a shortcut for each of + these commands so that you can just choose it from the start + menu or desktop to perform the required action.</p> + + <p>Apache and Windows 95/98 offer no support for running the + Apache service as a specific user with network privileges. In + fact, Windows 95/98 offers no security on the local machine, + either. This is the simple reason that the Apache Software + Foundation never endorses the use of Windows 95/98 as a public + httpd server. These facilities exist only to assist the user in + developing web content and learning the Apache server, and + perhaps as a intranet server on a secured, private network.</p> + <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + + </body> +</html> + + + diff --git a/usr.sbin/httpd/htdocs/manual/win_service.html.ja.jis b/usr.sbin/httpd/htdocs/manual/win_service.html.ja.jis new file mode 100644 index 00000000000..bd1a6a5a08e --- /dev/null +++ b/usr.sbin/httpd/htdocs/manual/win_service.html.ja.jis @@ -0,0 +1,373 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<title>Windows $B$G(B Apache $B$r%5!<%S%9$H$7$FF0$+$9(B</title> +</head> +<!-- English revision:1.7 --> +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> +<body + bgcolor="#FFFFFF" + text="#000000" + link="#0000FF" + vlink="#000080" + alink="#FF0000" +> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server</h3> + </div> + + + +<h1 align="center">Windows $B$G(B Apache $B$r%5!<%S%9$H$7$FF0$+$9(B</h1> + +<p>Windows NT/2000 $B$G$O(B Apache $B$r%5!<%S%9$H$7$FF0$+$9$3$H$,$G$-$^$9!#(B + (Apache 1.3.13 $B$G!"Hs>o$K<B83E*$K(B<a +href="#win95svc">Windows 95/98</a> $B$K$*$$$F$bF1MM$NF0:n$r%5%]!<%H$r$9$k$h$&$K$J$j$^$7$?(B)$B!#(B</p> + +<p>$B%5!<%S%9$H$7$F(B Apache $B$r%$%s%9%H!<%k$9$k$?$a$K$O!"(B +$B$&$^$/$$$1$P%3%^%s%I%i%$%s$G0lEY<B9T$9$l$P$$$$$G$9!#(B +Apache $B$r%5!<%S%9$H$7$F%$%s%9%H!<%k$7$?$j!"F0$+$=$&$H$9$kA0$K(B <a +href="windows.html">Microsoft Windows $B$G(B Apache $B$rF0$+$9(B</a>$B$r;2>H$7$F$/$@$5$$!#(B +$B%3%^%s%I%i%$%s$G(B Apache $B$r5/F0$9$k$3$H$K$h$C$F!"(Bhttpd.conf $B%U%!%$%k$X$NJQ99$O$$$D$bH?1G$5$l$^$9!#(B +$B$3$l$G$&$^$/$$$1$P!"%5!<%S%9$O@.8y$9$k$G$7$g$&!#(B</p> + +<p><strong>$BCm0U(B: +$B%P!<%8%g%s(B 1.3.13 $B$h$jA0$G$O$3$N@_Dj$O(B<em>$B%F%9%H$5$l$F$$$^$;$s(B</em></strong>$B!#(B +$B$=$7$FD4@0ITB-$,860x$G!"%3%^%s%I%i%$%s$G$O$7$P$7$P$&$^$/$$$-$^$9$,!"(B +$B%5!<%S%9$O$^$@<:GT$7$^$9!#(BApache $B$N(B 1.3.13 $B$h$jA0$N%P!<%8%g%s$rF0$+$9$H$-$K(B +$BLdBj$,$"$k$J$i$P!"(B<a href="#service">$B8e=R$N@bL@(B</a>$B$r;2>H$7$F$/$@$5$$!#(B +$B%P!<%8%g%s(B 1.3.13 $B0J9_$G$3$NLdBj$,$"$k$J$i!"$^$::G=i$K(B Apache $B$r(B +$B%"%s%$%s%9%H!<%k(B (-u) $B$7$F$+$i:F%$%s%9%H!<%k(B (-i) $B$r;n$7$F$_$F$/$@$5$$(B</p> + +<hr> + +<p>Apache $B$r%5!<%S%9$H$7$F3+;O$9$k$?$a$K$O!":G=i$K%5!<%S%9$H$7$F%$%s%9%H!<%k$9$kI,MW$,$"$j$^$9!#(B +$B$=$l$>$lJL$NL>A0$H@_Dj$K$9$k$3$H$G(B Apache $B%5!<%S%9$rJ#?t%$%s%9%H!<%k$9$k$3$H$,$G$-$^$9!#(B +$B%G%U%)%k%H$N(B "Apache" $B$H$$$&L>A0$G(B Apache $B%5!<%S%9$r%$%s%9%H!<%k$9$k$K$O!"(B +$B%9%?!<%H%a%K%e!<$+$i(B "Install Apache as Service" $B%*%W%7%g%s$r<B9T$7$F$/$@$5$$!#(B +$B$3$l$r0lEY9T$J$($P!"(B($B%3%s%H%m!<%k%Q%M%k$N(B) $B%5!<%S%9%&%#%s%I%&$r3+$$$F!"(B +Apache $B$rA*Br$7$F!"<!$K(B Start $B$r%/%j%C%/$9$k$3$H$G!"(B"Apache" $B%5!<%S%9$r3+;O$G$-$^$9!#(B +$B$3$l$G(B Apache $B$O%P%C%/%0%i%&%s%I$GF0$-$^$9!#(B +$B$=$N8e$O(B Stop $B$r%/%j%C%/$9$k$3$H$G!"(BApache $B$r=*N;$G$-$^$9!#(B +$B%5!<%S%9%&%#%s%I%&$r;H$&Be$o$j$K!"%3%^%s%I%i%$%s$+$i!"(B +<pre> + NET START APACHE + NET STOP APACHE +</pre> + +$B$H$9$k$3$H$G!"(B"Apache" $B%5!<%S%9$r3+;O!"=*N;$G$-$^$9!#(B</p> + +<p>Apache $B%5!<%S%9$N%$%s%9%H!<%k$H%3%s%H%m!<%k$K4X$9$k$5$i$J$k>pJs$O!"(B<a href="#signal"> +Apache $B%5!<%S%9$N%3%s%H%m!<%k(B</a>$B$r;2>H$7$F$/$@$5$$!#(B</p> + +<p><strong>Apache $B$O!"B>$NB?$/$N(B Windows NT/2000 $B$N%5!<%S%9$H0[$J$j!"(B +$B$[$H$s$I$N%(%i!<$OFH<+$K(B Apache $B$N%5!<%P%k!<%H$N(B logs $B%U%)%k%@$K$"$k(B +error.log $B%U%!%$%k$K5-O?$7$^$9!#$[$H$s$I$N(B Apache $B$N%(%i!<$K4X$9$k>\:Y$O(B +Windows NT $B$N%$%Y%s%H%m%0$G$OJ,$+$i$J$$$G$7$g$&!#(B +Apache $B$r5/F0$7$h$&$H$7$?$H$-$KH/@8$7$?%(%i!<$@$1$,%$%Y%s%H%m%0$K5-O?$5$l$^$9!#(B</strong></p> + +<p>Apache $B$r%5!<%S%9$H$7$F3+;O$7$?8e(B ($B$^$?$O!"$=$l$r;O$a$k$3$H$KLdBj$,$"$l$P(B)$B!"(B +$B%3%^%s%I%i%$%s$+$iF1$8(B<a href="windows.html#test">$B<j=g(B</a>$B$G%F%9%H$G$-$^$9!#(B +$B%G%U%)%k%H$N%5!<%S%9@_Dj$r3NG'$9$k$?$a$K$O!"$3$N%3%^%s%I(B:</p> + +<pre> + apache -n "service name" +</pre> + +<p>$B$r;H$&$3$H$r3P$($F$*$$$F$/$@$5$$!#(B</p> + +<h2><a name="service">Windows $B$G(B Apache $B$r%5!<%S%9$H$7$FF0$+$9(B</a></h2> + +<p><strong>$BCm0U(B: $B%5!<%S%9L>$r;XDj$9$k(B -n $B%*%W%7%g%s$O(B Apache 1.3.7 $B0J9_$GMxMQ2DG=$G$9!#(B</strong> +$B0JA0$N%P!<%8%g%s$N(B Apache $B$G$O!"%G%U%)%k%H$N%5!<%S%9L>(B 'Apache' $B$@$1$,%5%]!<%H$5$l$F$$$^$9!#(B</p> + +<p>$B0J2<$N$h$&$K$9$k$3$H$G!"(BApache $B$r(B Windows NT $B%5!<%S%9$H$7$F%$%s%9%H!<%k$G$-$^$9(B:</p> + +<pre> + apache -i -n "service name" +</pre> + +<p>$BFCDj$N@_Dj$r;H$C$F%5!<%S%9$r%$%s%9%H!<%k$9$k$K$O!"(B +$B%$%s%9%H!<%k$N:]$K@_Dj%U%!%$%k$r;XDj$7$F$/$@$5$$(B:</p> + +<pre> + apache -i -n "service name" -f "\my server\conf\my.conf" +</pre> + +<p>$B%5!<%P%k!<%H%G%#%l%/%H%j$r%G%U%)%k%H$+$iJQ99$9$k$?$a$N(B -d$B!"(B + $B@_Dj%U%!%$%k$rJQ99$9$k$?$a$N(B -D, -C $B$d(B -c $B$J$I!"$=$NB>$NB0@-$O>JN,$G$-$^$9!#(B + $B$3$l$i$,%l%8%9%H%j$K=q$-9~$^$l$F$$$FJQ99$,:$Fq$J$H$-$O!"(B + $B$3$N%3%^%s%I$r;H$C$F%*%W%7%g%s$r%/%j%"$7!"?7$7$$%*%W%7%g%s$KCV$-49$($^$9!#(B +</p> + +<pre> + apache -k config -n "service name" -f "\my server\conf\my.conf" +</pre> + +<p>Apache $B%5!<%S%9$r:o=|$9$k$K$O!"0J2<$N$h$&$K$7$^$9(B:</p> + +<pre> + apache -u -n "service name" +</pre> + +<p>$B%5!<%S%9L>$,;XDj$5$l$J$$>l9g$N%G%U%)%k%H$N!V%5!<%S%9L>!W$O(B "Apache" $B$H$J$j$^$9!#(B</p> + +<p>$B%5!<%S%9$,%$%s%9%H!<%k$5$l$k$H!"(B +$B%5!<%S%9$N@_Dj%U%!%$%k$r<($9$N$KB>$N%*%W%7%g%s$HF1;~$K(B +<samp>-n</samp> $B%*%W%7%g%s$r;HMQ$9$k$3$H$,$G$-$^$9!#Nc(B:</p> + +<p>$B%5!<%S%9$N@_Dj%U%!%$%k$r%F%9%H$7$F!"%5!<%S%9$N%G%U%)%k%H$N%*%W%7%g%s$r3NG'$9$k$K$O(B +$B<!$N$h$&$K$7$^$9(B:</p> +<pre> + apache -n "service name" -t +</pre> + +<p>$B%5!<%S%9$N@_Dj%U%!%$%k$H%G%U%)%k%H$N%*%W%7%g%s$r;HMQ$7$F!"(B + $B%3%s%=!<%k$+$i(B Apache $B$r5/F0$9$k$K$O<!$N$h$&$K$7$^$9(B:</p> +<pre> + apache -n "service name" +</pre> + +<p>Apache $B%j%j!<%9(B 1.3.15 $B$G(B -k install $B%*%W%7%g%s$,(B -i $B%*%W%7%g%s$N!"(B + $B$^$?!"(B-k uninstall $B%*%W%7%g%s$,(B -u $B%*%W%7%g%s$NJLL>$H$7$FDI2C$5$l$^$7$?!#(B + $B85$N(B -i $B$=$7$F(B -u $B%*%W%7%g%s$O(B Apache 2.0 $B$G$O;HMQ$7$J$$$h$&$K$7$F$/$@$5$$!#(B + $B$3$l$i$NJLL>$O!"N>J}$N%P!<%8%g%s$r1?MQ$9$k4IM}<T$,(B ($BLuCm(B: Apache 2.0 $B$K(B) + $B0\9T$7$d$9$/$9$k$?$a$KDI2C$5$l$^$7$?!#(B</p> + +<h2><a name="depends">$B%5!<%S%9$N0MB8$K4X$9$k=EMW$JN10UE@(B</a></h2> + +<p>$B%j%j!<%9(B 1.3.13 $B0JA0$N(B Apache $B$G$O!"%$%s%9%H!<%k$5$l$?%5!<%S%9$,(B +$B$&$^$/3+;O$9$k$3$H$,A0Ds>r7o$H$J$k0MB84X78$O9=@.$5$l$^$;$s!#(B +Apache $B$N0JA0$N%P!<%8%g%s$r;HMQ$7$F%5!<%S%9$r%$%s%9%H!<%k$7$?8e$K!"(B +$B0J2<$N<j=g$rF'$^$J$1$l$P$J$j$^$;$s(B : + +<pre> Run regedt32 + Select <u>W</u>indow - "HKEY_LOCAL_MACHINE on Local Machine" from the menu + Double-click to open the SYSTEM, then the CurrentControlSet keys + Scroll down and click on the Apache servicename + Select <u>E</u>dit - Add <u>V</u>alue... from the menu + Fill in the Add Value dialog with + <u>V</u>alue Name: DependOnGroup + <u>D</u>ata Type: REG_MULTI_SZ + and click OK + Leave the Multi-String Editor dialog empty and click OK + Select <u>E</u>dit - Add <u>V</u>alue... from the menu + Fill in the Add Value dialog with + <u>V</u>alue Name: DependOnService + <u>D</u>ata Type: REG_MULTI_SZ + and click OK + Type the following list (one per line) in the Multi-String Editor dialog + Tcpip + Afd + and click OK +</pre> + + +<p>$B$^$?!"%5!<%I%Q!<%F%#!<$N%b%8%e!<%k!"(BISAPI$B!"$=$NB>(B ActiveState Perl$B$J$I$K$h$k!"(B + COM $B$d(B DCOM $B$N9=@.MWAG$r;HMQ$7$F$$$k$J$i$P!"(BDependOnService $B%j%9%H$K(B + Rpcss $B$N%(%s%H%j!<$rDI2C$9$kI,MW$,$"$k$+$b$7$l$^$;$s!#(B + $B$=$l$,ITMW$J>l9g$K!"(BTCP $B%]!<%H(B 135 $B$rO*=P$9$k$N$rHr$1$k$?$a$K!"(B + Apache $B$O%$%s%9%H!<%k$N$H$-$K$=$N%(%s%H%j!<$r:n@.$7$^$;$s!#(B + $B>e$N;X<($K=>$C$F!"(BDependOnService $BCM$r3NG'!"$^$?$O:n@.$7$F$/$@$5$$!#(B + $B4{$KB8:_$7$F$$$k$J$i$P$=$NCM$r%@%V%k%/%j%C%/$7$F!"(BRpcss $B$N%(%s%H%j!<$r(B + $B%j%9%H$KDI2C$7$F$/$@$5$$!#(B</p> + +<h2>$B%f!<%6%"%+%&%s%H$G(B Apache $B$rF0$+$9(B (NT/2000)</h2> + +<p>Apache $B$,:G=i$K%5!<%S%9(B ( $BNc$($P!"(B-i $B%*%W%7%g%s(B ) $B$H$7$F%$%s%9%H!<%k$5$l$k$H$-!"(B + "System" $B$H$$$&%f!<%6(B (LocalSystem $B%"%+%&%s%H(B ) $B$GF0:n$9$k$G$7$g$&!#(B + $B$b$7(B web $B%5!<%P$N$9$Y$F$N%j%=!<%9$,%m!<%+%k%7%9%F%`>e$K$"$k$J$i(B + $B$[$H$s$ILdBj$"$j$^$;$s$,!"(B(LocalSystem $B%"%+%&%s%H(B ) $B$O%m!<%+%k%^%7%s$K(B + $B1F6A$rM?$($kI}9-$$%;%-%e%j%F%#FC8"$r;}$C$F$$$^$9!#(B</p> +<blockquote> + LocalSystem $B$O6I=jE*$KHs>o$KFC8"%"%+%&%s%H$J$N$G!"(B + $B$I$s$J%7%'%"%&%'%"%"%W%j%1!<%7%g%s$b$=$3$GF0:n$5$;$k$Y$-$G$O(B + $B$"$j$^$;$s!#$7$+$7$J$,$i!"$=$l$O%M%C%H%o!<%/FC8"$r;}$?$J$/$F!"(B + NT $B$N5!L)J];}5!G=!"%U%!%$%k%7%9%F%`!"%Q%$%W!"(BDCOM $B!"%;%-%e%"(B RPC $B$r4^$a$F(B + $B$=$N$^$^$K$7$F$*$/$3$H$O$G$-$^$;$s(B +</blockquote> + +<p><strong>$B7h$7$F%7%9%F%`%"%+%&%s%H$K%M%C%H%o!<%/FC8"$rM?$($F$O$$$1$^$;$s(B !</strong> + $BBe$o$j$K?7$7$$%f!<%6%"%+%&%s%H$r:n@.$7$F!"$=$N%f!<%6$KE,@Z$J8"8B$rM?$($F!"(B + 'Log On As' $B$H$$$&%*%W%7%g%s$r;H$C$F$/$@$5$$!#%9%?!<%H%a%K%e!<(B -> $B@_Dj(B + -> $B%3%s%H%m!<%k%Q%M%k(B -> $B%5!<%S%9(B -> Apache Service $B$HA*Br$7$F!"(B + $B!V%9%?!<%H%"%C%W!W%\%?%s$r%/%j%C%/$7$F!"$3$N@_Dj$K%"%/%;%9$7$F$/$@$5$$!#(B</p> + +<blockquote> + $B%5!<%S%9$O(B SCM $B4XO"$N%;%-%e%j%F%#$r(B LocalSystem $B%"%+%&%s%H$K(B + $B0z$-7Q$$$GF0:n$7$^$9!#%5!<%S%9$O$I$N%f!<%6%"%+%&%s%H$H$b(B + $B4XO"$E$1$i$l$J$/$F!"$^$?%Y%j%U%!%$$K;HMQ$5$l$k$Y$->ZL@(B + ( $B%I%a%$%sL>!"%f!<%6L>!"%Q%9%o!<%I(B ) $B$r;}$A$^$;$s!#(B +</blockquote> + +<p>SYSTEM $B%"%+%&%s%H$O%M%C%H%o!<%/$KFC8"$r;}$?$J$$$N$G!"6&M-$5$l$?%Z!<%8$d(B + $B6&M-$5$l$?%$%s%9%H!<%k$O%5!<%S%9$+$i$O8+$($^$;$s!#(B + $B$"$J$?$,(B<em>$B$I$s$J(B</em>$B%M%C%H%o!<%/%j%=!<%9$b;HMQ$9$k$D$b$j$G$"$k$J$i$P!"(B + $B0J2<$N%9%F%C%W$OLr$KN)$D$+$b$7$l$^$;$s(B</p> +<ul> + <li>Control Panel $B$N(B Service $B%@%$%"%m%0$+$i(B Apache $B$rA*Br$7$F!"(BStartup $B$r%/%j%C%/$7$^$9!#(B + <li>$B%5!<%S%9%"%+%&%s%H$,@5$7$$$3$H$r3NG'$7$F$/$@$5$$!#(B + Apache $B%5!<%S%9MQ$N%"%+%&%s%H$r:n@.$9$k$3$H$b$h$$J}K!$G$9!#(B + <li>$B%Q%9%o!<%I$r7+$jJV$7F~NO$7$F%Q%9%o!<%I3NG'$r$7$^$9!#(B + <li>$B%I%a%$%s$N%f!<%6%^%M!<%8%c$K9T$C$F$/$@$5$$!#(B + <li>$B%?%$%H%k%P!<%a%K%e!<$+$i(B Policies $B$r%/%j%C%/$7$F!"(BUser Rights $B$rA*Br$7$F$/$@$5$$!#(B + <li>Advanced User Rights $B$N%*%W%7%g%s$rA*Br$7$F$/$@$5$$!#(B + <li>$B%I%m%C%W%@%&%s%j%9%HCf$G!"A*Br$5$l$?%"%+%&%s%H$K0J2<$N8"8B$,(B + $BM?$($i$l$?$3$H$r3NG'$7$F$/$@$5$$!#(B + <ul> + <li>Act as part of the operating system + <li>Back up files and directories + <li>Log on as a service + <li>Restore files and directories + </ul> + <li>$BA*Br$5$l$?%"%+%&%s%H$,(B Users $B%0%k!<%W$N%a%s%P$G$"$k$3$H$r3NG'$7$F$/$@$5$$!#(B + <li>$BA*Br$5$l$?%"%+%&%s%H$,$9$Y$F$N%I%-%e%a%s%H$H%9%/%j%W%H%G%#%l%/%H%j$K(B + $B%"%/%;%9$9$k<jCJ(B ($B:GDc8BFI$_9~$_$H%V%i%&%:(B) $B$r;}$C$F$$$k$3$H$r3NG'$7$F$/$@$5$$!#(B + <li>$BA*Br$5$l$?%"%+%&%s%H$,(B Apache logs $B%G%#%l%/%H%j$KBP$7$FFI$_=q$-!"(B + $B:o=|$9$k<jCJ$r;}$C$F$$$k$3$H$r3NG'$7$F$/$@$5$$!#(B</li> +</ul> + +<p>$B$=$N%"%+%&%s%H$G%f!<%6$H$7$F%m%0%$%s$9$k$3$H$r5v2D$7$?$i!"<+J,<+?H$G(B + $B%m%0%$%s$7$F$=$N%"%+%&%s%H$,%9%/%j%W%H$N<B9T!"%&%'%V%Z!<%8$NFI$_9~$_$r$9$k(B + $B8"8B$r;}$C$F$$$k$3$H!"%3%s%=!<%k$+$i(B Apache $B$r5/F0$G$-$k$3$H(B + $B$r%F%9%H$9$k$3$H$,$G$-$^$9!#$3$l$,$&$^$/$$$-!">e5-$N%9%F%C%W$K=>$C$F<j=g$rF'$a$P!"(B + Apache $B$OLdBj$J$/%5!<%S%9$H$7$F<B9T$9$k$O$:$G$9!#(B</p> +<p><strong>$BCm0U(B: $B%(%i!<%3!<%I(B 2186</strong> $B$O%5!<%P$,I,MW$J%M%C%H%o!<%/%j%=!<%9$K(B + $B%"%/%;%9$9$k$3$H$,$G$-$J$$$N$G(B 'Log On As' $B$N@_Dj$r8+D>$9I,MW$,$"$k!"(B + $B$H$$$&;X<($G$9!#(B</strong></p> + + +<h2><a name=trouble>$B%5!<%S%9$H$7$F$N(B Windows $BHG(B Apache $B%H%i%V%k%7%e!<%F%#%s%0(B</a></h2> + +<p>$B%5!<%S%9$H$7$F(B Apache $B$r3+;O$9$k>l9g!"(BWindows service manager $B$+$i%(%i!<%a%C%;!<%8$r(B + $B8+$k$3$H$K$J$k$+$b$7$l$^$;$s!#Nc$($P(B Control Panel $B$N(B Services $B%"%W%l%C%H$r;HMQ$7$F(B + Apache $B$r3+;O$5$;$h$&$H$9$k;~$K!"0J2<$N%a%C%;!<%8$r8+$k$+$b$7$l$^$;$s!#(B +<pre> + Could not start the apache service on \\COMPUTER + Error 1067; The process terminated unexpectedly. +</pre> +<p>Apache $B$N3+;O$K$*$$$F2?$i$+$NLdBj$,$"$k>l9g!"$3$N%(%i!<$KAx$$$^$9!#(B + $BLdBj$N860x$r3NG'$9$k$?$a$K$O!"(B<a href="windows.html#test">$B%3%^%s%I(B + $B%W%m%s%W%H$G(B Apache $B$r%F%9%H$9$k(B</a>$B$N;X<($K=>$C$F$/$@$5$$!#(B</p> + +<p>$B$^$?!"(BApache 1.3.13 $B$G$O(B Windows NT/2000 $B$G%5!<%S%9$H$7$FF0$+$9$H$-!"(B + $B3+;O;~$N%(%i!<$r(B Application Event Log $B$K5-O?$7$^$9!#(BEvent Viewer $B$r5/F0$7!"(B + <u>L</u>og ... <u>A</u>pplication $B$HA*Br$7$F%$%Y%s%H$r3NG'$9$k$3$H$,$G$-$^$9!#(B + +<p><strong>$BLdBj$,$"$C$?>l9g$O!"%(%i!<$,H/@8$7$?$3$H$r7Y9p$N$?$a$N%(%i!<%a%C%;!<%8$,(B + $B%]%C%W%"%C%W$5$l$J$/$F$b!"(BEvent Viewer $B$G(B Application Event Log $B$r(B + $B%A%'%C%/$7$F$/$@$5$$!#(B</strong></p> + +<h2><a name=cmdline>Windows $B$G%3%^%s%I%i%$%s$+$i(B Apache $B$rF0$+$9(B</a></h2> + +$B%3%^%s%I%i%$%s$+$i(B Apache $B%5!<%S%9$r@)8f$9$k$3$H$K4X$9$k>\:Y$K$D$$$F$O!"(B +<a href="windows.html#cmdline">$B%3%s%=!<%k%3%^%s%I%i%$%s(B</a>$B$N>O$r;2>H$7$F$/$@$5$$!#(B + + +<h2><a name=signal>$B%5!<%S%9$H$7$F$N(B Apache $B$r@)8f$9$k(B</a></h2> + +<p>Apache $B$OJ#?t%$%s%9%H!<%k$7$F!"%5!<%S%9$H$7$FF0$+$9$3$H$,$G$-$^$9!#(B + $B%$%s%9%H!<%k$5$l$?(B Apache $B%5!<%S%9$r3+;O!":F3+!"=*N;!"Dd;_$9$k$K$O(B + $B0J2<$N$h$&$K$7$^$9(B:</p> + +<pre> + apache -n "service name" -k start + apache -n "service name" -k restart + apache -n "service name" -k shutdown + apache -n "service name" -k stop +</pre> + +<p>-n $B%*%W%7%g%s$N$J$$(B -k $B%3%^%s%I$O%3%s%=!<%k%&%#%s%I%&$G5/F0$7$F$$$k(B Apache $B$K(B + $B8~$1$i$l$k$N$G!"%G%U%)%k%H$N(B "Apache" $B%5!<%S%9$G$O(B -n Apache $B%*%W%7%g%s$,(B + $BI,MW$G$9!#0zMQId$O%5!<%S%9L>$K%9%Z!<%9$,4^$^$l$k>l9g$K8B$j(B + $BI,MW$K$J$j$^$9!#(B</p> + +<p><strong>$BCm0U(B: + -k shutdown $B%3%^%s%I$NJLL>$N(B -k stop $B%3%^%s%I$O(B Apache $B%P!<%8%g%s(B 1.3.13 $B$GF3F~$5$l$^$7$?!#(B</strong> + $B$=$l$h$jA0$N%P!<%8%g%s$N(B Apache $B$G$O(B -k shutdown $B%*%W%7%g%s$@$1$,G'<1$5$l$^$9!#(B + 1.3.3 $B$h$jA0$N(B Apache $B$G$O(B<em>$B$I$s$J(B</em> -k $B%*%W%7%g%s$bG'<1$5$l$^$;$s$G$7$?!#(B</p> + +<p>-D, -C, -c $B%*%W%7%g%s$r4^$a$?(B apache -k start $B%3%^%s%I$G(B + $B5/F0;~$N%*%W%7%g%s$r;XDj$9$k$3$H$b$G$-$^$9!#(B + $B$3$l$i$O%5!<%S%9$N@_Dj%W%m%;%9$K1F6A$7$^$9!#(B + <IfDefine> $B%V%m%C%/$G;H$&$3$H$G>r7o$D$-$N;XDj$r$9$k$3$H$b$G$-$^$9!#(B + $B%5!<%P%k!<%H$N%Q%9$d(B -d $B%*%W%7%g%s$d(B -f $B%*%W%7%g%s$r;H$C$F@_Dj%U%!%$%k$r>e=q$-$9$k$3$H$b$G$-$^$9!#(B + $B$3$l$i$N%*%W%7%g%s$O(B -k restart $B%3%^%s%I$K$h$C$F$bFI$_9~$^$l$^$9$,!"(B + $B%5!<%S%9$NF0:nCf$K$OH?1G$5$l$:!"%5!<%S%9$N5/F0;~$K$N$_H?1G$5$l$^$9!#(B</p> + +<p>$B%5!<%S%9$O(B Windows NT/2000 $B$N(B Service Control $B%"%W%l%C%H$K$b8=$l$^$9!#(B + NT $B$N>l9g!"(BSettings -> Control Panel -> Services $B%(%s%H%j!"(B + 2000 $B$N>l9g!"(BSettings -> Control Panel -> Administrative Tools -> + Services $B%(%s%H%j$G;2>H$G$-$^$9!#(B + $B$=$3$+$i3+;O$d=*N;$5$;$k(B Apache $B%5!<%S%9$rA*Br$G$-$^$9!#(B + -D, -C, -c $B$N$h$&$JDI2C$N%*%W%7%g%s$d!"3+;O%Q%i%a!<%?$N%G%U%)%k%H$N(B + -d $B$d(B -f $B%*%W%7%g%s$N>e=q$-$O3+;O%\%?%s$r%/%j%C%/$9$kA0$K$7$F$/$@$5$$!#(B + $B$3$l$i$N%*%W%7%g%s$O(B apache -k start $B%3%^%s%I$HA4$/F1$8$h$&$K=hM}$5$l$^$9!#(B</p> + +<p>$B$5$i$K!"(BApache $B%5!<%S%9$N3+;O!"=*N;$K%M%$%F%#%V$N(B Windows NT/2000 $B$N(B + NET $B%3%^%s%I$r;H$&$3$H$b$G$-$^$9(B:</p> + +<pre> + NET START "service name" + NET STOP "service name" +</pre> + +<p>$B7+$jJV$7$^$9$,!"%5!<%S%9L>$,%9%Z!<%9$r4^$`>l9g$N$_!"0zMQId$,(B + $BI,MW$K$J$j$^$9!#(B-D, -c, -C $B$J$I$NDI2C%*%W%7%g%s$r(B NET START + $B%3%^%s%I$G;XDj$9$kJ}K!$O$"$j$^$;$s!#%*%W%7%g%s$,I,MW$J$H$-$O!"(B + $BB>$N(B 2 $B<oN`$N%a%=%C%I$N$I$A$i$+$r;HMQ$7$F$/$@$5$$!#(B</p> + +<h2><a name=win95svc>$BHs>o$K<B83E*$J(B Windows 95/98 $B%5!<%S%9(B</a></h2> + +<p><strong>$BCm0U(B: Windows 95 $B$H(B 98 $B$G$N%5!<%S%9%*%W%7%g%s$O(B Apache 1.3.13 $B0J9_$G$N$_(B + $BM-8z$G$9!#(B</strong>$B0JA0$N%P!<%8%g%s$N(B Apache $B$G$O(B Windows 95/98 $B$G$O(B + $B%3%s%=!<%kAk$G$N$_%5%]!<%H$5$l$F$$$^$9!#(B</p> + +<p>Windows NT/2000 $B$G$N%5!<%S%9$HF1$8$h$&$J(B Windows 95/98 $B>e$G$N(B + Apache $B$NF0:n$r$"$kDxEY%5%]!<%H$7$F$$$^$9!#$=$l$O(B<em>$BHs>o$K<B83E*(B</em>$B$J$b$N$G!"(B + $B$b$7(B ($B$9$Y$F=gD4$K(B) $BF0$$$?$H$7$F$b(B Apache Software Foundation $B$O!"(B + $B?.Mj@-$d>-Mh$N%5%]!<%H$OJ]>Z$7$^$;$s!#0J9_$K$D$$$F$O<+J,<+?H$N%j%9%/$G?J$s$G$/$@$5$$(B!</p> + +<p>Apache $B$,(B <a href="windows.html#test">Command Prompt</a> $B$G(B + $B@5>o$KF0:n$9$k$3$H$r3NG'$7$?$i!"(BWindows NT/2000 $B$N>l9g$HF1$8%3%^%s%I$G(B + $B%$%s%9%H!<%k!"@)8f!"%"%s%$%s%9%H!<%k$9$k$3$H$,$G$-$^$9!#(B</p> + +<p>$B$?$@$7!"Cm0U$9$Y$-=EMW$J0c$$$,$"$j$^$9(B:</p> + +<p>Apache $B$O!"5/F0$,@.8y$9$k$H!"%P%C%/%0%i%&%s%I$GF0:n$7$^$9!#(B + $B%G%9%/%H%C%W$N%7%g!<%H%+%C%H$rDL$7$F!"%3%^%s%I(B + +<pre> + Apache -n "service name" -k start +</pre> + +<p>$B$r<B9T$7$?$i!"Nc$($P!"%5!<%S%9$,$&$^$/3+;O$5$l$l$P!"%3%s%=!<%kAk$O(B + $BI=<($5$l$^$9$,$9$0$K8+$($J$/$J$j$^$9!#(B + Apache $B$,3+;O;~$K!"(Bhttpd.conf $B%U%!%$%k$K$*$1$kIT@5$J%(%s%H%j$N$h$&$J(B + $B%(%i!<$r8+$D$1$k$H!"%3%s%=!<%kAk$OI=<($5$l$?$^$^$G;D$j$^$9!#(B + $B$=$3$K$OLdBj$N860x$NDI5a$KLr$KN)$D%(%i!<%a%C%;!<%8$,I=<($5$l$F$$$k$G$7$g$&!#(B + $B$=$N:](B Apache $B$N(B logs $B%G%#%l%/%H%j$N(B error.log $B%U%!%$%k$rD4$YD>$9$Y$-$G$9!#(B</p> + +<p>Windows 95/98 $B$G$O(B NET START $B$d(B NET STOP $B%3%^%s%I$r%5%]!<%H$7$F$$$J$$$N$G!"(B + Command Prompt $B$+$i(B Apache $B$N(B Service Control $B%*%W%7%g%s$r(B + $B;HMQ$7$J$1$l$P$J$j$^$;$s!#(B + $B$3$l$i$N%3%^%s%IKh$K%7%g!<%H%+%C%H$rMQ0U$7!"%9%?!<%H%a%K%e!<$d%G%9%/%H%C%W$+$i$=$l$r$?$@A*$V$3$H$GI,MW$JF0:n$r(B + $B<B9T$9$k$h$&$K$9$k$N$O$h$$J}K!$G$9!#(B</p> + +<p>Apache $B$H(B Windows 95/98 $B$OFCDj$N%f!<%6$KBP$7$F!"(BApache $B%5!<%S%9$r%M%C%H%o!<%/FC8"$G$ODs6!$7$^$;$s!#(B + $B<B:]!"(BWindows 95/98 $B$O$I$s$J%;%-%e%j%F%#$b%m!<%+%k%^%7%s$KDs6!$7$F$$$^$;$s!#(B + Apache Software Fondation $B$,%Q%V%j%C%/$J(B httpd $B%5!<%P$H$7$F(B + Windows 95/98 $B$N;HMQ$r7h$7$FG'$a$J$$$N$O!"$3$l$,C1=c$JM}M3$G$9!#(B + $B$3$l$i$O!"(Bweb $B%3%s%F%s%D$N@):n$d(B Apache $B%5!<%P$N3X=,!"(B + $B$^$?$O0BA4$J%$%s%H%i%M%C%H>e$N%5!<%P!"%W%i%$%Y!<%H%M%C%H%o!<%/$N(B + $B%f!<%6$rJd=u$9$k$?$a$KJX59>eB8:_$7$F$$$k$K$9$.$^$;$s!#(B</p> + + <hr /> + + <h3 align="CENTER">Apache HTTP Server</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + +</body> +</html> diff --git a/usr.sbin/httpd/icons/a.png b/usr.sbin/httpd/icons/a.png Binary files differnew file mode 100644 index 00000000000..c1840256dcf --- /dev/null +++ b/usr.sbin/httpd/icons/a.png diff --git a/usr.sbin/httpd/icons/alert.black.png b/usr.sbin/httpd/icons/alert.black.png Binary files differnew file mode 100644 index 00000000000..af6b1246ad7 --- /dev/null +++ b/usr.sbin/httpd/icons/alert.black.png diff --git a/usr.sbin/httpd/icons/alert.red.png b/usr.sbin/httpd/icons/alert.red.png Binary files differnew file mode 100644 index 00000000000..b9222fd5246 --- /dev/null +++ b/usr.sbin/httpd/icons/alert.red.png diff --git a/usr.sbin/httpd/icons/apache_pb.png b/usr.sbin/httpd/icons/apache_pb.png Binary files differnew file mode 100644 index 00000000000..eb99a8cd393 --- /dev/null +++ b/usr.sbin/httpd/icons/apache_pb.png diff --git a/usr.sbin/httpd/icons/back.png b/usr.sbin/httpd/icons/back.png Binary files differnew file mode 100644 index 00000000000..2d8d353bbc7 --- /dev/null +++ b/usr.sbin/httpd/icons/back.png diff --git a/usr.sbin/httpd/icons/ball.gray.png b/usr.sbin/httpd/icons/ball.gray.png Binary files differnew file mode 100644 index 00000000000..7b756f2d82d --- /dev/null +++ b/usr.sbin/httpd/icons/ball.gray.png diff --git a/usr.sbin/httpd/icons/ball.red.png b/usr.sbin/httpd/icons/ball.red.png Binary files differnew file mode 100644 index 00000000000..05f3e50629c --- /dev/null +++ b/usr.sbin/httpd/icons/ball.red.png diff --git a/usr.sbin/httpd/icons/binary.png b/usr.sbin/httpd/icons/binary.png Binary files differnew file mode 100644 index 00000000000..c5119d1e1ea --- /dev/null +++ b/usr.sbin/httpd/icons/binary.png diff --git a/usr.sbin/httpd/icons/binhex.png b/usr.sbin/httpd/icons/binhex.png Binary files differnew file mode 100644 index 00000000000..eff532202d3 --- /dev/null +++ b/usr.sbin/httpd/icons/binhex.png diff --git a/usr.sbin/httpd/icons/blank.png b/usr.sbin/httpd/icons/blank.png Binary files differnew file mode 100644 index 00000000000..3802c03c9c8 --- /dev/null +++ b/usr.sbin/httpd/icons/blank.png diff --git a/usr.sbin/httpd/icons/bomb.png b/usr.sbin/httpd/icons/bomb.png Binary files differnew file mode 100644 index 00000000000..5261a0575e3 --- /dev/null +++ b/usr.sbin/httpd/icons/bomb.png diff --git a/usr.sbin/httpd/icons/box1.png b/usr.sbin/httpd/icons/box1.png Binary files differnew file mode 100644 index 00000000000..c55fccf8dc8 --- /dev/null +++ b/usr.sbin/httpd/icons/box1.png diff --git a/usr.sbin/httpd/icons/box2.png b/usr.sbin/httpd/icons/box2.png Binary files differnew file mode 100644 index 00000000000..26d14325d97 --- /dev/null +++ b/usr.sbin/httpd/icons/box2.png diff --git a/usr.sbin/httpd/icons/broken.png b/usr.sbin/httpd/icons/broken.png Binary files differnew file mode 100644 index 00000000000..e8fd150a339 --- /dev/null +++ b/usr.sbin/httpd/icons/broken.png diff --git a/usr.sbin/httpd/icons/burst.png b/usr.sbin/httpd/icons/burst.png Binary files differnew file mode 100644 index 00000000000..2329898f2a4 --- /dev/null +++ b/usr.sbin/httpd/icons/burst.png diff --git a/usr.sbin/httpd/icons/c.png b/usr.sbin/httpd/icons/c.png Binary files differnew file mode 100644 index 00000000000..41593b36b36 --- /dev/null +++ b/usr.sbin/httpd/icons/c.png diff --git a/usr.sbin/httpd/icons/comp.blue.png b/usr.sbin/httpd/icons/comp.blue.png Binary files differnew file mode 100644 index 00000000000..60ff156deb9 --- /dev/null +++ b/usr.sbin/httpd/icons/comp.blue.png diff --git a/usr.sbin/httpd/icons/comp.gray.png b/usr.sbin/httpd/icons/comp.gray.png Binary files differnew file mode 100644 index 00000000000..01538f8f316 --- /dev/null +++ b/usr.sbin/httpd/icons/comp.gray.png diff --git a/usr.sbin/httpd/icons/compressed.png b/usr.sbin/httpd/icons/compressed.png Binary files differnew file mode 100644 index 00000000000..de7276dbc08 --- /dev/null +++ b/usr.sbin/httpd/icons/compressed.png diff --git a/usr.sbin/httpd/icons/continued.png b/usr.sbin/httpd/icons/continued.png Binary files differnew file mode 100644 index 00000000000..8f656e27f24 --- /dev/null +++ b/usr.sbin/httpd/icons/continued.png diff --git a/usr.sbin/httpd/icons/dir.png b/usr.sbin/httpd/icons/dir.png Binary files differnew file mode 100644 index 00000000000..6b97905067e --- /dev/null +++ b/usr.sbin/httpd/icons/dir.png diff --git a/usr.sbin/httpd/icons/down.png b/usr.sbin/httpd/icons/down.png Binary files differnew file mode 100644 index 00000000000..be3904b0451 --- /dev/null +++ b/usr.sbin/httpd/icons/down.png diff --git a/usr.sbin/httpd/icons/dvi.png b/usr.sbin/httpd/icons/dvi.png Binary files differnew file mode 100644 index 00000000000..19c417f227b --- /dev/null +++ b/usr.sbin/httpd/icons/dvi.png diff --git a/usr.sbin/httpd/icons/f.png b/usr.sbin/httpd/icons/f.png Binary files differnew file mode 100644 index 00000000000..c946f5b3165 --- /dev/null +++ b/usr.sbin/httpd/icons/f.png diff --git a/usr.sbin/httpd/icons/folder.open.png b/usr.sbin/httpd/icons/folder.open.png Binary files differnew file mode 100644 index 00000000000..dd2d7e0cc2d --- /dev/null +++ b/usr.sbin/httpd/icons/folder.open.png diff --git a/usr.sbin/httpd/icons/folder.png b/usr.sbin/httpd/icons/folder.png Binary files differnew file mode 100644 index 00000000000..6b97905067e --- /dev/null +++ b/usr.sbin/httpd/icons/folder.png diff --git a/usr.sbin/httpd/icons/folder.sec.png b/usr.sbin/httpd/icons/folder.sec.png Binary files differnew file mode 100644 index 00000000000..833f59ac517 --- /dev/null +++ b/usr.sbin/httpd/icons/folder.sec.png diff --git a/usr.sbin/httpd/icons/forward.png b/usr.sbin/httpd/icons/forward.png Binary files differnew file mode 100644 index 00000000000..c5584a4c306 --- /dev/null +++ b/usr.sbin/httpd/icons/forward.png diff --git a/usr.sbin/httpd/icons/generic.png b/usr.sbin/httpd/icons/generic.png Binary files differnew file mode 100644 index 00000000000..0227cabb5ce --- /dev/null +++ b/usr.sbin/httpd/icons/generic.png diff --git a/usr.sbin/httpd/icons/generic.red.png b/usr.sbin/httpd/icons/generic.red.png Binary files differnew file mode 100644 index 00000000000..be63249beb5 --- /dev/null +++ b/usr.sbin/httpd/icons/generic.red.png diff --git a/usr.sbin/httpd/icons/generic.sec.png b/usr.sbin/httpd/icons/generic.sec.png Binary files differnew file mode 100644 index 00000000000..0bd3d96bdcd --- /dev/null +++ b/usr.sbin/httpd/icons/generic.sec.png diff --git a/usr.sbin/httpd/icons/hand.right.png b/usr.sbin/httpd/icons/hand.right.png Binary files differnew file mode 100644 index 00000000000..93035c658ab --- /dev/null +++ b/usr.sbin/httpd/icons/hand.right.png diff --git a/usr.sbin/httpd/icons/hand.up.png b/usr.sbin/httpd/icons/hand.up.png Binary files differnew file mode 100644 index 00000000000..1405a6f1562 --- /dev/null +++ b/usr.sbin/httpd/icons/hand.up.png diff --git a/usr.sbin/httpd/icons/icon.sheet.png b/usr.sbin/httpd/icons/icon.sheet.png Binary files differnew file mode 100644 index 00000000000..b875cb6b1c1 --- /dev/null +++ b/usr.sbin/httpd/icons/icon.sheet.png diff --git a/usr.sbin/httpd/icons/image1.png b/usr.sbin/httpd/icons/image1.png Binary files differnew file mode 100644 index 00000000000..c1374fde333 --- /dev/null +++ b/usr.sbin/httpd/icons/image1.png diff --git a/usr.sbin/httpd/icons/image2.png b/usr.sbin/httpd/icons/image2.png Binary files differnew file mode 100644 index 00000000000..606d4fb87e5 --- /dev/null +++ b/usr.sbin/httpd/icons/image2.png diff --git a/usr.sbin/httpd/icons/image3.png b/usr.sbin/httpd/icons/image3.png Binary files differnew file mode 100644 index 00000000000..701fb1e1359 --- /dev/null +++ b/usr.sbin/httpd/icons/image3.png diff --git a/usr.sbin/httpd/icons/index.png b/usr.sbin/httpd/icons/index.png Binary files differnew file mode 100644 index 00000000000..9a0de350582 --- /dev/null +++ b/usr.sbin/httpd/icons/index.png diff --git a/usr.sbin/httpd/icons/layout.png b/usr.sbin/httpd/icons/layout.png Binary files differnew file mode 100644 index 00000000000..0a97c1c475f --- /dev/null +++ b/usr.sbin/httpd/icons/layout.png diff --git a/usr.sbin/httpd/icons/left.png b/usr.sbin/httpd/icons/left.png Binary files differnew file mode 100644 index 00000000000..d6e2404a811 --- /dev/null +++ b/usr.sbin/httpd/icons/left.png diff --git a/usr.sbin/httpd/icons/link.png b/usr.sbin/httpd/icons/link.png Binary files differnew file mode 100644 index 00000000000..4714d0ef40a --- /dev/null +++ b/usr.sbin/httpd/icons/link.png diff --git a/usr.sbin/httpd/icons/movie.png b/usr.sbin/httpd/icons/movie.png Binary files differnew file mode 100644 index 00000000000..5615180de88 --- /dev/null +++ b/usr.sbin/httpd/icons/movie.png diff --git a/usr.sbin/httpd/icons/p.png b/usr.sbin/httpd/icons/p.png Binary files differnew file mode 100644 index 00000000000..3fbe0e8801e --- /dev/null +++ b/usr.sbin/httpd/icons/p.png diff --git a/usr.sbin/httpd/icons/patch.png b/usr.sbin/httpd/icons/patch.png Binary files differnew file mode 100644 index 00000000000..808ed7865fe --- /dev/null +++ b/usr.sbin/httpd/icons/patch.png diff --git a/usr.sbin/httpd/icons/pdf.png b/usr.sbin/httpd/icons/pdf.png Binary files differnew file mode 100644 index 00000000000..516142bb47b --- /dev/null +++ b/usr.sbin/httpd/icons/pdf.png diff --git a/usr.sbin/httpd/icons/pie0.png b/usr.sbin/httpd/icons/pie0.png Binary files differnew file mode 100644 index 00000000000..12e0200c97f --- /dev/null +++ b/usr.sbin/httpd/icons/pie0.png diff --git a/usr.sbin/httpd/icons/pie1.png b/usr.sbin/httpd/icons/pie1.png Binary files differnew file mode 100644 index 00000000000..c44c793ed8b --- /dev/null +++ b/usr.sbin/httpd/icons/pie1.png diff --git a/usr.sbin/httpd/icons/pie2.png b/usr.sbin/httpd/icons/pie2.png Binary files differnew file mode 100644 index 00000000000..e0b7167d913 --- /dev/null +++ b/usr.sbin/httpd/icons/pie2.png diff --git a/usr.sbin/httpd/icons/pie3.png b/usr.sbin/httpd/icons/pie3.png Binary files differnew file mode 100644 index 00000000000..820a3c35fa9 --- /dev/null +++ b/usr.sbin/httpd/icons/pie3.png diff --git a/usr.sbin/httpd/icons/pie4.png b/usr.sbin/httpd/icons/pie4.png Binary files differnew file mode 100644 index 00000000000..35490d857c7 --- /dev/null +++ b/usr.sbin/httpd/icons/pie4.png diff --git a/usr.sbin/httpd/icons/pie5.png b/usr.sbin/httpd/icons/pie5.png Binary files differnew file mode 100644 index 00000000000..359b7d377f4 --- /dev/null +++ b/usr.sbin/httpd/icons/pie5.png diff --git a/usr.sbin/httpd/icons/pie6.png b/usr.sbin/httpd/icons/pie6.png Binary files differnew file mode 100644 index 00000000000..4b293eae18c --- /dev/null +++ b/usr.sbin/httpd/icons/pie6.png diff --git a/usr.sbin/httpd/icons/pie7.png b/usr.sbin/httpd/icons/pie7.png Binary files differnew file mode 100644 index 00000000000..6bfa2d06ae2 --- /dev/null +++ b/usr.sbin/httpd/icons/pie7.png diff --git a/usr.sbin/httpd/icons/pie8.png b/usr.sbin/httpd/icons/pie8.png Binary files differnew file mode 100644 index 00000000000..716cf2822bf --- /dev/null +++ b/usr.sbin/httpd/icons/pie8.png diff --git a/usr.sbin/httpd/icons/portal.png b/usr.sbin/httpd/icons/portal.png Binary files differnew file mode 100644 index 00000000000..937c0f87cd6 --- /dev/null +++ b/usr.sbin/httpd/icons/portal.png diff --git a/usr.sbin/httpd/icons/ps.png b/usr.sbin/httpd/icons/ps.png Binary files differnew file mode 100644 index 00000000000..ccccf730b6c --- /dev/null +++ b/usr.sbin/httpd/icons/ps.png diff --git a/usr.sbin/httpd/icons/quill.png b/usr.sbin/httpd/icons/quill.png Binary files differnew file mode 100644 index 00000000000..b697770a882 --- /dev/null +++ b/usr.sbin/httpd/icons/quill.png diff --git a/usr.sbin/httpd/icons/right.png b/usr.sbin/httpd/icons/right.png Binary files differnew file mode 100644 index 00000000000..41f8529a84e --- /dev/null +++ b/usr.sbin/httpd/icons/right.png diff --git a/usr.sbin/httpd/icons/screw1.png b/usr.sbin/httpd/icons/screw1.png Binary files differnew file mode 100644 index 00000000000..11673ab97dc --- /dev/null +++ b/usr.sbin/httpd/icons/screw1.png diff --git a/usr.sbin/httpd/icons/screw2.png b/usr.sbin/httpd/icons/screw2.png Binary files differnew file mode 100644 index 00000000000..5d7d2cf65e9 --- /dev/null +++ b/usr.sbin/httpd/icons/screw2.png diff --git a/usr.sbin/httpd/icons/script.png b/usr.sbin/httpd/icons/script.png Binary files differnew file mode 100644 index 00000000000..2520570a775 --- /dev/null +++ b/usr.sbin/httpd/icons/script.png diff --git a/usr.sbin/httpd/icons/small/back.png b/usr.sbin/httpd/icons/small/back.png Binary files differnew file mode 100644 index 00000000000..2257df2140d --- /dev/null +++ b/usr.sbin/httpd/icons/small/back.png diff --git a/usr.sbin/httpd/icons/small/binary.png b/usr.sbin/httpd/icons/small/binary.png Binary files differnew file mode 100644 index 00000000000..2e2e1b073d6 --- /dev/null +++ b/usr.sbin/httpd/icons/small/binary.png diff --git a/usr.sbin/httpd/icons/small/binhex.png b/usr.sbin/httpd/icons/small/binhex.png Binary files differnew file mode 100644 index 00000000000..9deab419b61 --- /dev/null +++ b/usr.sbin/httpd/icons/small/binhex.png diff --git a/usr.sbin/httpd/icons/small/blank.png b/usr.sbin/httpd/icons/small/blank.png Binary files differnew file mode 100644 index 00000000000..86f57a504f7 --- /dev/null +++ b/usr.sbin/httpd/icons/small/blank.png diff --git a/usr.sbin/httpd/icons/small/broken.png b/usr.sbin/httpd/icons/small/broken.png Binary files differnew file mode 100644 index 00000000000..79c998c8c31 --- /dev/null +++ b/usr.sbin/httpd/icons/small/broken.png diff --git a/usr.sbin/httpd/icons/small/burst.png b/usr.sbin/httpd/icons/small/burst.png Binary files differnew file mode 100644 index 00000000000..2b21436c78e --- /dev/null +++ b/usr.sbin/httpd/icons/small/burst.png diff --git a/usr.sbin/httpd/icons/small/comp1.png b/usr.sbin/httpd/icons/small/comp1.png Binary files differnew file mode 100644 index 00000000000..6d8c3459ed0 --- /dev/null +++ b/usr.sbin/httpd/icons/small/comp1.png diff --git a/usr.sbin/httpd/icons/small/comp2.png b/usr.sbin/httpd/icons/small/comp2.png Binary files differnew file mode 100644 index 00000000000..57f7ad197b8 --- /dev/null +++ b/usr.sbin/httpd/icons/small/comp2.png diff --git a/usr.sbin/httpd/icons/small/compressed.png b/usr.sbin/httpd/icons/small/compressed.png Binary files differnew file mode 100644 index 00000000000..43acd8b943d --- /dev/null +++ b/usr.sbin/httpd/icons/small/compressed.png diff --git a/usr.sbin/httpd/icons/small/continued.png b/usr.sbin/httpd/icons/small/continued.png Binary files differnew file mode 100644 index 00000000000..db17c424650 --- /dev/null +++ b/usr.sbin/httpd/icons/small/continued.png diff --git a/usr.sbin/httpd/icons/small/dir.png b/usr.sbin/httpd/icons/small/dir.png Binary files differnew file mode 100644 index 00000000000..9bd6256bdbb --- /dev/null +++ b/usr.sbin/httpd/icons/small/dir.png diff --git a/usr.sbin/httpd/icons/small/dir2.png b/usr.sbin/httpd/icons/small/dir2.png Binary files differnew file mode 100644 index 00000000000..836daf49ef2 --- /dev/null +++ b/usr.sbin/httpd/icons/small/dir2.png diff --git a/usr.sbin/httpd/icons/small/doc.png b/usr.sbin/httpd/icons/small/doc.png Binary files differnew file mode 100644 index 00000000000..c560df21d3c --- /dev/null +++ b/usr.sbin/httpd/icons/small/doc.png diff --git a/usr.sbin/httpd/icons/small/forward.png b/usr.sbin/httpd/icons/small/forward.png Binary files differnew file mode 100644 index 00000000000..4ddbc61e142 --- /dev/null +++ b/usr.sbin/httpd/icons/small/forward.png diff --git a/usr.sbin/httpd/icons/small/generic.png b/usr.sbin/httpd/icons/small/generic.png Binary files differnew file mode 100644 index 00000000000..16374a12bbb --- /dev/null +++ b/usr.sbin/httpd/icons/small/generic.png diff --git a/usr.sbin/httpd/icons/small/generic2.png b/usr.sbin/httpd/icons/small/generic2.png Binary files differnew file mode 100644 index 00000000000..40d60c1df23 --- /dev/null +++ b/usr.sbin/httpd/icons/small/generic2.png diff --git a/usr.sbin/httpd/icons/small/generic3.png b/usr.sbin/httpd/icons/small/generic3.png Binary files differnew file mode 100644 index 00000000000..aa38963afa2 --- /dev/null +++ b/usr.sbin/httpd/icons/small/generic3.png diff --git a/usr.sbin/httpd/icons/small/image.png b/usr.sbin/httpd/icons/small/image.png Binary files differnew file mode 100644 index 00000000000..d92f0a5fcc4 --- /dev/null +++ b/usr.sbin/httpd/icons/small/image.png diff --git a/usr.sbin/httpd/icons/small/image2.png b/usr.sbin/httpd/icons/small/image2.png Binary files differnew file mode 100644 index 00000000000..4049bda5619 --- /dev/null +++ b/usr.sbin/httpd/icons/small/image2.png diff --git a/usr.sbin/httpd/icons/small/index.png b/usr.sbin/httpd/icons/small/index.png Binary files differnew file mode 100644 index 00000000000..080453e2151 --- /dev/null +++ b/usr.sbin/httpd/icons/small/index.png diff --git a/usr.sbin/httpd/icons/small/key.png b/usr.sbin/httpd/icons/small/key.png Binary files differnew file mode 100644 index 00000000000..1a45f67df31 --- /dev/null +++ b/usr.sbin/httpd/icons/small/key.png diff --git a/usr.sbin/httpd/icons/small/movie.png b/usr.sbin/httpd/icons/small/movie.png Binary files differnew file mode 100644 index 00000000000..7c126042c9a --- /dev/null +++ b/usr.sbin/httpd/icons/small/movie.png diff --git a/usr.sbin/httpd/icons/small/patch.png b/usr.sbin/httpd/icons/small/patch.png Binary files differnew file mode 100644 index 00000000000..c39f14435a0 --- /dev/null +++ b/usr.sbin/httpd/icons/small/patch.png diff --git a/usr.sbin/httpd/icons/small/ps.png b/usr.sbin/httpd/icons/small/ps.png Binary files differnew file mode 100644 index 00000000000..5c604230d07 --- /dev/null +++ b/usr.sbin/httpd/icons/small/ps.png diff --git a/usr.sbin/httpd/icons/small/rainbow.png b/usr.sbin/httpd/icons/small/rainbow.png Binary files differnew file mode 100644 index 00000000000..175053cb433 --- /dev/null +++ b/usr.sbin/httpd/icons/small/rainbow.png diff --git a/usr.sbin/httpd/icons/small/sound.png b/usr.sbin/httpd/icons/small/sound.png Binary files differnew file mode 100644 index 00000000000..6e3e95d3d01 --- /dev/null +++ b/usr.sbin/httpd/icons/small/sound.png diff --git a/usr.sbin/httpd/icons/small/sound2.png b/usr.sbin/httpd/icons/small/sound2.png Binary files differnew file mode 100644 index 00000000000..bc46eb48fe5 --- /dev/null +++ b/usr.sbin/httpd/icons/small/sound2.png diff --git a/usr.sbin/httpd/icons/small/tar.png b/usr.sbin/httpd/icons/small/tar.png Binary files differnew file mode 100644 index 00000000000..12f0347bf9c --- /dev/null +++ b/usr.sbin/httpd/icons/small/tar.png diff --git a/usr.sbin/httpd/icons/small/text.png b/usr.sbin/httpd/icons/small/text.png Binary files differnew file mode 100644 index 00000000000..b4e30f466d3 --- /dev/null +++ b/usr.sbin/httpd/icons/small/text.png diff --git a/usr.sbin/httpd/icons/small/transfer.png b/usr.sbin/httpd/icons/small/transfer.png Binary files differnew file mode 100644 index 00000000000..324048170a8 --- /dev/null +++ b/usr.sbin/httpd/icons/small/transfer.png diff --git a/usr.sbin/httpd/icons/small/unknown.png b/usr.sbin/httpd/icons/small/unknown.png Binary files differnew file mode 100644 index 00000000000..cad7e7a7aa0 --- /dev/null +++ b/usr.sbin/httpd/icons/small/unknown.png diff --git a/usr.sbin/httpd/icons/small/uu.png b/usr.sbin/httpd/icons/small/uu.png Binary files differnew file mode 100644 index 00000000000..ef87c82ee6c --- /dev/null +++ b/usr.sbin/httpd/icons/small/uu.png diff --git a/usr.sbin/httpd/icons/sound1.png b/usr.sbin/httpd/icons/sound1.png Binary files differnew file mode 100644 index 00000000000..7a766be6cc8 --- /dev/null +++ b/usr.sbin/httpd/icons/sound1.png diff --git a/usr.sbin/httpd/icons/sound2.png b/usr.sbin/httpd/icons/sound2.png Binary files differnew file mode 100644 index 00000000000..45112909398 --- /dev/null +++ b/usr.sbin/httpd/icons/sound2.png diff --git a/usr.sbin/httpd/icons/sphere1.png b/usr.sbin/httpd/icons/sphere1.png Binary files differnew file mode 100644 index 00000000000..2198ae89ec4 --- /dev/null +++ b/usr.sbin/httpd/icons/sphere1.png diff --git a/usr.sbin/httpd/icons/sphere2.png b/usr.sbin/httpd/icons/sphere2.png Binary files differnew file mode 100644 index 00000000000..257632ba46d --- /dev/null +++ b/usr.sbin/httpd/icons/sphere2.png diff --git a/usr.sbin/httpd/icons/tar.png b/usr.sbin/httpd/icons/tar.png Binary files differnew file mode 100644 index 00000000000..6c40521ff80 --- /dev/null +++ b/usr.sbin/httpd/icons/tar.png diff --git a/usr.sbin/httpd/icons/tex.png b/usr.sbin/httpd/icons/tex.png Binary files differnew file mode 100644 index 00000000000..906622d3844 --- /dev/null +++ b/usr.sbin/httpd/icons/tex.png diff --git a/usr.sbin/httpd/icons/text.png b/usr.sbin/httpd/icons/text.png Binary files differnew file mode 100644 index 00000000000..34d0edf86e4 --- /dev/null +++ b/usr.sbin/httpd/icons/text.png diff --git a/usr.sbin/httpd/icons/transfer.png b/usr.sbin/httpd/icons/transfer.png Binary files differnew file mode 100644 index 00000000000..efaf17b682f --- /dev/null +++ b/usr.sbin/httpd/icons/transfer.png diff --git a/usr.sbin/httpd/icons/unknown.png b/usr.sbin/httpd/icons/unknown.png Binary files differnew file mode 100644 index 00000000000..7c241c383c0 --- /dev/null +++ b/usr.sbin/httpd/icons/unknown.png diff --git a/usr.sbin/httpd/icons/up.png b/usr.sbin/httpd/icons/up.png Binary files differnew file mode 100644 index 00000000000..a69ea00c5b7 --- /dev/null +++ b/usr.sbin/httpd/icons/up.png diff --git a/usr.sbin/httpd/icons/uu.png b/usr.sbin/httpd/icons/uu.png Binary files differnew file mode 100644 index 00000000000..b1d1a8579d5 --- /dev/null +++ b/usr.sbin/httpd/icons/uu.png diff --git a/usr.sbin/httpd/icons/uuencoded.png b/usr.sbin/httpd/icons/uuencoded.png Binary files differnew file mode 100644 index 00000000000..b1d1a8579d5 --- /dev/null +++ b/usr.sbin/httpd/icons/uuencoded.png diff --git a/usr.sbin/httpd/icons/world1.png b/usr.sbin/httpd/icons/world1.png Binary files differnew file mode 100644 index 00000000000..3a65c00d846 --- /dev/null +++ b/usr.sbin/httpd/icons/world1.png diff --git a/usr.sbin/httpd/icons/world2.png b/usr.sbin/httpd/icons/world2.png Binary files differnew file mode 100644 index 00000000000..9f8a3ea4b35 --- /dev/null +++ b/usr.sbin/httpd/icons/world2.png diff --git a/usr.sbin/httpd/src/ap/ap_ebcdic.c b/usr.sbin/httpd/src/ap/ap_ebcdic.c new file mode 100644 index 00000000000..5834f4cc462 --- /dev/null +++ b/usr.sbin/httpd/src/ap/ap_ebcdic.c @@ -0,0 +1,261 @@ +/* ==================================================================== + * Copyright (c) 1995-2000 The Apache Group. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the Apache Group + * for use in the Apache HTTP server project (http://www.apache.org/)." + * + * 4. The names "Apache Server" and "Apache Group" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache" + * nor may "Apache" appear in their names without prior written + * permission of the Apache Group. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the Apache Group + * for use in the Apache HTTP server project (http://www.apache.org/)." + * + * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE GROUP OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Group and was originally based + * on public domain software written at the National Center for + * Supercomputing Applications, University of Illinois, Urbana-Champaign. + * For more information on the Apache Group and the Apache HTTP server + * project, please see <http://www.apache.org/>. + * + */ + +#include "httpd.h" +#include "http_core.h" +#include "http_config.h" +#include "ap_config.h" + +#ifdef CHARSET_EBCDIC +#include "ap_ebcdic.h" + + +/* ====================================================================== */ +/* Global functions for dealing with EBCDIC <-> ASCII conversion: */ +/* ====================================================================== */ + +/* EBCDIC-to-ASCII tables: + These tables are bijective - there are no ambigous or duplicate characters. + */ +const unsigned char os_toascii[256] = { +#ifdef _OSD_POSIX /* Fujitsu-Siemens' EDF04 character set on BS2000: */ +/*00*/ 0x00, 0x01, 0x02, 0x03, 0x85, 0x09, 0x86, 0x7f, + 0x87, 0x8d, 0x8e, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /*................*/ +/*10*/ 0x10, 0x11, 0x12, 0x13, 0x8f, 0x0a, 0x08, 0x97, + 0x18, 0x19, 0x9c, 0x9d, 0x1c, 0x1d, 0x1e, 0x1f, /*................*/ +/*20*/ 0x80, 0x81, 0x82, 0x83, 0x84, 0x92, 0x17, 0x1b, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x05, 0x06, 0x07, /*................*/ +/*30*/ 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04, + 0x98, 0x99, 0x9a, 0x9b, 0x14, 0x15, 0x9e, 0x1a, /*................*/ +/*40*/ 0x20, 0xa0, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5, + 0xe7, 0xf1, 0x60, 0x2e, 0x3c, 0x28, 0x2b, 0x7c, /* .........`.<(+|*/ +/*50*/ 0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef, + 0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0x9f, /*&.........!$*);.*/ +/*60*/ 0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5, + 0xc7, 0xd1, 0x5e, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, /*-/........^,%_>?*/ +/*70*/ 0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf, + 0xcc, 0xa8, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, /*..........:#@'="*/ +/*80*/ 0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1, /*.abcdefghi......*/ +/*90*/ 0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, + 0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4, /*.jklmnopqr......*/ +/*a0*/ 0xb5, 0xaf, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, + 0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0xdd, 0xde, 0xae, /*..stuvwxyz......*/ +/*b0*/ 0xa2, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc, + 0xbd, 0xbe, 0xac, 0x5b, 0x5c, 0x5d, 0xb4, 0xd7, /*...........[\]..*/ +/*c0*/ 0xf9, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5, /*.ABCDEFGHI......*/ +/*d0*/ 0xa6, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, + 0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xdb, 0xfa, 0xff, /*.JKLMNOPQR......*/ +/*e0*/ 0xd9, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, + 0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5, /*..STUVWXYZ......*/ +/*f0*/ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0xb3, 0x7b, 0xdc, 0x7d, 0xda, 0x7e /*0123456789.{.}.~*/ + +#elif defined(OS390) || defined(TPF) /* IBM's OS/390 and TPF systems: */ +/* +Bijective EBCDIC (character set IBM-1047) to US-ASCII table: +*/ + 0x00, 0x01, 0x02, 0x03, 0x85, 0x09, 0x86, 0x7f, /* 00-0f: */ + 0x87, 0x8d, 0x8e, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* ................ */ + 0x10, 0x11, 0x12, 0x13, 0x8f, 0x0a, 0x08, 0x97, /* 10-1f: */ + 0x18, 0x19, 0x9c, 0x9d, 0x1c, 0x1d, 0x1e, 0x1f, /* ................ */ + 0x80, 0x81, 0x82, 0x83, 0x84, 0x92, 0x17, 0x1b, /* 20-2f: */ + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x05, 0x06, 0x07, /* ................ */ + 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04, /* 30-3f: */ + 0x98, 0x99, 0x9a, 0x9b, 0x14, 0x15, 0x9e, 0x1a, /* ................ */ + 0x20, 0xa0, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5, /* 40-4f: */ + 0xe7, 0xf1, 0xa2, 0x2e, 0x3c, 0x28, 0x2b, 0x7c, /* ...........<(+| */ + 0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef, /* 50-5f: */ + 0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0x5e, /* &.........!$*);^ */ + 0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5, /* 60-6f: */ + 0xc7, 0xd1, 0xa6, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, /* -/.........,%_>? */ + 0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf, /* 70-7f: */ + 0xcc, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, /* .........`:#@'=" */ + 0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 80-8f: */ + 0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1, /* .abcdefghi...... */ + 0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, /* 90-9f: */ + 0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4, /* .jklmnopqr...... */ + 0xb5, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, /* a0-af: */ + 0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0x5b, 0xde, 0xae, /* .~stuvwxyz...[.. */ + 0xac, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc, /* b0-bf: */ + 0xbd, 0xbe, 0xdd, 0xa8, 0xaf, 0x5d, 0xb4, 0xd7, /* .............].. */ + 0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /* c0-cf: */ + 0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5, /* {ABCDEFGHI...... */ + 0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, /* d0-df: */ + 0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xf9, 0xfa, 0xff, /* }JKLMNOPQR...... */ + 0x5c, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, /* e0-ef: */ + 0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5, /* \.STUVWXYZ...... */ + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* f0-ff: */ + 0x38, 0x39, 0xb3, 0xdb, 0xdc, 0xd9, 0xda, 0x9f /* 0123456789...... */ +#else +#error Unimplemented EBCDIC platform. Please send information about your system to <martin@apache.org>! +#endif +}; + + +/* Bijective ascii-to-ebcdic table: */ +const unsigned char os_toebcdic[256] = { +#ifdef _OSD_POSIX /* Fujitsu-Siemens' EDF04 character set on BS2000: */ +/*00*/ 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, + 0x16, 0x05, 0x15, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /*................*/ +/*10*/ 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /*................*/ +/*20*/ 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* !"#$%&'()*+,-./ */ +/*30*/ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /*0123456789:;<=>?*/ +/*40*/ 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /*@ABCDEFGHIJKLMNO*/ +/*50*/ 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, + 0xe7, 0xe8, 0xe9, 0xbb, 0xbc, 0xbd, 0x6a, 0x6d, /*PQRSTUVWXYZ[\]^_*/ +/*60*/ 0x4a, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /*`abcdefghijklmno*/ +/*70*/ 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, + 0xa7, 0xa8, 0xa9, 0xfb, 0x4f, 0xfd, 0xff, 0x07, /*pqrstuvwxyz{|}~.*/ +/*80*/ 0x20, 0x21, 0x22, 0x23, 0x24, 0x04, 0x06, 0x08, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x14, /*................*/ +/*90*/ 0x30, 0x31, 0x25, 0x33, 0x34, 0x35, 0x36, 0x17, + 0x38, 0x39, 0x3a, 0x3b, 0x1a, 0x1b, 0x3e, 0x5f, /*................*/ +/*a0*/ 0x41, 0xaa, 0xb0, 0xb1, 0x9f, 0xb2, 0xd0, 0xb5, + 0x79, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xa1, /*................*/ +/*b0*/ 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /*................*/ +/*c0*/ 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, + 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /*................*/ +/*d0*/ 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, + 0x80, 0xe0, 0xfe, 0xdd, 0xfc, 0xad, 0xae, 0x59, /*................*/ +/*e0*/ 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, + 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /*................*/ +/*f0*/ 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, + 0x70, 0xc0, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf /*................*/ +#elif defined(OS390) || defined(TPF) /* IBM's OS/390 and TPF systems: */ +/* +The US-ASCII to EBCDIC (character set IBM-1047) table: +This table is bijective (no ambiguous or duplicate characters) +*/ + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 00-0f: */ + 0x16, 0x05, 0x15, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* ................ */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 10-1f: */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* ................ */ + 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 20-2f: */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* !"#$%&'()*+,-./ */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 30-3f: */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0123456789:;<=>? */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 40-4f: */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* @ABCDEFGHIJKLMNO */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 50-5f: */ + 0xe7, 0xe8, 0xe9, 0xad, 0xe0, 0xbd, 0x5f, 0x6d, /* PQRSTUVWXYZ[\]^_ */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 60-6f: */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* `abcdefghijklmno */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 70-7f: */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* pqrstuvwxyz{|}~. */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x04, 0x06, 0x08, /* 80-8f: */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x14, /* ................ */ + 0x30, 0x31, 0x25, 0x33, 0x34, 0x35, 0x36, 0x17, /* 90-9f: */ + 0x38, 0x39, 0x3a, 0x3b, 0x1a, 0x1b, 0x3e, 0xff, /* ................ */ + 0x41, 0xaa, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, /* a0-af: */ + 0xbb, 0xb4, 0x9a, 0x8a, 0xb0, 0xca, 0xaf, 0xbc, /* ................ */ + 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* b0-bf: */ + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* ................ */ + 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* c0-cf: */ + 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* ................ */ + 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* d0-df: */ + 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xba, 0xae, 0x59, /* ................ */ + 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /* e0-ef: */ + 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* ................ */ + 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* f0-ff: */ + 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf /* ................ */ +#else +#error Unimplemented EBCDIC platform. Please send information about your system to <martin@apache.org>! +#endif +}; + + +/* Translate a memory block from EBCDIC (host charset) to ASCII (net charset) + * dest and srce may be identical, or separate memory blocks, but + * should not overlap. These functions intentionally have an interface + * compatible to memcpy(3). + */ + + +API_EXPORT(void *) +ebcdic2ascii(void *dest, const void *srce, size_t count) +{ + unsigned char *udest = dest; + const unsigned char *usrce = srce; + + while (count-- != 0) { + *udest++ = os_toascii[*usrce++]; + } + + return dest; +} + +API_EXPORT(void *) +ascii2ebcdic(void *dest, const void *srce, size_t count) +{ + unsigned char *udest = dest; + const unsigned char *usrce = srce; + + while (count-- != 0) { + *udest++ = os_toebcdic[*usrce++]; + } + + return dest; +} +#endif /*CHARSET_EBCDIC*/ diff --git a/usr.sbin/httpd/src/helpers/fixwin32mak.pl b/usr.sbin/httpd/src/helpers/fixwin32mak.pl new file mode 100644 index 00000000000..756f0a735c8 --- /dev/null +++ b/usr.sbin/httpd/src/helpers/fixwin32mak.pl @@ -0,0 +1,47 @@ +# +# fixwin32mak.pl ::: Apache/Win32 maintanace program +# +# This program, launched from the build/ directory, replaces all nasty absoulute paths +# in the win32 .mak files with the appropriate relative root. +# +# Run this program prior to committing or packaging any newly exported make files. + +use Cwd; +use IO::File; +use File::Find; + +chdir '..'; +$root = cwd; +$root =~ s|.:(.*)|cd "$1|; +$root =~ s|/|\\\\|g; +find(\&fixcwd, '.'); + +sub fixcwd { + if (m|.mak$|) { + $repl = $File::Find::dir; + $repl =~ s|^./||; + $repl =~ s|[^\./]+|..|g; + $repl =~ s|/|\\|; + $oname = $_; + $tname = '.#' . $_; + $verchg = 0; + $srcfl = new IO::File $_, "r" || die; + $dstfl = new IO::File $tname, "w" || die; + while ($src = <$srcfl>) { + if ($src =~ s|^(\s*)$root|$1cd "$repl|) { + $verchg = -1; + } + print $dstfl $src; + } + undef $srcfl; + undef $dstfl; + if ($verchg) { + unlink $oname || die; + rename $tname, $oname || die; + print "Corrected absolute paths within " . $oname . " in " . $File::Find::dir . "\n"; + } + else { + unlink $tname; + } + } +} diff --git a/usr.sbin/httpd/src/include/ap_ebcdic.h b/usr.sbin/httpd/src/include/ap_ebcdic.h new file mode 100644 index 00000000000..c3762fd8345 --- /dev/null +++ b/usr.sbin/httpd/src/include/ap_ebcdic.h @@ -0,0 +1,68 @@ +/* ==================================================================== + * Copyright (c) 1998-1999 The Apache Group. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the Apache Group + * for use in the Apache HTTP server project (http://www.apache.org/)." + * + * 4. The names "Apache Server" and "Apache Group" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache" + * nor may "Apache" appear in their names without prior written + * permission of the Apache Group. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the Apache Group + * for use in the Apache HTTP server project (http://www.apache.org/)." + * + * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE GROUP OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Group and was originally based + * on public domain software written at the National Center for + * Supercomputing Applications, University of Illinois, Urbana-Champaign. + * For more information on the Apache Group and the Apache HTTP server + * project, please see <http://www.apache.org/>. + * + */ + +#ifndef AP_EBCDIC_H +#define AP_EBCDIC_H "$Id: ap_ebcdic.h,v 1.1 2002/02/12 07:56:49 beck Exp $" + +#include <sys/types.h> + +extern const unsigned char os_toascii[256]; +extern const unsigned char os_toebcdic[256]; +API_EXPORT(void *) ebcdic2ascii(void *dest, const void *srce, size_t count); +API_EXPORT(void *) ascii2ebcdic(void *dest, const void *srce, size_t count); + +#endif /*AP_EBCDIC_H*/ diff --git a/usr.sbin/httpd/src/modules/standard/Makefile.Cygwin b/usr.sbin/httpd/src/modules/standard/Makefile.Cygwin new file mode 100644 index 00000000000..61ac32af916 --- /dev/null +++ b/usr.sbin/httpd/src/modules/standard/Makefile.Cygwin @@ -0,0 +1,57 @@ +# +# Extra rule sets for making shared module DLLs for Cygwin 1.x +# +# On Cygwin OS the user needs to run twice "make" if shared modules have +# been requested using the --enable-shared=<module> configure flag. +# This is because when we pass the module mod_foo.c we have no import +# library, usually src/libhttpd.dll to link against in this case. So the +# two "make" runs do the following: +# +# 1st run: builds all static modules and links everything to the +# shared core DLL, which is also the import library for any +# further shared modules, including the apxs tool mechanism. +# +# 2nd run: builds *only* the shared module DLLs specified by the +# --enable-shared configure switch and of course updates +# the buildmark.o and hence httpd's build date. +# +# Any suggestions in getting this done in one step are highly welcome. +# Stipe Tolj <tolj@wapme-systems.de> +# + +# overwrite variables that are defined in previous makefile +LD_SHLIB=$(CC) +LDFLAGS_SHLIB=--shared + +define shared_dll + $(LD_SHLIB) $(LDFLAGS_SHLIB) -o $*.dll $(<:%.c=%.o) $(LIBS_SHLIB) \ + $(SRCDIR)/$(SHCORE_IMPLIB) $(LIBS1) +endef + +%.def : %.c + touch $*.def + +%.lo : %.c + $(CC) -c $(INCLUDES) $(CFLAGS) $(CFLAGS_SHLIB) $< && mv $*.o $*.lo + +%.dll : %.lo + @if [ -f "$(SRCDIR)/$(SHCORE_IMPLIB)" ]; then \ + rm -f $(SRCDIR)/$(SHCORE_IMPLIB).$$; \ + echo $(shared_dll); \ + $(shared_dll); \ + else \ + if [ ! -f "$(SRCDIR)/$(SHCORE_IMPLIB).$$" ]; then \ + echo "+--------------------------------------------------------+"; \ + echo "| There is no shared core 'libhttpd.dll' available! |"; \ + echo "| |"; \ + echo "| This is obviously your first 'make' run with configure |"; \ + echo "| flag SHARED_CORE enabled and shared modules. |"; \ + echo "| |"; \ + echo "| You will have to re-run 'make' after this run builds |"; \ + echo "| the required shared import library! |"; \ + echo "+--------------------------------------------------------+"; \ + sleep 10; \ + touch $(SRCDIR)/$(SHCORE_IMPLIB).$$; \ + fi; \ + fi; + diff --git a/usr.sbin/httpd/src/os/netware/ApacheModuleUniqueID.def b/usr.sbin/httpd/src/os/netware/ApacheModuleUniqueID.def new file mode 100644 index 00000000000..95cfc835465 --- /dev/null +++ b/usr.sbin/httpd/src/os/netware/ApacheModuleUniqueID.def @@ -0,0 +1 @@ +EXPORT unique_id_module diff --git a/usr.sbin/httpd/src/os/netware/ApacheModuleVhostAlias.def b/usr.sbin/httpd/src/os/netware/ApacheModuleVhostAlias.def new file mode 100644 index 00000000000..09f5dc2eae3 --- /dev/null +++ b/usr.sbin/httpd/src/os/netware/ApacheModuleVhostAlias.def @@ -0,0 +1 @@ +EXPORT vhost_alias_module diff --git a/usr.sbin/httpd/src/os/tpf/samples/linkhttp.jcl b/usr.sbin/httpd/src/os/tpf/samples/linkhttp.jcl new file mode 100644 index 00000000000..0d7124f8560 --- /dev/null +++ b/usr.sbin/httpd/src/os/tpf/samples/linkhttp.jcl @@ -0,0 +1,155 @@ +//LINKHTTP JOB MSGLEVEL=(1,1),CLASS=G,MSGCLASS=S
+/*ROUTE PRINT <your-id-here>
+/*ROUTE PUNCH <your-id-here>
+/*NOTIFY <your-id-here>
+//CCLE JCLLIB ORDER=(SYS1.CBC.SCBCPRC,SYS1.CEE.SCEEPROC)
+//PRELINK EXEC EDCPL,COND.LKED=(0,NE),
+// PPARM='OMVS,DLLNAME(CHTA)',
+// LREGSIZ='2048K',
+// LPARM='AMODE=31,RMODE=ANY,LIST,XREF'
+//PLKED.SYSLIB DD DISP=SHR,DSN=ACP.STUB.RLSE40
+// DD DISP=SHR,DSN=ACP.CLIB.RLSE40
+//PLKED.OBJLIB DD DISP=SHR,DSN=ACP.MAIN.SYST.OBBSS
+// DD DISP=SHR,DSN=ACP.DF.MAIN.SYST.OBBSS
+// DD DISP=SHR,DSN=ACP.OBJ.RLSE40.BSS
+//PLKED.OBJ01 DD PATH='/<your-path-here>/src/ap/ap_base64.o'
+//PLKED.OBJ02 DD PATH='/<your-path-here>/src/ap/ap_checkpass.o'
+//PLKED.OBJ03 DD PATH='/<your-path-here>/src/ap/ap_cpystrn.o'
+//PLKED.OBJ04 DD PATH='/<your-path-here>/src/ap/ap_ebcdic.o'
+//PLKED.OBJ05 DD PATH='/<your-path-here>/src/ap/ap_execve.o'
+//PLKED.OBJ06 DD PATH='/<your-path-here>/src/ap/ap_fnmatch.o'
+//PLKED.OBJ07 DD PATH='/<your-path-here>/src/ap/ap_getpass.o'
+//PLKED.OBJ08 DD PATH='/<your-path-here>/src/ap/ap_md5c.o'
+//PLKED.OBJ09 DD PATH='/<your-path-here>/src/ap/ap_sha1.o'
+//PLKED.OBJ10 DD PATH='/<your-path-here>/src/ap/ap_signal.o'
+//PLKED.OBJ11 DD PATH='/<your-path-here>/src/ap/ap_slack.o'
+//PLKED.OBJ12 DD PATH='/<your-path-here>/src/ap/ap_snprintf.o'
+//PLKED.OBJ13 DD PATH='/<your-path-here>/src/buildmark.o'
+//PLKED.OBJ14 DD PATH='/<your-path-here>/src/main/alloc.o'
+//PLKED.OBJ15 DD PATH='/<your-path-here>/src/main/buff.o'
+//PLKED.OBJ16 DD PATH='/<your-path-here>/src/main/http_config.o'
+//PLKED.OBJ17 DD PATH='/<your-path-here>/src/main/http_core.o'
+//PLKED.OBJ18 DD PATH='/<your-path-here>/src/main/http_log.o'
+//PLKED.OBJ19 DD PATH='/<your-path-here>/src/main/http_main.o'
+//PLKED.OBJ20 DD PATH='/<your-path-here>/src/main/http_protocol.o'
+//PLKED.OBJ21 DD PATH='/<your-path-here>/src/main/http_request.o'
+//PLKED.OBJ22 DD PATH='/<your-path-here>/src/main/http_vhost.o'
+//PLKED.OBJ23 DD PATH='/<your-path-here>/src/main/rfc1413.o'
+//PLKED.OBJ24 DD PATH='/<your-path-here>/src/main/util.o'
+//PLKED.OBJ25 DD PATH='/<your-path-here>/src/main/util_date.o'
+//PLKED.OBJ26 DD PATH='/<your-path-here>/src/main/util_md5.o'
+//PLKED.OBJ27 DD PATH='/<your-path-here>/src/main/util_script.o'
+//PLKED.OBJ28 DD PATH='/<your-path-here>/src/main/util_uri.o'
+//PLKED.OBJ29 DD PATH='/<your-path-here>/src/modules.o'
+//PLKED.OBJ30 DD PATH='/<your-path-here>/src/modules/standard/mod_acce\
+// ss.o'
+//PLKED.OBJ31 DD PATH='/<your-path-here>/src/modules/standard/mod_acti\
+// ons.o'
+//PLKED.OBJ32 DD PATH='/<your-path-here>/src/modules/standard/mod_alia\
+// s.o'
+//PLKED.OBJ33 DD PATH='/<your-path-here>/src/modules/standard/mod_asis\
+// .o'
+//PLKED.OBJ34 DD PATH='/<your-path-here>/src/modules/standard/mod_auth\
+// .o'
+//PLKED.OBJ35 DD PATH='/<your-path-here>/src/modules/standard/mod_auto\
+// index.o'
+//PLKED.OBJ36 DD PATH='/<your-path-here>/src/modules/standard/mod_cgi.\
+// o'
+//PLKED.OBJ37 DD PATH='/<your-path-here>/src/modules/standard/mod_dir.\
+// o'
+//PLKED.OBJ38 DD PATH='/<your-path-here>/src/modules/standard/mod_env.\
+// o'
+//PLKED.OBJ39 DD PATH='/<your-path-here>/src/modules/standard/mod_imap\
+// .o'
+//PLKED.OBJ40 DD PATH='/<your-path-here>/src/modules/standard/mod_incl\
+// ude.o'
+//PLKED.OBJ41 DD PATH='/<your-path-here>/src/modules/standard/mod_log_\
+// config.o'
+//PLKED.OBJ42 DD PATH='/<your-path-here>/src/modules/standard/mod_mime\
+// .o'
+//PLKED.OBJ43 DD PATH='/<your-path-here>/src/modules/standard/mod_nego\
+// tiation.o'
+//PLKED.OBJ44 DD PATH='/<your-path-here>/src/modules/standard/mod_sete\
+// nvif.o'
+//PLKED.OBJ45 DD PATH='/<your-path-here>/src/modules/standard/mod_stat\
+// us.o'
+//PLKED.OBJ46 DD PATH='/<your-path-here>/src/modules/standard/mod_user\
+// dir.o'
+//PLKED.OBJ47 DD PATH='/<your-path-here>/src/os/tpf/cgetop.o'
+//PLKED.OBJ48 DD PATH='/<your-path-here>/src/os/tpf/os.o'
+//PLKED.OBJ49 DD PATH='/<your-path-here>/src/os/tpf/os-inline.o'
+//PLKED.OBJ50 DD PATH='/<your-path-here>/src/regex/regcomp.o'
+//PLKED.OBJ51 DD PATH='/<your-path-here>/src/regex/regerror.o'
+//PLKED.OBJ52 DD PATH='/<your-path-here>/src/regex/regexec.o'
+//PLKED.OBJ53 DD PATH='/<your-path-here>/src/regex/regfree.o'
+//PLKED.OBJ54 DD PATH='/<your-path-here>/src/lib/expat-lite/hashtable.\
+// o'
+//PLKED.OBJ55 DD PATH='/<your-path-here>/src/lib/expat-lite/xmlparse.o\
+// '
+//PLKED.OBJ56 DD PATH='/<your-path-here>/src/lib/expat-lite/xmlrole.o'
+//PLKED.OBJ57 DD PATH='/<your-path-here>/src/lib/expat-lite/xmltok.o'
+//PLKED.SYSIN DD *
+ ORDER @@DLMHDR
+ INCLUDE OBJLIB(CSTRTD40)
+ INCLUDE OBJ01
+ INCLUDE OBJ02
+ INCLUDE OBJ03
+ INCLUDE OBJ04
+ INCLUDE OBJ05
+ INCLUDE OBJ06
+ INCLUDE OBJ07
+ INCLUDE OBJ08
+ INCLUDE OBJ09
+ INCLUDE OBJ10
+ INCLUDE OBJ11
+ INCLUDE OBJ12
+ INCLUDE OBJ13
+ INCLUDE OBJ14
+ INCLUDE OBJ15
+ INCLUDE OBJ16
+ INCLUDE OBJ17
+ INCLUDE OBJ18
+ INCLUDE OBJ19
+ INCLUDE OBJ20
+ INCLUDE OBJ21
+ INCLUDE OBJ22
+ INCLUDE OBJ23
+ INCLUDE OBJ24
+ INCLUDE OBJ25
+ INCLUDE OBJ26
+ INCLUDE OBJ27
+ INCLUDE OBJ28
+ INCLUDE OBJ29
+ INCLUDE OBJ30
+ INCLUDE OBJ31
+ INCLUDE OBJ32
+ INCLUDE OBJ33
+ INCLUDE OBJ34
+ INCLUDE OBJ35
+ INCLUDE OBJ36
+ INCLUDE OBJ37
+ INCLUDE OBJ38
+ INCLUDE OBJ39
+ INCLUDE OBJ40
+ INCLUDE OBJ41
+ INCLUDE OBJ42
+ INCLUDE OBJ43
+ INCLUDE OBJ44
+ INCLUDE OBJ45
+ INCLUDE OBJ46
+ INCLUDE OBJ47
+ INCLUDE OBJ48
+ INCLUDE OBJ49
+ INCLUDE OBJ50
+ INCLUDE OBJ51
+ INCLUDE OBJ52
+ INCLUDE OBJ53
+ INCLUDE OBJ54
+ INCLUDE OBJ55
+ INCLUDE OBJ56
+ INCLUDE OBJ57
+ INCLUDE OBJLIB(CINET640)
+/*
+//*** WARNING *** NEVER change .LK to .OB in SYSLMOD!!!
+//LKED.SYSLMOD DD DISP=OLD,DSN=<your-dsn-here>(CHTA<vv>)
+//
diff --git a/usr.sbin/httpd/src/os/win32/mod_mime_magic.dsp b/usr.sbin/httpd/src/os/win32/mod_mime_magic.dsp new file mode 100644 index 00000000000..d652bad9f8e --- /dev/null +++ b/usr.sbin/httpd/src/os/win32/mod_mime_magic.dsp @@ -0,0 +1,95 @@ +# Microsoft Developer Studio Project File - Name="mod_mime_magic" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=mod_mime_magic - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "mod_mime_magic.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "mod_mime_magic.mak" CFG="mod_mime_magic - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "mod_mime_magic - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "mod_mime_magic - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "mod_mime_magic - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c +# ADD CPP /nologo /MD /W3 /O2 /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Release\mod_mime_magic" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /map /machine:I386 /out:"Release/mod_mime_magic.so" /base:@"BaseAddr.ref",mod_mime_magic +# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /map /machine:I386 /out:"Release/mod_mime_magic.so" /base:@"BaseAddr.ref",mod_mime_magic + +!ELSEIF "$(CFG)" == "mod_mime_magic - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c +# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Debug\mod_mime_magic" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /map /debug /machine:I386 /out:"Debug/mod_mime_magic.so" /base:@"BaseAddr.ref",mod_mime_magic +# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /map /debug /machine:I386 /out:"Debug/mod_mime_magic.so" /base:@"BaseAddr.ref",mod_mime_magic + +!ENDIF + +# Begin Target + +# Name "mod_mime_magic - Win32 Release" +# Name "mod_mime_magic - Win32 Debug" +# Begin Source File + +SOURCE=..\..\modules\standard\mod_mime_magic.c +# End Source File +# End Target +# End Project diff --git a/usr.sbin/httpd/src/os/win32/mod_mime_magic.mak b/usr.sbin/httpd/src/os/win32/mod_mime_magic.mak new file mode 100644 index 00000000000..36a93c30d42 --- /dev/null +++ b/usr.sbin/httpd/src/os/win32/mod_mime_magic.mak @@ -0,0 +1,281 @@ +# Microsoft Developer Studio Generated NMAKE File, Based on mod_mime_magic.dsp +!IF "$(CFG)" == "" +CFG=mod_mime_magic - Win32 Release +!MESSAGE No configuration specified. Defaulting to mod_mime_magic - Win32\ + Release. +!ENDIF + +!IF "$(CFG)" != "mod_mime_magic - Win32 Release" && "$(CFG)" !=\ + "mod_mime_magic - Win32 Debug" +!MESSAGE Invalid configuration "$(CFG)" specified. +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "mod_mime_magic.mak" CFG="mod_mime_magic - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "mod_mime_magic - Win32 Release" (based on\ + "Win32 (x86) Dynamic-Link Library") +!MESSAGE "mod_mime_magic - Win32 Debug" (based on\ + "Win32 (x86) Dynamic-Link Library") +!MESSAGE +!ERROR An invalid configuration is specified. +!ENDIF + +!IF "$(OS)" == "Windows_NT" +NULL= +!ELSE +NULL=nul +!ENDIF + +!IF "$(CFG)" == "mod_mime_magic - Win32 Release" + +OUTDIR=.\Release +INTDIR=.\Release +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : "$(OUTDIR)\mod_mime_magic.so" + +!ELSE + +ALL : "ApacheCore - Win32 Release" "$(OUTDIR)\mod_mime_magic.so" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"ApacheCore - Win32 ReleaseCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\mod_mime_magic.idb" + -@erase "$(INTDIR)\mod_mime_magic.obj" + -@erase "$(OUTDIR)\mod_mime_magic.exp" + -@erase "$(OUTDIR)\mod_mime_magic.lib" + -@erase "$(OUTDIR)\mod_mime_magic.map" + -@erase "$(OUTDIR)\mod_mime_magic.so" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MD /W3 /O2 /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG"\ + /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\"\ + /Fd"$(INTDIR)\mod_mime_magic" /FD /c +CPP_OBJS=.\Release/ +CPP_SBRS=. + +.c{$(CPP_OBJS)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(CPP_OBJS)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(CPP_OBJS)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(CPP_SBRS)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(CPP_SBRS)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(CPP_SBRS)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32 +RSC=rc.exe +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_mime_magic.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no\ + /pdb:"$(OUTDIR)\mod_mime_magic.pdb" /map:"$(INTDIR)\mod_mime_magic.map"\ + /machine:I386 /out:"$(OUTDIR)\mod_mime_magic.so"\ + /implib:"$(OUTDIR)\mod_mime_magic.lib" /base:@"BaseAddr.ref",mod_mime_magic +LINK32_OBJS= \ + "$(INTDIR)\mod_mime_magic.obj" \ + "..\..\Release\ApacheCore.lib" + +"$(OUTDIR)\mod_mime_magic.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +!ELSEIF "$(CFG)" == "mod_mime_magic - Win32 Debug" + +OUTDIR=.\Debug +INTDIR=.\Debug +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : "$(OUTDIR)\mod_mime_magic.so" + +!ELSE + +ALL : "ApacheCore - Win32 Debug" "$(OUTDIR)\mod_mime_magic.so" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"ApacheCore - Win32 DebugCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\mod_mime_magic.idb" + -@erase "$(INTDIR)\mod_mime_magic.obj" + -@erase "$(OUTDIR)\mod_mime_magic.exp" + -@erase "$(OUTDIR)\mod_mime_magic.lib" + -@erase "$(OUTDIR)\mod_mime_magic.map" + -@erase "$(OUTDIR)\mod_mime_magic.pdb" + -@erase "$(OUTDIR)\mod_mime_magic.so" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D\ + "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\"\ + /Fd"$(INTDIR)\mod_mime_magic" /FD /c +CPP_OBJS=.\Debug/ +CPP_SBRS=. + +.c{$(CPP_OBJS)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(CPP_OBJS)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(CPP_OBJS)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(CPP_SBRS)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(CPP_SBRS)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(CPP_SBRS)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32 +RSC=rc.exe +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_mime_magic.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no\ + /pdb:"$(OUTDIR)\mod_mime_magic.pdb" /map:"$(INTDIR)\mod_mime_magic.map" /debug\ + /machine:I386 /out:"$(OUTDIR)\mod_mime_magic.so"\ + /implib:"$(OUTDIR)\mod_mime_magic.lib" /base:@"BaseAddr.ref",mod_mime_magic +LINK32_OBJS= \ + "$(INTDIR)\mod_mime_magic.obj" \ + "..\..\Debug\ApacheCore.lib" + +"$(OUTDIR)\mod_mime_magic.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +!ENDIF + + +!IF "$(CFG)" == "mod_mime_magic - Win32 Release" || "$(CFG)" ==\ + "mod_mime_magic - Win32 Debug" + +!IF "$(CFG)" == "mod_mime_magic - Win32 Release" + +"ApacheCore - Win32 Release" : + cd "..\../..\src" + $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release"\ + + cd ".\os\win32" + +"ApacheCore - Win32 ReleaseCLEAN" : + cd "..\../..\src" + $(MAKE) /$(MAKEFLAGS) CLEAN /F ".\ApacheCore.mak"\ + CFG="ApacheCore - Win32 Release" RECURSE=1 + cd ".\os\win32" + +!ELSEIF "$(CFG)" == "mod_mime_magic - Win32 Debug" + +"ApacheCore - Win32 Debug" : + cd "..\../..\src" + $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug" + cd ".\os\win32" + +"ApacheCore - Win32 DebugCLEAN" : + cd "..\../..\src" + $(MAKE) /$(MAKEFLAGS) CLEAN /F ".\ApacheCore.mak"\ + CFG="ApacheCore - Win32 Debug" RECURSE=1 + cd ".\os\win32" + +!ENDIF + +SOURCE=..\..\modules\standard\mod_mime_magic.c +DEP_CPP_MOD_M=\ + "..\..\include\ap.h"\ + "..\..\include\ap_alloc.h"\ + "..\..\include\ap_config.h"\ + "..\..\include\ap_ctype.h"\ + "..\..\include\ap_ebcdic.h"\ + "..\..\include\ap_mmn.h"\ + "..\..\include\buff.h"\ + "..\..\include\hsregex.h"\ + "..\..\include\http_config.h"\ + "..\..\include\http_core.h"\ + "..\..\include\http_log.h"\ + "..\..\include\http_protocol.h"\ + "..\..\include\http_request.h"\ + "..\..\include\httpd.h"\ + "..\..\include\util_uri.h"\ + ".\os.h"\ + ".\readdir.h"\ + +NODEP_CPP_MOD_M=\ + "..\..\include\ap_config_auto.h"\ + "..\..\include\sfio.h"\ + + +"$(INTDIR)\mod_mime_magic.obj" : $(SOURCE) $(DEP_CPP_MOD_M) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + + +!ENDIF + diff --git a/usr.sbin/httpd/src/os/win32/mod_unique_id.dsp b/usr.sbin/httpd/src/os/win32/mod_unique_id.dsp new file mode 100644 index 00000000000..ecf957da164 --- /dev/null +++ b/usr.sbin/httpd/src/os/win32/mod_unique_id.dsp @@ -0,0 +1,95 @@ +# Microsoft Developer Studio Project File - Name="mod_unique_id" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=mod_unique_id - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "mod_unique_id.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "mod_unique_id.mak" CFG="mod_unique_id - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "mod_unique_id - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "mod_unique_id - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "mod_unique_id - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c +# ADD CPP /nologo /MD /W3 /O2 /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Release\mod_unique_id" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib ws2_32.lib /nologo /subsystem:windows /dll /incremental:no /map /machine:I386 /out:"Release/mod_unique_id.so" /base:@"BaseAddr.ref",mod_unique_id +# ADD LINK32 kernel32.lib ws2_32.lib /nologo /subsystem:windows /dll /incremental:no /map /machine:I386 /out:"Release/mod_unique_id.so" /base:@"BaseAddr.ref",mod_unique_id + +!ELSEIF "$(CFG)" == "mod_unique_id - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c +# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Debug\mod_unique_id" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib ws2_32.lib /nologo /subsystem:windows /dll /incremental:no /map /debug /machine:I386 /out:"Debug/mod_unique_id.so" /base:@"BaseAddr.ref",mod_unique_id +# ADD LINK32 kernel32.lib ws2_32.lib /nologo /subsystem:windows /dll /incremental:no /map /debug /machine:I386 /out:"Debug/mod_unique_id.so" /base:@"BaseAddr.ref",mod_unique_id + +!ENDIF + +# Begin Target + +# Name "mod_unique_id - Win32 Release" +# Name "mod_unique_id - Win32 Debug" +# Begin Source File + +SOURCE=..\..\modules\standard\mod_unique_id.c +# End Source File +# End Target +# End Project diff --git a/usr.sbin/httpd/src/os/win32/mod_unique_id.mak b/usr.sbin/httpd/src/os/win32/mod_unique_id.mak new file mode 100644 index 00000000000..f8eb3f59f10 --- /dev/null +++ b/usr.sbin/httpd/src/os/win32/mod_unique_id.mak @@ -0,0 +1,281 @@ +# Microsoft Developer Studio Generated NMAKE File, Based on mod_unique_id.dsp +!IF "$(CFG)" == "" +CFG=mod_unique_id - Win32 Release +!MESSAGE No configuration specified. Defaulting to mod_unique_id - Win32\ + Release. +!ENDIF + +!IF "$(CFG)" != "mod_unique_id - Win32 Release" && "$(CFG)" !=\ + "mod_unique_id - Win32 Debug" +!MESSAGE Invalid configuration "$(CFG)" specified. +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "mod_unique_id.mak" CFG="mod_unique_id - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "mod_unique_id - Win32 Release" (based on\ + "Win32 (x86) Dynamic-Link Library") +!MESSAGE "mod_unique_id - Win32 Debug" (based on\ + "Win32 (x86) Dynamic-Link Library") +!MESSAGE +!ERROR An invalid configuration is specified. +!ENDIF + +!IF "$(OS)" == "Windows_NT" +NULL= +!ELSE +NULL=nul +!ENDIF + +!IF "$(CFG)" == "mod_unique_id - Win32 Release" + +OUTDIR=.\Release +INTDIR=.\Release +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : "$(OUTDIR)\mod_unique_id.so" + +!ELSE + +ALL : "ApacheCore - Win32 Release" "$(OUTDIR)\mod_unique_id.so" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"ApacheCore - Win32 ReleaseCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\mod_unique_id.idb" + -@erase "$(INTDIR)\mod_unique_id.obj" + -@erase "$(OUTDIR)\mod_unique_id.exp" + -@erase "$(OUTDIR)\mod_unique_id.lib" + -@erase "$(OUTDIR)\mod_unique_id.map" + -@erase "$(OUTDIR)\mod_unique_id.so" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MD /W3 /O2 /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG"\ + /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\"\ + /Fd"$(INTDIR)\mod_unique_id" /FD /c +CPP_OBJS=.\Release/ +CPP_SBRS=. + +.c{$(CPP_OBJS)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(CPP_OBJS)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(CPP_OBJS)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(CPP_SBRS)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(CPP_SBRS)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(CPP_SBRS)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32 +RSC=rc.exe +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_unique_id.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib ws2_32.lib /nologo /subsystem:windows /dll\ + /incremental:no /pdb:"$(OUTDIR)\mod_unique_id.pdb"\ + /map:"$(INTDIR)\mod_unique_id.map" /machine:I386\ + /out:"$(OUTDIR)\mod_unique_id.so" /implib:"$(OUTDIR)\mod_unique_id.lib"\ + /base:@"BaseAddr.ref",mod_unique_id +LINK32_OBJS= \ + "$(INTDIR)\mod_unique_id.obj" \ + "..\..\Release\ApacheCore.lib" + +"$(OUTDIR)\mod_unique_id.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +!ELSEIF "$(CFG)" == "mod_unique_id - Win32 Debug" + +OUTDIR=.\Debug +INTDIR=.\Debug +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : "$(OUTDIR)\mod_unique_id.so" + +!ELSE + +ALL : "ApacheCore - Win32 Debug" "$(OUTDIR)\mod_unique_id.so" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"ApacheCore - Win32 DebugCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\mod_unique_id.idb" + -@erase "$(INTDIR)\mod_unique_id.obj" + -@erase "$(OUTDIR)\mod_unique_id.exp" + -@erase "$(OUTDIR)\mod_unique_id.lib" + -@erase "$(OUTDIR)\mod_unique_id.map" + -@erase "$(OUTDIR)\mod_unique_id.pdb" + -@erase "$(OUTDIR)\mod_unique_id.so" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D\ + "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\"\ + /Fd"$(INTDIR)\mod_unique_id" /FD /c +CPP_OBJS=.\Debug/ +CPP_SBRS=. + +.c{$(CPP_OBJS)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(CPP_OBJS)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(CPP_OBJS)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(CPP_SBRS)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(CPP_SBRS)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(CPP_SBRS)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32 +RSC=rc.exe +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_unique_id.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib ws2_32.lib /nologo /subsystem:windows /dll\ + /incremental:no /pdb:"$(OUTDIR)\mod_unique_id.pdb"\ + /map:"$(INTDIR)\mod_unique_id.map" /debug /machine:I386\ + /out:"$(OUTDIR)\mod_unique_id.so" /implib:"$(OUTDIR)\mod_unique_id.lib"\ + /base:@"BaseAddr.ref",mod_unique_id +LINK32_OBJS= \ + "$(INTDIR)\mod_unique_id.obj" \ + "..\..\Debug\ApacheCore.lib" + +"$(OUTDIR)\mod_unique_id.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +!ENDIF + + +!IF "$(CFG)" == "mod_unique_id - Win32 Release" || "$(CFG)" ==\ + "mod_unique_id - Win32 Debug" + +!IF "$(CFG)" == "mod_unique_id - Win32 Release" + +"ApacheCore - Win32 Release" : + cd "..\../..\src" + $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release"\ + + cd ".\os\win32" + +"ApacheCore - Win32 ReleaseCLEAN" : + cd "..\../..\src" + $(MAKE) /$(MAKEFLAGS) CLEAN /F ".\ApacheCore.mak"\ + CFG="ApacheCore - Win32 Release" RECURSE=1 + cd ".\os\win32" + +!ELSEIF "$(CFG)" == "mod_unique_id - Win32 Debug" + +"ApacheCore - Win32 Debug" : + cd "..\../..\src" + $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug" + cd ".\os\win32" + +"ApacheCore - Win32 DebugCLEAN" : + cd "..\../..\src" + $(MAKE) /$(MAKEFLAGS) CLEAN /F ".\ApacheCore.mak"\ + CFG="ApacheCore - Win32 Debug" RECURSE=1 + cd ".\os\win32" + +!ENDIF + +SOURCE=..\..\modules\standard\mod_unique_id.c +DEP_CPP_MOD_U=\ + "..\..\include\ap.h"\ + "..\..\include\ap_alloc.h"\ + "..\..\include\ap_config.h"\ + "..\..\include\ap_ctype.h"\ + "..\..\include\ap_ebcdic.h"\ + "..\..\include\ap_mmn.h"\ + "..\..\include\buff.h"\ + "..\..\include\hsregex.h"\ + "..\..\include\http_config.h"\ + "..\..\include\http_log.h"\ + "..\..\include\httpd.h"\ + "..\..\include\multithread.h"\ + "..\..\include\util_uri.h"\ + ".\os.h"\ + ".\readdir.h"\ + +NODEP_CPP_MOD_U=\ + "..\..\include\ap_config_auto.h"\ + "..\..\include\sfio.h"\ + + +"$(INTDIR)\mod_unique_id.obj" : $(SOURCE) $(DEP_CPP_MOD_U) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + + +!ENDIF + diff --git a/usr.sbin/httpd/src/os/win32/mod_vhost_alias.dsp b/usr.sbin/httpd/src/os/win32/mod_vhost_alias.dsp new file mode 100644 index 00000000000..769306ca5ae --- /dev/null +++ b/usr.sbin/httpd/src/os/win32/mod_vhost_alias.dsp @@ -0,0 +1,95 @@ +# Microsoft Developer Studio Project File - Name="mod_vhost_alias" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=mod_vhost_alias - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "mod_vhost_alias.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "mod_vhost_alias.mak" CFG="mod_vhost_alias - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "mod_vhost_alias - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "mod_vhost_alias - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "mod_vhost_alias - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c +# ADD CPP /nologo /MD /W3 /O2 /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Release\mod_vhost_alias" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /map /machine:I386 /out:"Release/mod_vhost_alias.so" /base:@"BaseAddr.ref",mod_vhost_alias +# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /map /machine:I386 /out:"Release/mod_vhost_alias.so" /base:@"BaseAddr.ref",mod_vhost_alias + +!ELSEIF "$(CFG)" == "mod_vhost_alias - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c +# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Debug\mod_vhost_alias" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /map /debug /machine:I386 /out:"Debug/mod_vhost_alias.so" /base:@"BaseAddr.ref",mod_vhost_alias +# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /map /debug /machine:I386 /out:"Debug/mod_vhost_alias.so" /base:@"BaseAddr.ref",mod_vhost_alias + +!ENDIF + +# Begin Target + +# Name "mod_vhost_alias - Win32 Release" +# Name "mod_vhost_alias - Win32 Debug" +# Begin Source File + +SOURCE=..\..\modules\standard\mod_vhost_alias.c +# End Source File +# End Target +# End Project diff --git a/usr.sbin/httpd/src/os/win32/mod_vhost_alias.mak b/usr.sbin/httpd/src/os/win32/mod_vhost_alias.mak new file mode 100644 index 00000000000..73f6cd63349 --- /dev/null +++ b/usr.sbin/httpd/src/os/win32/mod_vhost_alias.mak @@ -0,0 +1,278 @@ +# Microsoft Developer Studio Generated NMAKE File, Based on mod_vhost_alias.dsp +!IF "$(CFG)" == "" +CFG=mod_vhost_alias - Win32 Release +!MESSAGE No configuration specified. Defaulting to mod_vhost_alias - Win32\ + Release. +!ENDIF + +!IF "$(CFG)" != "mod_vhost_alias - Win32 Release" && "$(CFG)" !=\ + "mod_vhost_alias - Win32 Debug" +!MESSAGE Invalid configuration "$(CFG)" specified. +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "mod_vhost_alias.mak" CFG="mod_vhost_alias - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "mod_vhost_alias - Win32 Release" (based on\ + "Win32 (x86) Dynamic-Link Library") +!MESSAGE "mod_vhost_alias - Win32 Debug" (based on\ + "Win32 (x86) Dynamic-Link Library") +!MESSAGE +!ERROR An invalid configuration is specified. +!ENDIF + +!IF "$(OS)" == "Windows_NT" +NULL= +!ELSE +NULL=nul +!ENDIF + +!IF "$(CFG)" == "mod_vhost_alias - Win32 Release" + +OUTDIR=.\Release +INTDIR=.\Release +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : "$(OUTDIR)\mod_vhost_alias.so" + +!ELSE + +ALL : "ApacheCore - Win32 Release" "$(OUTDIR)\mod_vhost_alias.so" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"ApacheCore - Win32 ReleaseCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\mod_vhost_alias.idb" + -@erase "$(INTDIR)\mod_vhost_alias.obj" + -@erase "$(OUTDIR)\mod_vhost_alias.exp" + -@erase "$(OUTDIR)\mod_vhost_alias.lib" + -@erase "$(OUTDIR)\mod_vhost_alias.map" + -@erase "$(OUTDIR)\mod_vhost_alias.so" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MD /W3 /O2 /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG"\ + /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\"\ + /Fd"$(INTDIR)\mod_vhost_alias" /FD /c +CPP_OBJS=.\Release/ +CPP_SBRS=. + +.c{$(CPP_OBJS)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(CPP_OBJS)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(CPP_OBJS)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(CPP_SBRS)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(CPP_SBRS)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(CPP_SBRS)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32 +RSC=rc.exe +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_vhost_alias.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no\ + /pdb:"$(OUTDIR)\mod_vhost_alias.pdb" /map:"$(INTDIR)\mod_vhost_alias.map"\ + /machine:I386 /out:"$(OUTDIR)\mod_vhost_alias.so"\ + /implib:"$(OUTDIR)\mod_vhost_alias.lib" /base:@"BaseAddr.ref",mod_vhost_alias +LINK32_OBJS= \ + "$(INTDIR)\mod_vhost_alias.obj" \ + "..\..\Release\ApacheCore.lib" + +"$(OUTDIR)\mod_vhost_alias.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +!ELSEIF "$(CFG)" == "mod_vhost_alias - Win32 Debug" + +OUTDIR=.\Debug +INTDIR=.\Debug +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : "$(OUTDIR)\mod_vhost_alias.so" + +!ELSE + +ALL : "ApacheCore - Win32 Debug" "$(OUTDIR)\mod_vhost_alias.so" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"ApacheCore - Win32 DebugCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\mod_vhost_alias.idb" + -@erase "$(INTDIR)\mod_vhost_alias.obj" + -@erase "$(OUTDIR)\mod_vhost_alias.exp" + -@erase "$(OUTDIR)\mod_vhost_alias.lib" + -@erase "$(OUTDIR)\mod_vhost_alias.map" + -@erase "$(OUTDIR)\mod_vhost_alias.pdb" + -@erase "$(OUTDIR)\mod_vhost_alias.so" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D\ + "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\"\ + /Fd"$(INTDIR)\mod_vhost_alias" /FD /c +CPP_OBJS=.\Debug/ +CPP_SBRS=. + +.c{$(CPP_OBJS)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(CPP_OBJS)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(CPP_OBJS)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(CPP_SBRS)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(CPP_SBRS)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(CPP_SBRS)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32 +RSC=rc.exe +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_vhost_alias.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no\ + /pdb:"$(OUTDIR)\mod_vhost_alias.pdb" /map:"$(INTDIR)\mod_vhost_alias.map"\ + /debug /machine:I386 /out:"$(OUTDIR)\mod_vhost_alias.so"\ + /implib:"$(OUTDIR)\mod_vhost_alias.lib" /base:@"BaseAddr.ref",mod_vhost_alias +LINK32_OBJS= \ + "$(INTDIR)\mod_vhost_alias.obj" \ + "..\..\Debug\ApacheCore.lib" + +"$(OUTDIR)\mod_vhost_alias.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +!ENDIF + + +!IF "$(CFG)" == "mod_vhost_alias - Win32 Release" || "$(CFG)" ==\ + "mod_vhost_alias - Win32 Debug" + +!IF "$(CFG)" == "mod_vhost_alias - Win32 Release" + +"ApacheCore - Win32 Release" : + cd "..\../..\src" + $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release"\ + + cd ".\os\win32" + +"ApacheCore - Win32 ReleaseCLEAN" : + cd "..\../..\src" + $(MAKE) /$(MAKEFLAGS) CLEAN /F ".\ApacheCore.mak"\ + CFG="ApacheCore - Win32 Release" RECURSE=1 + cd ".\os\win32" + +!ELSEIF "$(CFG)" == "mod_vhost_alias - Win32 Debug" + +"ApacheCore - Win32 Debug" : + cd "..\../..\src" + $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug" + cd ".\os\win32" + +"ApacheCore - Win32 DebugCLEAN" : + cd "..\../..\src" + $(MAKE) /$(MAKEFLAGS) CLEAN /F ".\ApacheCore.mak"\ + CFG="ApacheCore - Win32 Debug" RECURSE=1 + cd ".\os\win32" + +!ENDIF + +SOURCE=..\..\modules\standard\mod_vhost_alias.c +DEP_CPP_MOD_V=\ + "..\..\include\ap.h"\ + "..\..\include\ap_alloc.h"\ + "..\..\include\ap_config.h"\ + "..\..\include\ap_ctype.h"\ + "..\..\include\ap_ebcdic.h"\ + "..\..\include\ap_mmn.h"\ + "..\..\include\buff.h"\ + "..\..\include\hsregex.h"\ + "..\..\include\http_config.h"\ + "..\..\include\http_core.h"\ + "..\..\include\httpd.h"\ + "..\..\include\util_uri.h"\ + ".\os.h"\ + ".\readdir.h"\ + +NODEP_CPP_MOD_V=\ + "..\..\include\ap_config_auto.h"\ + "..\..\include\sfio.h"\ + + +"$(INTDIR)\mod_vhost_alias.obj" : $(SOURCE) $(DEP_CPP_MOD_V) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + + +!ENDIF + diff --git a/usr.sbin/httpd/src/support/checkgid.c b/usr.sbin/httpd/src/support/checkgid.c new file mode 100644 index 00000000000..3f2e7490da6 --- /dev/null +++ b/usr.sbin/httpd/src/support/checkgid.c @@ -0,0 +1,136 @@ +/* ==================================================================== + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2000 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "Apache" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ + +/* + * Given one or more group identifers on the command line (e.g., + * "httpd" or "#-1"), figure out whether they'll be valid for + * the server to use at run-time. + * + * If a groupname isn't found, or we can't setgid() to it, return + * -1. If all groups are valid, return 0. + * + * This may need to be run as the superuser for the setgid() to + * succeed; running it as any other user may result in a false + * negative. + */ + +#include <stdio.h> +#include "httpd.h" +#include "http_conf_globals.h" + +int main(int argc, char *argv[]) +{ + int i; + int result; + gid_t gid; + struct group *grent; + struct group fake_grent; + + /* + * Assume success. :-) + */ + result = 0; + for (i = 1; i < argc; ++i) { + char *arg; + arg = argv[i]; + + /* + * If it's from a 'Group #-1' statement, get the numeric value + * and skip the group lookup stuff. + */ + if (*arg == '#') { + gid = atoi(&arg[1]); + fake_grent.gr_gid = gid; + grent = &fake_grent; + } + else { + grent = getgrnam(arg); + } + + /* + * A NULL return means no such group was found, so we're done + * with this one. + */ + if (grent == NULL) { + fprintf(stderr, "%s: group '%s' not found\n", argv[0], arg); + result = -1; + } + else { + int check; + + /* + * See if we can switch to the numeric GID we have. If so, + * all well and good; if not, well.. + */ + gid = grent->gr_gid; + check = setgid(gid); + if (check != 0) { + fprintf(stderr, "%s: invalid group '%s'\n", argv[0], arg); + perror(argv[0]); + result = -1; + } + } + } + /* + * Worst-case return value. + */ + return result; +} +/* + * Local Variables: + * mode: C + * c-file-style: "bsd" + * End: + */ |