<-
Apache > Serveur HTTP > Documentation > Version 2.4 > Modules

Fonctionalit´┐Żs de Base Apache

Langues Disponibles:  de  |  en  |  es  |  fr  |  ja  |  tr 

Description:Fonctionnalit´┐Żs de base du serveur HTTP Apache toujours disponibles
Statut:Core

Directives

top

AcceptFilter Directive

Description:Permet d'optimiser la configuration d'une socket pour l'´┐Żcoute d'un protocole
Syntaxe:AcceptFilter protocole filtre d'acceptation
Contexte:configuration du serveur
Statut:Core
Module:core

Cette directive permet d'effectuer une optimisation de la socket d'´┐Żcoute d'un type de protocole en fonction du syst´┐Żme d'exploitation. Le but premier est de faire en sorte que le noyau n'envoie pas de socket au processus du serveur jusqu'´┐Ż ce que des donn´┐Żes soient re´┐Żues, ou qu'une requ´┐Żte HTTP compl´┐Żte soit mise en tampon. Seuls les Filtres d'acceptation de FreeBSD, le filtre plus primitif TCP_DEFER_ACCEPT sous Linux, et la version optimis´┐Że d'AcceptEx() de Windows sont actuellement support´┐Żs.

L'utilisation de l'argument none va d´┐Żsactiver tout filtre d'acceptation pour ce protocole. Ceci s'av´┐Żre utile pour les protocoles qui n´┐Żcessitent l'envoi de donn´┐Żes par le serveur en premier, comme ftp: ou nntp:

AcceptFilter nntp none

Les noms de protocoles par d´┐Żfaut sont https pour le port 443 et http pour tous les autres ports. Pour sp´┐Żcifier un autre protocole ´┐Ż utiliser avec un port en ´┐Żcoute, ajoutez l'argument protocol ´┐Ż la directive Listen.

Sous FreeBSD, les valeurs par d´┐Żfaut sont :

AcceptFilter http httpready
AcceptFilter https dataready

Le filtre d'acceptation httpready met en tampon des requ´┐Żtes HTTP enti´┐Żres au niveau du noyau. Quand une requ´┐Żte enti´┐Żre a ´┐Żt´┐Ż re´┐Żue, le noyau l'envoie au serveur. Voir la page de manuel de accf_http(9) pour plus de d´┐Żtails. Comme les requ´┐Żtes HTTPS sont chiffr´┐Żes, celles-ci n'autorisent que le filtre accf_data(9).

Sous Linux, les valeurs par d´┐Żfaut sont :

AcceptFilter http data
AcceptFilter https data

Le filtre TCP_DEFER_ACCEPT de Linux ne supporte pas la mise en tampon des requ´┐Żtes http. Toute valeur autre que none active le filtre TCP_DEFER_ACCEPT pour ce protocole. Pour plus de d´┐Żtails, voir la page de manuel Linux de tcp(7).

Sous Windows, les valeurs par d´┐Żfaut sont :

AcceptFilter http data
AcceptFilter https data

Le module MPM pour Windows mpm_winnt utilise la directive AcceptFilter comme commutateur de l'API AcceptEx(), et ne supporte pas la mise en tampon du protocole http. Deux valeurs utilisent l'API Windows AcceptEx() et vont recycler les sockets r´┐Żseau entre les connexions. data attend jusqu'´┐Ż ce que les donn´┐Żes aient ´┐Żt´┐Ż transmises comme d´┐Żcrit plus haut, et le tampon de donn´┐Żes initiales ainsi que les adresses r´┐Żseau finales sont tous extraits gr´┐Żce ´┐Ż une seule invocation d'AcceptEx(). connect utilise l'API AcceptEx(), extrait aussi les adresses r´┐Żseau finales, mais ´┐Ż l'instar de none, la valeur connect n'attend pas la transmission des donn´┐Żes initiales.

Sous Windows, none utilise accept() au lieu d'AcceptEx(), et ne recycle pas les sockets entre les connexions. Ceci s'av´┐Żre utile pour les interfaces r´┐Żseau dont le pilote est d´┐Żfectueux, ainsi que pour certains fournisseurs de r´┐Żseau comme les pilotes vpn, ou les filtres anti-spam, anti-virus ou anti-spyware.

Voir aussi

top

AcceptPathInfo Directive

Description:Les ressources acceptent des informations sous forme d'un nom de chemin en fin de requ´┐Żte.
Syntaxe:AcceptPathInfo On|Off|Default
D´┐Żfaut:AcceptPathInfo Default
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
AllowOverride:FileInfo
Statut:Core
Module:core

Cette directive permet de d´┐Żfinir si les requ´┐Żtes contenant des informations sous forme d'un nom de chemin suivant le nom d'un fichier r´┐Żel (ou un fichier qui n'existe pas dans un r´┐Żpertoire qui existe) doivent ´┐Żtre accept´┐Żes ou rejet´┐Żes. Les scripts peuvent acc´┐Żder ´┐Ż cette information via la variable d'environnement PATH_INFO.

Supposons par exemple que /test/ pointe vers un r´┐Żpertoire qui ne contient que le fichier here.html. Les requ´┐Żtes pour /test/here.html/more et /test/nothere.html/more vont affecter la valeur /more ´┐Ż la variable d'environnement PATH_INFO.

L'argument de la directive AcceptPathInfo poss´┐Żde trois valeurs possibles :

Off
Une requ´┐Żte ne sera accept´┐Że que si elle correspond ´┐Ż un chemin qui existe. Par cons´┐Żquent, une requ´┐Żte contenant une information de chemin apr´┐Żs le nom de fichier r´┐Żel comme /test/here.html/more dans l'exemple ci-dessus renverra une erreur "404 NOT FOUND".
On
Une requ´┐Żte sera accept´┐Że si la partie principale du chemin correspond ´┐Ż un fichier existant. Dans l'exemple ci-dessus /test/here.html/more, la requ´┐Żte sera accept´┐Że si /test/here.html correspond ´┐Ż un nom de fichier valide.
Default
Le traitement des requ´┐Żtes est d´┐Żtermin´┐Ż par le gestionnaire responsable de la requ´┐Żte. Le gestionnaire de base pour les fichiers normaux rejette par d´┐Żfaut les requ´┐Żtes avec PATH_INFO. Les gestionnaires qui servent des scripts, commecgi-script et isapi-handler, acceptent en g´┐Żn´┐Żral par d´┐Żfaut les requ´┐Żtes avec PATH_INFO.

Le but premier de la directive AcceptPathInfo est de vous permettre de remplacer le choix du gestionnaire d'accepter ou de rejeter PATH_INFO. Ce remplacement est n´┐Żcessaire par exemple, lorsque vous utilisez un filtre, comme INCLUDES, pour g´┐Żn´┐Żrer un contenu bas´┐Ż sur PATH_INFO. Le gestionnaire de base va en g´┐Żn´┐Żral rejeter la requ´┐Żte, et vous pouvez utiliser la configuration suivante pour utiliser un tel script :

<Files "mypaths.shtml">
  Options +Includes
  SetOutputFilter INCLUDES
  AcceptPathInfo On
</Files>
top

AccessFileName Directive

Description:Nom du fichier de configuration distribu´┐Ż
Syntaxe:AccessFileName nom-du-fichier [nom-du-fichier] ...
D´┐Żfaut:AccessFileName .htaccess
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core

Au cours du traitement d'une requ´┐Żte, le serveur recherche le premier fichier de configuration existant ´┐Ż partir de la liste de noms dans chaque r´┐Żpertoire composant le chemin du document, ´┐Ż partir du moment o´┐Ż les fichiers de configuration distribu´┐Żs sont activ´┐Żs pour ce r´┐Żpertoire. Par exemple :

AccessFileName .acl

avant de renvoyer le document /usr/local/web/index.html, le serveur va rechercher les fichiers /.acl, /usr/.acl, /usr/local/.acl et /usr/local/web/.acl pour y lire d'´┐Żventuelles directives, ´┐Ż moins quelles n'aient ´┐Żt´┐Ż d´┐Żsactiv´┐Żes avec

<Directory />
    AllowOverride None
</Directory>

Voir aussi

top

AddDefaultCharset Directive

Description:Param´┐Żtre jeu de caract´┐Żres par d´┐Żfaut ´┐Ż ajouter quand le type de contenu d'une r´┐Żponse est text/plain ou text/html
Syntaxe:AddDefaultCharset On|Off|jeu de caract´┐Żres
D´┐Żfaut:AddDefaultCharset Off
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
AllowOverride:FileInfo
Statut:Core
Module:core

Cette directive sp´┐Żcifie une valeur par d´┐Żfaut pour le param´┐Żtre jeu de caract´┐Żres du type de m´┐Żdia (le nom d'un codage de caract´┐Żres) ´┐Ż ajouter ´┐Ż une r´┐Żponse, si et seulement si le type de contenu de la r´┐Żponse est soit text/plain, soit text/html. Ceci va remplacer tout jeu de caract´┐Żres sp´┐Żcifi´┐Ż dans le corps de la r´┐Żponse via un ´┐Żl´┐Żment META, bien que cet effet d´┐Żpende en fait souvent de la configuration du client de l'utilisateur. La d´┐Żfinition de AddDefaultCharset Off d´┐Żsactive cette fonctionnalit´┐Ż. AddDefaultCharset On ajoute un jeu de caract´┐Żres par d´┐Żfaut de iso-8859-1. Toute autre valeur peut ´┐Żtre d´┐Żfinie via le param´┐Żtre jeu de caract´┐Żres, qui doit appartenir ´┐Ż la liste des valeurs de jeux de caract´┐Żres enregistr´┐Żs par l'IANA ´┐Ż utiliser dans les types de m´┐Żdia Internet (types MIME). Par exemple :

AddDefaultCharset utf-8

La directive AddDefaultCharset ne doit ´┐Żtre utilis´┐Że que lorsque toutes les ressources textes auxquelles elle s'applique poss´┐Żdent le jeu de caract´┐Żre sp´┐Żcifi´┐Ż, et qu'il est trop contraignant de d´┐Żfinir leur jeu de caract´┐Żres individuellement. Un exemple de ce type est l'ajout du param´┐Żtre jeu de caract´┐Żres aux ressources comportant un contenu g´┐Żn´┐Żr´┐Ż, comme les scripts CGI h´┐Żrit´┐Żs qui peuvent ´┐Żtre vuln´┐Żrables ´┐Ż des attaques de type cross-site scripting ´┐Ż cause des donn´┐Żes utilisateurs incluses dans leur sortie. Notez cependant qu'une meilleur solution consiste ´┐Ż corriger (ou supprimer) ces scripts, car la d´┐Żfinition d'un jeu de caract´┐Żres par d´┐Żfaut ne prot´┐Żge pas les utilisateurs qui ont activ´┐Ż la fonctionnalit´┐Ż "D´┐Żtection automatique de l'encodage des caract´┐Żres" dans leur navigateur.

Voir aussi

top

AllowEncodedSlashes Directive

Description:D´┐Żtermine si les s´┐Żparateurs de chemin encod´┐Żs sont autoris´┐Żs ´┐Ż transiter dans les URLs tels quels
Syntaxe:AllowEncodedSlashes On|Off|NoDecode
D´┐Żfaut:AllowEncodedSlashes Off
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core
Compatibilit´┐Ż:L'option NoDecode est disponible depuis la version 2.3.12.

La directive AllowEncodedSlashes permet l'utilisation des URLs contenant des s´┐Żparateurs de chemin encod´┐Żs dans la partie chemin (%2F pour / et m´┐Żme %5C pour \ sur les syst´┐Żmes concern´┐Żs).

Avec la valeur par d´┐Żfaut, Off, de telles URLs sont refus´┐Żes et provoquent le renvoi d'une erreur 404 (Not found).

Avec la valeur On, ces URLs sont accept´┐Żes, et les slashes encod´┐Żs sont d´┐Żcod´┐Żs comme tout autre caract´┐Żre cod´┐Ż.

Avec la valeur NoDecode, ces URLs sont accept´┐Żes, mais les slashes cod´┐Żs ne sont pas d´┐Żcod´┐Żs et laiss´┐Żs dans leur ´┐Żtat cod´┐Ż.

D´┐Żfinir AllowEncodedSlashes ´┐Ż On est surtout utile en association avec PATH_INFO.

Note

Si le codage des slashes dans la partie chemin est n´┐Żcessaire, l'utilisation de l'option NoDecode est fortement recommand´┐Że par mesure de s´┐Żcurit´┐Ż. Permettre le d´┐Żcodage des slashes pourrait ´┐Żventuellement induire l'autorisation de chemins non s´┐Żrs.

Voir aussi

top

AllowOverride Directive

Description:Types de directives autoris´┐Żes dans les fichiers .htaccess
Syntaxe:AllowOverride All|None|type directive [type directive] ...
D´┐Żfaut:AllowOverride None ´┐Ż partir de la version 2.3.9, AllowOverride All pour les versions ant´┐Żrieures
Contexte:r´┐Żpertoire
Statut:Core
Module:core

Lorsque le serveur trouve un fichier .htaccess (dont le nom est d´┐Żfini par la directive AccessFileName), il doit savoir lesquelles des directives plac´┐Żes dans ce fichier sont autoris´┐Żes ´┐Ż modifier la configuration pr´┐Żexistante.

Valable seulement dans les sections <Directory>

La directive AllowOverride ne peut ´┐Żtre utilis´┐Że que dans les sections <Directory> d´┐Żfinies sans expressions rationnelles, et non dans les sections <Location>, <DirectoryMatch> ou <Files>.

Lorsque cette directive et la directive AllowOverrideList sont d´┐Żfinies ´┐Ż None, les fichiers .htaccess sont totalement ignor´┐Żs. Dans ce cas, le serveur n'essaiera m´┐Żme pas de lire les fichiers .htaccess du syst´┐Żme de fichiers.

Lorsque cette directive est d´┐Żfinie ´┐Ż All, toute directive valable dans le Contexte .htaccess sera autoris´┐Że dans les fichiers .htaccess.

L'argument type directive peut contenir les groupements de directives suivants :

AuthConfig
Permet l'utilisation des directives d'autorisation (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require, etc...).
FileInfo
Permet l'utilisation des directives qui contr´┐Żlent les types de documents (directives ErrorDocument, ForceType, LanguagePriority, SetHandler, SetInputFilter, SetOutputFilter, et directives du module mod_mime Add* et Remove*), des metadonn´┐Żes des documents (Header, RequestHeader, SetEnvIf, SetEnvIfNoCase, BrowserMatch, CookieExpires, CookieDomain, CookieStyle, CookieTracking, CookieName), des directives du module mod_rewrite directives (RewriteEngine, RewriteOptions, RewriteBase, RewriteCond, RewriteRule), des directives du module mod_alias directives (Redirect, RedirectTemp, RedirectPermanent, RedirectMatch), et de la directive Action du module mod_actions.
Indexes
Permet l'utilisation des directives qui contr´┐Żlent l'indexation des r´┐Żpertoires (AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, etc...).
Limit
Permet l'utilisation des directives contr´┐Żlant l'acc´┐Żs au serveur (Allow, Deny et Order).
Nonfatal=[Override|Unknown|All]
Permet d'utiliser l'option AllowOverride pour rendre les erreurs de syntaxe non fatales dans les fichiers .htaccess : au lieu de causer une Internal Server Error, les directives non autoris´┐Żes ou non reconnues seront ignor´┐Żes et un avertissement enregistr´┐Ż dans le journal :
  • Nonfatal=Override rend les directives interdite par AllowOverride non fatales.
  • Nonfatal=Unknown rend les directives inconnues non fatales. Sont concern´┐Żes les erreurs de frappe et les directives impl´┐Żment´┐Żes par un module non charg´┐Ż.
  • Nonfatal=All rend toutes les directives pr´┐Żc´┐Żdentes non fatales.

Notez qu'une erreur de syntaxe dans une directive valide causera toujours une internal server error.

S´┐Żcurit´┐Ż

Les erreurs non fatales peuvent ´┐Żtre ´┐Ż l'origine de probl´┐Żmes de s´┐Żcurit´┐Ż pour les utilisateurs de fichiers .htaccess. Par exemple, si AllowOverride interdit AuthConfig, toute configuration utilisateur destin´┐Że ´┐Ż restreindre l'acc´┐Żs ´┐Ż un site ne sera pas prise en compte.
Options[=Option,...]
Permet l'utilisation des directives contr´┐Żlant les fonctionnalit´┐Żs sp´┐Żcifiques d'un r´┐Żpertoire (Options et XBitHack). "Options" doit ´┐Żtre suivi d'un signe "´┐Żgal", puis d'une liste d'options s´┐Żpar´┐Żes par des virgules (pas d'espaces) ; ces options doivent ´┐Żtre d´┐Żfinies ´┐Ż l'aide de la commande Options.

D´┐Żsactivation implicite des options

Bien que la liste des options disponibles dans les fichiers .htaccess puisse ´┐Żtre limit´┐Że par cette directive, tant qu'un directive Options est autoris´┐Że, toute autre option h´┐Żrit´┐Że peut ´┐Żtre d´┐Żsactiv´┐Że en utilisant la syntaxe non-relative. En d'autres termes, ce m´┐Żcanisme ne peut pas forcer une option sp´┐Żcifique ´┐Ż rester activ´┐Że tout en permettant ´┐Ż toute autre option d'´┐Żtre activ´┐Że.

AllowOverride Options=Indexes,MultiViews

Exemple :

AllowOverride AuthConfig Indexes

Dans l'exemple ci-dessus, toutes les directives qui ne font partie ni du groupe AuthConfig, ni du groupe Indexes, provoquent une erreur "internal server error".

Pour des raisons de s´┐Żcurit´┐Ż et de performance, ne d´┐Żfinissez pas AllowOverride ´┐Ż autre chose que None dans votre bloc <Directory />. Recherchez plut´┐Żt (ou cr´┐Żez) le bloc <Directory> qui se r´┐Żf´┐Żre au r´┐Żpertoire o´┐Ż vous allez pr´┐Żcis´┐Żment placer un fichier .htaccess.

Voir aussi

top

AllowOverrideList Directive

Description:Directives autoris´┐Żes dans les fichiers .htaccess
Syntaxe:AllowOverrideList None|directive [directive-type] ...
D´┐Żfaut:AllowOverrideList None
Contexte:r´┐Żpertoire
Statut:Core
Module:core

Lorsque le serveur trouve un fichier .htaccess (comme sp´┐Żcifi´┐Ż par la directive AccessFileName), il doit savoir lesquelles des directives d´┐Żclar´┐Żes dans ce fichier peuvent remplacer des directives des fichiers de configuration du serveur.

Seulement disponible dans les sections <Directory>

La directive AllowOverrideList n'est disponible que dans les sections <Directory> sp´┐Żcifi´┐Żes sans expressions rationnelles.

Lorsque cette directive et la directive AllowOverride sont d´┐Żfinies ´┐Ż None, les fichiers .htaccess sont totalement ignor´┐Żs. Dans ce cas, le serveur ne cherchera m´┐Żme pas ´┐Ż lire des fichiers .htaccess dans le syst´┐Żme de fichiers.

Example:

AllowOverride None
AllowOverrideList Redirect RedirectMatch

Dans l'exemple ci-dessus, seules les directives Redirect et RedirectMatch sont autoris´┐Żes. Toutes les autres provoqueront une erreur interne du serveur.

Example:

AllowOverride AuthConfig
AllowOverrideList CookieTracking CookieName

Dans l'exemple ci-dessus, la directive AllowOverride autorise les directives du groupement AuthConfig, et AllowOverrideList n'autorise que deux directives du groupement FileInfo. Toutes les autres provoqueront une erreur interne du serveur.

Voir aussi

top

CGIMapExtension Directive

Description:Technique permettant de localiser l'interpr´┐Żteur des scripts CGI
Syntaxe:CGIMapExtension chemin CGI .extension
Contexte:r´┐Żpertoire, .htaccess
AllowOverride:FileInfo
Statut:Core
Module:core
Compatibilit´┐Ż:NetWare uniquement

Cette directive permet de contr´┐Żler la mani´┐Żre dont Apache httpd trouve l'interpr´┐Żteur servant ´┐Ż ex´┐Żcuter les scripts CGI. Par exemple, avec la d´┐Żfinition CGIMapExtension sys:\foo.nlm .foo, tous les fichiers scripts CGI poss´┐Żdant une extension .foo seront pass´┐Żs ´┐Ż l'interpr´┐Żteur FOO.

top

ContentDigest Directive

Description:Active la g´┐Żn´┐Żration d'un en-t´┐Żte Content-MD5 dans la r´┐Żponse HTTP
Syntaxe:ContentDigest On|Off
D´┐Żfaut:ContentDigest Off
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
AllowOverride:Options
Statut:Core
Module:core

Cette directive active la g´┐Żn´┐Żration d'un en-t´┐Żte Content-MD5 selon les d´┐Żfinitions des RFC 1864 et 2616.

MD5 est un algorithme permettant de g´┐Żn´┐Żrer un condens´┐Ż (parfois appel´┐Ż "empreinte") ´┐Ż partir de donn´┐Żes d'une taille al´┐Żatoire ; le degr´┐Ż de pr´┐Żcision est tel que la moindre alt´┐Żration des donn´┐Żes d'origine entra´┐Żne une alt´┐Żration de l'empreinte.

L'en-t´┐Żte Content-MD5 permet de v´┐Żrifier l'int´┐Żgrit´┐Ż de la r´┐Żponse HTTP dans son ensemble. Un serveur mandataire ou un client peut utiliser cet en-t´┐Żte pour rechercher une ´┐Żventuelle modification accidentelle de la r´┐Żponse au cours de sa transmission. Exemple d'en-t´┐Żte :

Content-MD5: AuLb7Dp1rqtRtxz2m9kRpA==

Notez que des probl´┐Żmes de performances peuvent affecter votre serveur, car l'empreinte est g´┐Żn´┐Żr´┐Że pour chaque requ´┐Żte (il n'y a pas de mise en cache).

L'en-t´┐Żte Content-MD5 n'est envoy´┐Ż qu'avec les documents servis par le module core, ´┐Ż l'exclusion de tout autre module. Ainsi, les documents SSI, les sorties de scripts CGI, et les r´┐Żponses ´┐Ż des requ´┐Żtes partielles (byte range) ne comportent pas cet en-t´┐Żte.

top

DefaultRuntimeDir Directive

Description:R´┐Żpertoire de base des fichiers cr´┐Ż´┐Żs au cours de l'ex´┐Żcution du serveur
Syntaxe:DefaultRuntimeDir chemin-r´┐Żpertoire
D´┐Żfaut:DefaultRuntimeDir DEFAULT_REL_RUNTIMEDIR (logs/)
Contexte:configuration du serveur
Statut:Core
Module:core
Compatibilit´┐Ż:Disponible depuis la version 2.4.2 du serveur HTTP Apache

La directive DefaultRuntimeDir permet de d´┐Żfinir le r´┐Żpertoire dans lequel le serveur va cr´┐Żer les diff´┐Żrents fichiers relatifs ´┐Ż son ex´┐Żcution (m´┐Żmoire partag´┐Że, verrous, etc...). Si le chemin sp´┐Żcifi´┐Ż est relatif, le chemin absolu sera g´┐Żn´┐Żr´┐Ż relativement ´┐Ż la valeur de la directive ServerRoot

Example

DefaultRuntimeDir scratch/

La valeur par d´┐Żfaut de la directive DefaultRuntimeDir peut ´┐Żtre modifi´┐Że en changeant la valeur de la macro DEFAULT_REL_RUNTIMEDIR d´┐Żfinie ´┐Ż la compilation.

Note: si la valeur de ServerRoot n'a pas ´┐Żt´┐Ż sp´┐Żcifi´┐Że avant d'utiliser cette directive, c'est la valeur par d´┐Żfaut de ServerRoot qui sera utilis´┐Że pour d´┐Żfinir la base du r´┐Żpertoire.

Voir aussi

top

DefaultType Directive

Description:Les seuls effets de cette directive sont des ´┐Żmissions d'avertissements si sa valeur est diff´┐Żrente de none. Dans les versions pr´┐Żc´┐Żdentes, DefaultType permettait de sp´┐Żcifier un type de m´┐Żdia ´┐Ż assigner par d´┐Żfaut au contenu d'une r´┐Żponse pour lequel aucun autre type de m´┐Żdia n'avait ´┐Żt´┐Ż trouv´┐Ż.
Syntaxe:DefaultType type m´┐Żdia|none
D´┐Żfaut:DefaultType none
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
AllowOverride:FileInfo
Statut:Core
Module:core
Compatibilit´┐Ż:L'argument none est disponible dans les versions d'Apache httpd 2.2.7 et sup´┐Żrieures. Tous les autres choix sont DESACTIV´┐ŻS ´┐Ż partir des version 2.3.x.

Cette directive a ´┐Żt´┐Ż d´┐Żsactiv´┐Że. Pour la compatibilit´┐Ż ascendante avec les anciens fichiers de configuration, elle peut ´┐Żtre sp´┐Żcifi´┐Że avec la valeur none, c'est ´┐Ż dire sans type de m´┐Żdium par d´┐Żfaut. Par exemple :

DefaultType None

DefaultType None n'est disponible que dans les versions d'Apache 2.2.7 et sup´┐Żrieures.

Utilisez le fichier de configuration mime.types et la directive AddType pour configurer l'assignement d'un type de m´┐Żdium via les extensions de fichiers, ou la directive ForceType pour attribuer un type de m´┐Żdium ´┐Ż des ressources sp´┐Żcifiques. Dans le cas contraire, le serveur enverra sa r´┐Żponse sans champ d'en-t´┐Żte Content-Type, et le destinataire devra d´┐Żterminer lui-m´┐Żme le type de m´┐Żdium.

top

Define Directive

Description:Permet de d´┐Żfinir une variable
Syntaxe:Define nom-param´┐Żtre [valeur-param´┐Żtre]
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire
Statut:Core
Module:core

Avec un seul param´┐Żtre, l'effet de la directive Define est identique ´┐Ż celui de l'argument -D du programme httpd. Il permet de modifier le comportement des sections <IfDefine> sans avoir ´┐Ż ajouter d'argument -D au sein des scripts de d´┐Żmarrage.

De plus, le second param´┐Żtre permet d'affecter une valeur ´┐Ż la variable d´┐Żfinie par le premier. Cette variable peut ´┐Żtre r´┐Żf´┐Żrenc´┐Że dans le fichier de configuration via la syntaxe ${VAR}. La port´┐Że de la variable est toujours globale, et n'est jamais limit´┐Że ´┐Ż la section de configuration courante.

<IfDefine TEST>
  Define servername test.example.com
</IfDefine>
<IfDefine !TEST>
  Define servername www.example.com
  Define SSL
</IfDefine>

DocumentRoot /var/www/${servername}/htdocs

Le caract´┐Żre ":" est interdit dans les noms de variables afin d'´┐Żviter les conflits avec la syntaxe de la directive RewriteMap.

top

<Directory> Directive

Description:Regroupe un ensemble de directives qui ne s'appliquent qu'au r´┐Żpertoire concern´┐Ż du syst´┐Żme de fichiers, ´┐Ż ses sous-r´┐Żpertoires, et ´┐Ż leur contenu.
Syntaxe:<Directory chemin r´┐Żpertoire> ... </Directory>
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core

Les balises <Directory> et </Directory> permettent de regrouper un ensemble de directives qui ne s'appliquent qu'au r´┐Żpertoire pr´┐Żcis´┐Ż, ´┐Ż ses sous-r´┐Żpertoires, et aux fichiers situ´┐Żs dans ces sous-r´┐Żpertoires. Toute directive autoris´┐Że dans un contexte de r´┐Żpertoire peut ´┐Żtre utilis´┐Że. chemin r´┐Żpertoire est soit le chemin absolu d'un r´┐Żpertoire, soit une cha´┐Żne de caract´┐Żres avec caract´┐Żres g´┐Żn´┐Żriques utilisant la comparaison Unix de style shell. Dans une cha´┐Żne de caract´┐Żres avec caract´┐Żres g´┐Żn´┐Żriques, ? correspond ´┐Ż un caract´┐Żre quelconque, et * ´┐Ż toute cha´┐Żne de caract´┐Żres. Les intervalles de caract´┐Żres [] sont aussi autoris´┐Żs. Aucun caract´┐Żre g´┐Żn´┐Żrique ne peut remplacer le caract´┐Żre `/', si bien que l'expression <Directory /*/public_html> ne conviendra pas pour le chemin * /home/user/public_html, alors que <Directory /home/*/public_html> conviendra. Exemple :

<Directory "/usr/local/httpd/htdocs">
  Options Indexes FollowSymLinks
</Directory>

Soyez prudent avec l'argument chemin r´┐Żpertoire : il doit correspondre exactement au chemin du syst´┐Żme de fichier qu'Apache httpd utilise pour acc´┐Żder aux fichiers. Les directives comprises dans une section <Directory> ne s'appliqueront pas aux fichiers du m´┐Żme r´┐Żpertoire auxquels on aura acc´┐Żd´┐Ż via un chemin diff´┐Żrent, per exemple via un lien symbolique.

Les Expressions rationnelles peuvent aussi ´┐Żtre utilis´┐Żes en ajoutant le caract´┐Żre ~. Par exemple :

<Directory ~ "^/www/[0-9]{3}">

</Directory>

pourra correspondre ´┐Ż tout r´┐Żpertoire situ´┐Ż dans /www/ et dont le nom se compose de trois chiffres.

Si plusieurs sections <Directory> (sans expression rationnelle) correspondent au r´┐Żpertoire (ou ´┐Ż un de ses parents) qui contient le document, les directives de la section <Directory> dont le chemin est le plus court sont appliqu´┐Żes en premier, en s'intercalant avec les directives des fichiers .htaccess. Par exemple, avec

<Directory />
  AllowOverride None
</Directory>

<Directory "/home">
  AllowOverride FileInfo
</Directory>

l'acc´┐Żs au document /home/web/dir/doc.html emprunte le chemin suivant :

Les directives associ´┐Żes aux r´┐Żpertoires sous forme d'expressions rationnelles ne sont prises en compte qu'une fois toutes les directives des sections sans expressions rationnelles appliqu´┐Żes. Alors, tous les r´┐Żpertoires avec expressions rationnelles sont test´┐Żs selon l'ordre dans lequel ils apparaissent dans le fichier de configuration. Par exemple, avec

<Directory ~ "abc$">
  # ... directives ici ...
</Directory>

la section avec expression rationnelle ne sera prise en compte qu'apr´┐Żs les sections <Directory> sans expression rationnelle et les fichiers .htaccess. Alors, l'expression rationnelle conviendra pour /home/abc/public_html/abc et la section <Directory> correspondante s'appliquera.

Notez que la politique d'acc´┐Żs par d´┐Żfaut dans les sections <Directory /> consiste ´┐Ż autoriser tout acc´┐Żs sans restriction. Ceci signifie qu'Apache httpd va servir tout fichier correspondant ´┐Ż une URL. Il est recommand´┐Ż de modifier cette situation ´┐Ż l'aide d'un bloc du style

<Directory />
  Require all denied
</Directory>

puis d'affiner la configuration pour les r´┐Żpertoires que vous voulez rendre accessibles. Voir la page Conseils ´┐Ż propos de s´┐Żcurit´┐Ż pour plus de d´┐Żtails.

Les sections <Directory> se situent dans le fichier apache2.conf. Les directives <Directory> ne peuvent pas ´┐Żtre imbriqu´┐Żes et ne sont pas autoris´┐Żes dans les sections <Limit> ou <LimitExcept>.

Voir aussi

top

<DirectoryMatch> Directive

Description:Regroupe des directives qui s'appliquent au contenu de r´┐Żpertoires du syst´┐Żme de fichiers correspondant ´┐Ż une expression rationnelle
Syntaxe:<DirectoryMatch regex> ... </DirectoryMatch>
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core

Les balises <DirectoryMatch> et </DirectoryMatch> permettent de regrouper un ensemble de directives qui ne s'appliqueront qu'au r´┐Żpertoire pr´┐Żcis´┐Ż (et aux fichiers qu'il contient), comme pour la section <Directory>. Cependant, le r´┐Żpertoire est pr´┐Żcis´┐Ż sous la forme d'une expression rationnelle. Par exemple :

<DirectoryMatch "^/www/(.+/)?[0-9]{3}">
    # ...
</DirectoryMatch>

conviendrait pour les sous-r´┐Żpertoires de /www/ dont le nom se compose de trois chiffres.

Compatibilit´┐Ż

Avant la version 2.3.9, cette directive s'appliquait aussi aux sous-r´┐Żpertoires (comme la directive <Directory>), et ne tenait pas compte du symbole de fin de ligne ($). Depuis la version 2.3.9, seuls les r´┐Żpertoires qui correspondent ´┐Ż l'expression sont affect´┐Żs par les directives contenues dans la section.

slash de fin

Cette directive s'applique aux requ´┐Żtes pour des r´┐Żpertoires avec ou sans slash de fin ; les expressions contenant un symbole de fin de ligne ($) doivent donc faire l'objet d'une attention particuli´┐Żre.

A partir de la version 2.4.8, les groupes nomm´┐Żs et les r´┐Żf´┐Żrences arri´┐Żres sont extraits et enregistr´┐Żs dans l'environnement avec leur nom en majuscules et pr´┐Żfix´┐Ż par "MATCH_". Ceci permet de r´┐Żf´┐Żrencer des URLs dans des expressions ou au sein de modules comme mod_rewrite. Pour ´┐Żviter toute confusion, les r´┐Żf´┐Żrences arri´┐Żres num´┐Żrot´┐Żes (non nomm´┐Żes) sont ignor´┐Żes. Vous devez utiliser ´┐Ż la place des groupes nomm´┐Żs.

<DirectoryMatch ^/var/www/combined/(?<sitename>[^/]+)>
    require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
</DirectoryMatch>

Voir aussi

top

DocumentRoot Directive

Description:Racine principale de l'arborescence des documents visible depuis Internet
Syntaxe:DocumentRoot chemin r´┐Żpertoire
D´┐Żfaut:DocumentRoot /usr/local/apache/htdocs
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core

Cette directive permet de d´┐Żfinir le r´┐Żpertoire ´┐Ż partir duquel httpd va servir les fichiers. S'il ne correspond pas ´┐Ż un Alias, le chemin de l'URL sera ajout´┐Ż par le serveur ´┐Ż la racine des documents afin de construire le chemin du document recherch´┐Ż. Exemple :

DocumentRoot "/usr/web"

un acc´┐Żs ´┐Ż http://my.example.com/index.html se r´┐Żf´┐Żre alors ´┐Ż /usr/web/index.html. Si chemin r´┐Żpertoire n'est pas un chemin absolu, il est consid´┐Żr´┐Ż comme relatif au chemin d´┐Żfini par la directive ServerRoot.

Le r´┐Żpertoire d´┐Żfini par la directive DocumentRoot ne doit pas comporter de slash final.

Voir aussi

top

<Else> Directive

Description:Contient des directives qui ne s'appliquent que si la condition correspondant ´┐Ż la section <If> ou <ElseIf> pr´┐Żc´┐Żdente n'est pas satisfaite par la requ´┐Żte ´┐Ż l'ex´┐Żcution
Syntaxe:<Else> ... </Else>
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
AllowOverride:All
Statut:Core
Module:core

La section <Else> applique les directives qu'elle contient si et seulement si les conditions correspondant ´┐Ż la section <If> ou <ElseIf> imm´┐Żdiatement sup´┐Żrieure et dans la m´┐Żme port´┐Że n'ont pas ´┐Żt´┐Ż satisfaites. Par exemple, dans :

<If "-z req('Host')">
  # ...
</If>
<Else>
  # ...
</Else>

La condition de la section <If> serait satisfaite pour les requ´┐Żtes HTTP/1.0 sans en-t´┐Żte Host:, alors que celle de la section <Else> le serait pour les requ´┐Żtes comportant un en-t´┐Żte Host:.

Voir aussi

top

<ElseIf> Directive

Description:Contient des directives qui ne s'appliquent que si la condition correspondante est satisfaite par une requ´┐Żte ´┐Ż l'ex´┐Żcution, alors que la condition correspondant ´┐Ż la section <If> ou <ElseIf> pr´┐Żc´┐Żdente ne l'´┐Żtait pas.
Syntaxe:<ElseIf expression> ... </ElseIf>
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
AllowOverride:All
Statut:Core
Module:core

La section <ElseIf> applique les directives qu'elle contient si et seulement si d'une part la condition correspondante est satisfaite, et d'autre part la condition correspondant ´┐Ż la section <If> ou <ElseIf> de la m´┐Żme port´┐Że ne l'est pas. Par exemple, dans :

<If "-R '10.1.0.0/16'">
  #...
</If>
<ElseIf "-R '10.0.0.0/8'">
  #...
</ElseIf>
<Else>
  #...
</Else>

La condition correspondant ´┐Ż la section <ElseIf> est satisfaite si l'adresse distante de la requ´┐Żte appartient au sous-r´┐Żseau 10.0.0.0/8, mais pas si elle appartient au sous-r´┐Żseau 10.1.0.0/16.

Voir aussi

top

EnableMMAP Directive

Description:Utilise la projection en m´┐Żmoire (Memory-Mapping) pour lire les fichiers pendant qu'ils sont servis
Syntaxe:EnableMMAP On|Off
D´┐Żfaut:EnableMMAP On
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
AllowOverride:FileInfo
Statut:Core
Module:core

Cette directive d´┐Żfinit si httpd peut utiliser la projection en m´┐Żmoire (Memory-Mapping) quand il doit lire le contenu d'un fichier pendant qu'il est servi. Par d´┐Żfaut, lorsque le traitement d'une requ´┐Żte requiert l'acc´┐Żs aux donn´┐Żes contenues dans un fichier -- par exemple, pour servir un fichier interpr´┐Żt´┐Ż par le serveur ´┐Ż l'aide de mod_include -- Apache httpd projette le fichier en m´┐Żmoire si le syst´┐Żme d'exploitation le permet.

Cette projection en m´┐Żmoire induit parfois une am´┐Żlioration des performances. Sur certains syst´┐Żmes cependant, il est pr´┐Żf´┐Żrable de d´┐Żsactiver la projection en m´┐Żmoire afin d'´┐Żviter certains probl´┐Żmes op´┐Żrationnels :

Pour les configurations de serveur sujettes ´┐Ż ce genre de probl´┐Żme, il est pr´┐Żf´┐Żrable de d´┐Żsactiver la projection en m´┐Żmoire des fichiers servis en sp´┐Żcifiant :

EnableMMAP Off

Pour les montages NFS, cette fonctionnalit´┐Ż peut ´┐Żtre explicitement d´┐Żsactiv´┐Że pour les fichiers concern´┐Żs en sp´┐Żcifiant :

<Directory "/path-to-nfs-files">
  EnableMMAP Off
</Directory>
top

EnableSendfile Directive

Description:Utilise le support sendfile du noyau pour servir les fichiers aux clients
Syntaxe:EnableSendfile On|Off
D´┐Żfaut:EnableSendfile Off
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
AllowOverride:FileInfo
Statut:Core
Module:core
Compatibilit´┐Ż:Par d´┐Żfaut ´┐Ż Off depuis la version 2.3.9.

Cette directive d´┐Żfinit si le programme httpd peut utiliser le support sendfile du noyau pour transmettre le contenu des fichiers aux clients. Par d´┐Żfaut, lorsque le traitement d'une requ´┐Żte ne requiert pas l'acc´┐Żs aux donn´┐Żes contenues dans un fichier -- par exemple, pour la transmission d'un fichier statique -- Apache httpd utilise sendfile pour transmettre le contenu du fichier sans m´┐Żme lire ce dernier, si le syst´┐Żme d'exploitation le permet.

Ce m´┐Żcanisme sendfile ´┐Żvite la s´┐Żparation des op´┐Żrations de lecture et d'envoi, ainsi que les r´┐Żservations de tampons. sur certains syst´┐Żmes cependant, ou sous certains syst´┐Żmes de fichiers, il est pr´┐Żf´┐Żrable de d´┐Żsactiver cette fonctionnalit´┐Ż afin d'´┐Żviter certains probl´┐Żmes op´┐Żrationnels :

Pour les configurations de serveur non sujettes ´┐Ż ce genre de probl´┐Żme, vous pouvez activer cette fonctionnalit´┐Ż en sp´┐Żcifiant :

EnableSendfile On

Pour les montages r´┐Żseau, cette fonctionnalit´┐Ż peut ´┐Żtre explicitement d´┐Żsactiv´┐Że pour les fichiers concern´┐Żs en sp´┐Żcifiant :

<Directory "/path-to-nfs-files">
  EnableSendfile Off
</Directory>

Veuillez noter que la configuration de la directive EnableSendfile dans un contexte de r´┐Żpertoire ou de fichier .htaccess n'est pas support´┐Że par mod_cache_disk. Le module ne prend en compte la d´┐Żfinition de EnableSendfile que dans un contexte global.

top

Error Directive

Description:Interrompt la lecture de la configuration avec un message d'erreur personnalis´┐Ż
Syntaxe:Error message
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
Statut:Core
Module:core
Compatibilit´┐Ż:´┐Ż partir de la version 2.3.9

Si une erreur peut ´┐Żtre d´┐Żtect´┐Że dans la configuration, souvent un module manquant, cette directive peut ´┐Żtre utilis´┐Że pour g´┐Żn´┐Żrer un message d'erreur personnalis´┐Ż, et interrompre la lecture de la configuration.

# Exemple
# v´┐Żrification du chargement de mod_include
<IfModule !include_module>
  Error "mod_include is required by mod_foo.  Load it with LoadModule."
</IfModule>

# v´┐Żrification de la d´┐Żfinition de SSL ou (exclusif) NOSSL
<IfDefine SSL>
<IfDefine NOSSL>
  Error "Both SSL and NOSSL are defined.  Define only one of them."
</IfDefine>
</IfDefine>
<IfDefine !SSL>
<IfDefine !NOSSL>
  Error "Either SSL or NOSSL must be defined."
</IfDefine>
</IfDefine>
top

ErrorDocument Directive

Description:Document que le serveur renvoie au client en cas d'erreur
Syntaxe:ErrorDocument code erreur document
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
AllowOverride:FileInfo
Statut:Core
Module:core

Apache httpd peut traiter les probl´┐Żmes et les erreurs de quatre mani´┐Żres,

  1. afficher un simple message d'erreur au contenu fixe
  2. afficher un message personnalis´┐Ż
  3. rediriger en interne vers un chemin d'URL local pour traiter le probl´┐Żme ou l'erreur
  4. rediriger vers une URL externe pour traiter le probl´┐Żme ou l'erreur

La premi´┐Żre option constitue le comportement par d´┐Żfaut; pour choisir une des trois autres options, il faut configurer Apache ´┐Ż l'aide de la directive ErrorDocument, suivie du code de la r´┐Żponse HTTP et d'une URL ou d'un message. Apache httpd fournit parfois des informations suppl´┐Żmentaires ´┐Ż propos du probl´┐Żme ou de l'erreur.

Les URLs peuvent commencer par un slash (/) pour les chemins web locaux (relatifs au r´┐Żpertoire d´┐Żfini par la directive DocumentRoot), ou se pr´┐Żsenter sous la forme d'une URL compl´┐Żte que le client pourra r´┐Żsoudre. Alternativement, un message ´┐Ż afficher par le navigateur pourra ´┐Żtre fourni. Exemples :

ErrorDocument 500 http://foo.example.com/cgi-bin/tester
ErrorDocument 404 /cgi-bin/bad_urls.pl
ErrorDocument 401 /subscription_info.html
ErrorDocument 403 "Sorry can't allow you access today"
ErrorDocument 403 Forbidden!

De plus, on peut sp´┐Żcifier la valeur sp´┐Żciale default pour indiquer l'utilisation d'un simple message d'Apache httpd cod´┐Ż en dur. Bien que non n´┐Żcessaire dans des circonstances normales, la sp´┐Żcification de la valeur default va permettre de r´┐Żtablir l'utilisation du simple message d'Apache httpd cod´┐Ż en dur pour les configurations qui sans cela, h´┐Żriteraient d'une directive ErrorDocument existante.

ErrorDocument 404 /cgi-bin/bad_urls.pl

<Directory /web/docs>
  ErrorDocument 404 default
</Directory>

Notez que lorsque vous sp´┐Żcifiez une directive ErrorDocument pointant vers une URL distante (c'est ´┐Ż dire tout ce qui commence par le pr´┐Żfixe http), le serveur HTTP Apache va envoyer une redirection au client afin de lui indiquer o´┐Ż trouver le document, m´┐Żme dans le cas o´┐Ż ce document se trouve sur le serveur local. Ceci a de nombreuses cons´┐Żquences dont la plus importante r´┐Żside dans le fait que le client ne recevra pas le code d'erreur original, mais au contraire un code de statut de redirection. Ceci peut en retour semer la confusion chez les robots web et divers clients qui tentent de d´┐Żterminer la validit´┐Ż d'une URL en examinant le code de statut. De plus, si vous utilisez une URL distante avec ErrorDocument 401, le client ne saura pas qu'il doit demander un mot de passe ´┐Ż l'utilisateur car il ne recevra pas le code de statut 401. C'est pourquoi, si vous utilisez une directive ErrorDocument 401, elle devra faire r´┐Żf´┐Żrence ´┐Ż un document par le biais d'un chemin local.

Microsoft Internet Explorer (MSIE) ignore par d´┐Żfaut les messages d'erreur g´┐Żn´┐Żr´┐Żs par le serveur lorsqu'ils sont trop courts et remplacent ses propres messages d'erreur "amicaux". Le seuil de taille varie en fonction du type d'erreur, mais en g´┐Żn´┐Żral, si la taille de votre message d'erreur est sup´┐Żrieure ´┐Ż 512 octets, il y a peu de chances pour que MSIE l'occulte, et il sera affich´┐Ż par ce dernier. Vous trouverez d'avantage d'informations dans l'article de la base de connaissances Microsoft Q294807.

Bien que la plupart des messages d'erreur internes originaux puissent ´┐Żtre remplac´┐Żs, ceux-ci sont cependant conserv´┐Żs dans certaines circonstances sans tenir compte de la d´┐Żfinition de la directive ErrorDocument. En particulier, en cas de d´┐Żtection d'une requ´┐Żte mal form´┐Że, le processus de traitement normal des requ´┐Żtes est imm´┐Żdiatement interrompu, et un message d'erreur interne est renvoy´┐Ż, ceci afin de se pr´┐Żmunir contre les probl´┐Żmes de s´┐Żcurit´┐Ż li´┐Żs aux requ´┐Żtes mal form´┐Żes.

Si vous utilisez mod_proxy, il est en g´┐Żn´┐Żral pr´┐Żf´┐Żrable d'activer ProxyErrorOverride afin d'´┐Żtre en mesure de produire des messages d'erreur personnalis´┐Żs pour le compte de votre serveur d'origine. Si vous n'activez pas ProxyErrorOverride, Apache httpd ne g´┐Żn´┐Żrera pas de messages d'erreur personnalis´┐Żs pour le contenu mandat´┐Ż.

Voir aussi

top

ErrorLog Directive

Description:D´┐Żfinition du chemin du journal des erreurs
Syntaxe: ErrorLog chemin fichier|syslog[:facility]
D´┐Żfaut:ErrorLog logs/error_log (Unix) ErrorLog logs/error.log (Windows and OS/2)
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core

La directive ErrorLog permet de d´┐Żfinir le nom du fichier dans lequel le serveur va journaliser toutes les erreurs qu'il rencontre. Si le chemin fichier n'est pas absolu, il est consid´┐Żr´┐Ż comme relatif au chemin d´┐Żfini par la directive ServerRoot.

ErrorLog "/var/log/httpd/error_log"

Si le chemin fichier commence par une barre verticale "(|)", il est consid´┐Żr´┐Ż comme une commande ´┐Ż lancer pour traiter la journalisation de l'erreur.

ErrorLog "|/usr/local/bin/httpd_errors"

Voir les notes ´┐Ż propos des journaux redirig´┐Żs pour plus d'informations.

L'utilisation de syslog ´┐Ż la place d'un nom de fichier active la journalisation via syslogd(8) si le syst´┐Żme le supporte. Le dispositif syslog par d´┐Żfaut est local7, mais vous pouvez le modifier ´┐Ż l'aide de la syntaxe syslog:facility, o´┐Ż facility peut ´┐Żtre remplac´┐Ż par un des noms habituellement document´┐Żs dans la page de man syslog(1). Le dispositif syslog local7 est global, et si il est modifi´┐Ż dans un serveur virtuel, le dispositif final sp´┐Żcifi´┐Ż affecte l'ensemble du serveur

ErrorLog syslog:user

SECURITE : Voir le document conseils ´┐Ż propos de s´┐Żcurit´┐Ż pour des d´┐Żtails sur les raisons pour lesquelles votre s´┐Żcurit´┐Ż peut ´┐Żtre compromise si le r´┐Żpertoire contenant les fichiers journaux pr´┐Żsente des droits en ´┐Żcriture pour tout autre utilisateur que celui sous lequel le serveur est d´┐Żmarr´┐Ż.

Note

Lors de la sp´┐Żcification d'un chemin de fichier sur les plates-formes non-Unix, on doit veiller ´┐Ż n'utiliser que des slashes (/), m´┐Żme si la plate-forme autorise l'utilisation des anti-slashes (\). Et d'une mani´┐Żre g´┐Żn´┐Żrale, il est recommand´┐Ż de n'utiliser que des slashes (/) dans les fichiers de configuration.

Voir aussi

top

ErrorLogFormat Directive

Description:Sp´┐Żcification du format des entr´┐Żes du journal des erreurs
Syntaxe: ErrorLogFormat [connection|request] format
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core

La directive ErrorLogFormat permet de sp´┐Żcifier quelles informations suppl´┐Żmentaires vont ´┐Żtre enregistr´┐Żes dans le journal des erreurs en plus du message habituel.

# Exemple simple
ErrorLogFormat "[%t] [%l] [pid %P] %F: %E: [client %a] %M"

La sp´┐Żcification de connection ou request comme premier param´┐Żtre permet de d´┐Żfinir des formats suppl´┐Żmentaires, ce qui a pour effet de journaliser des informations additionnelles lorsque le premier message est enregistr´┐Ż respectivement pour une connexion ou une requ´┐Żte sp´┐Żcifique. Ces informations additionnelles ne sont enregistr´┐Żes qu'une seule fois par connexion/requ´┐Żte. Si le traitement d'une connexion ou d'une requ´┐Żte ne g´┐Żn´┐Żre aucun message dans le journal, alors aucune information additionnelle n'est enregistr´┐Że.

Il peut arriver que certains items de la cha´┐Żne de format ne produisent aucune sortie. Par exemple, l'en-t´┐Żte Referer n'est pr´┐Żsent que si le message du journal est associ´┐Ż ´┐Ż une requ´┐Żte et s'il est g´┐Żn´┐Żr´┐Ż ´┐Ż un moment o´┐Ż l'en-t´┐Żte Referer a d´┐Żj´┐Ż ´┐Żt´┐Ż lu par le client. Si aucune sortie n'est g´┐Żn´┐Żr´┐Że, le comportement par d´┐Żfaut consiste ´┐Ż supprimer tout ce qui se trouve entre l'espace pr´┐Żc´┐Żdent et le suivant. Ceci implique que la ligne de journalisation est divis´┐Że en champs ne contenant pas d'espace s´┐Żpar´┐Żs par des espaces. Si un item de la cha´┐Żne de format ne g´┐Żn´┐Żre aucune sortie, l'ensemble du champ est omis. Par exemple, si l'adresse distante %a du format [%t] [%l] [%a] %M  n'est pas disponible, les crochets qui l'entourent ne seront eux-m´┐Żmes pas enregistr´┐Żs. Il est possible d'´┐Żchapper les espaces par un anti-slash afin qu'ils ne soient pas consid´┐Żr´┐Żs comme s´┐Żparateurs de champs. La combinaison '% ' (pourcentage espace) est un d´┐Żlimiteur de champ de taille nulle qui ne g´┐Żn´┐Żre aucune sortie.

Ce comportement peut ´┐Żtre chang´┐Ż en ajoutant des modificateurs ´┐Ż l'item de la cha´┐Żne de format. Le modificateur - (moins) provoque l'enregistrement d'un signe moins si l'item consid´┐Żr´┐Ż ne g´┐Żn´┐Żre aucune sortie. Pour les formats ´┐Ż enregistrement unique par connexion/requ´┐Żte, il est aussi possible d'utiliser le modificateur + (plus). Si un item ne g´┐Żn´┐Żrant aucune sortie poss´┐Żde le modificateur plus, la ligne dans son ensemble est omise.

Un modificateur de type entier permet d'assigner un niveau de s´┐Żv´┐Żrit´┐Ż ´┐Ż un item de format. L'item consid´┐Żr´┐Ż ne sera journalis´┐Ż que si la s´┐Żv´┐Żrit´┐Ż du message n'est pas plus haute que le niveau de s´┐Żv´┐Żrit´┐Ż sp´┐Żcifi´┐Ż. Les valeurs possibles vont de 1 (alert) ´┐Ż 15 (trace8), en passant par 4 (warn) ou 7 (debug).

Par exemple, voici ce qui arriverait si vous ajoutiez des modificateurs ´┐Ż l'item %{Referer}i qui enregistre le contenu de l'en-t´┐Żte Referer.

Item modifi´┐ŻSignification
%-{Referer}i Enregistre le caract´┐Żre - si l'en-t´┐Żte Referer n'est pas d´┐Żfini.
%+{Referer}i N'enregistre rien si l'en-t´┐Żte Referer n'est pas d´┐Żfini.
%4{Referer}i N'enregistre le contenu de l'en-t´┐Żte Referer que si la s´┐Żv´┐Żrit´┐Ż du message de journalisation est sup´┐Żrieure ´┐Ż 4.

Certains items de format acceptent des param´┐Żtres suppl´┐Żmentaires entre accolades.

Cha´┐Żne de format Description
%% Le signe pourcentage
%a Adresse IP et port clients
%{c}a Port et adresse IP sous-jacents du correspondant pour la connexion (voir le module mod_remoteip)
%A Adresse IP et port locaux
%{name}e Variable d'environnement de requ´┐Żte name
%E Etat d'erreur APR/OS et cha´┐Żne
%F Nom du fichier source et num´┐Żro de ligne de l'appel du journal
%{name}i En-t´┐Żte de requ´┐Żte name
%k Nombre de requ´┐Żtes persistantes pour cette connexion
%l S´┐Żv´┐Żrit´┐Ż du message
%L Identifiant journal de la requ´┐Żte
%{c}L Identifiant journal de la connexion
%{C}L Identifiant journal de la connexion si utilis´┐Ż dans la port´┐Że de la connexion, vide sinon
%m Nom du module qui effectue la journalisation du message
%M Le message effectif
%{name}n Note de requ´┐Żte name
%P Identifiant du processus courant
%T Identifiant du thread courant
%{g}T Identifiant unique de thread syst´┐Żme du thread courant (l'identifiant affich´┐Ż par la commande top par exemple ; seulement sous Linux pour l'instant)
%t L'heure courante
%{u}t L'heure courante avec les microsecondes
%{cu}t L'heure courante au format compact ISO 8601, avec les microsecondes
%v Le nom de serveur canonique ServerName du serveur courant.
%V Le nom de serveur du serveur qui sert la requ´┐Żte en accord avec la d´┐Żfinition de la directive UseCanonicalName.
(anti-slash espace) Espace non d´┐Żlimiteur
(pourcentage espace) D´┐Żlimiteur de champ (aucune sortie)

L'item de format identifiant journal %L g´┐Żn´┐Żre un identifiant unique pour une connexion ou une requ´┐Żte. Il peut servir ´┐Ż d´┐Żterminer quelles lignes correspondent ´┐Ż la m´┐Żme connexion ou requ´┐Żte ou quelle requ´┐Żte est associ´┐Że ´┐Ż tel connexion. Un item de format %L est aussi disponible dans le module mod_log_config, mais il permet dans ce contexte de corr´┐Żler les entr´┐Żes du journal des acc´┐Żs avec celles du journal des erreurs. Si le module mod_unique_id est charg´┐Ż, c'est son identifiant unique qui sera utilis´┐Ż comme identifiant de journal pour les requ´┐Żtes.

# Exemple (format par d´┐Żfaut pour les MPMs thread´┐Żs)
ErrorLogFormat "[%{u}t] [%-m:%l] [pid %P:tid %T] %7F: %E: [client\ %a] %M%´┐Ż,\´┐Żreferer\´┐Ż%{Referer}i"

Cet exemple renverrait un message d'erreur du style :

[Thu May 12 08:28:57.652118 2011] [core:error] [pid 8777:tid 4326490112] [client ::1:58619] File does not exist: /usr/local/apache2/htdocs/favicon.ico

Notez que, comme indiqu´┐Ż plus haut, certains champs sont totalement supprim´┐Żs s'ils n'ont pas ´┐Żt´┐Ż d´┐Żfinis.

# Exemple (similaire au format 2.2.x)
ErrorLogFormat "[%t] [%l] %7F: %E: [client\ %a] %M%´┐Ż,\´┐Żreferer\´┐Ż%{Referer}i"
# Exemple avanc´┐Ż avec identifiants journal de requ´┐Żte/connexion
ErrorLogFormat "[%{uc}t] [%-m:%-l] [R:%L] [C:%{C}L] %7F: %E: %M"
ErrorLogFormat request "[%{uc}t] [R:%L] Request %k on C:%{c}L pid:%P tid:%T"
ErrorLogFormat request "[%{uc}t] [R:%L] UA:'%+{User-Agent}i'"
ErrorLogFormat request "[%{uc}t] [R:%L] Referer:'%+{Referer}i'"
ErrorLogFormat connection "[%{uc}t] [C:%{c}L] local\ %a remote\ %A"

Voir aussi

top

ExtendedStatus Directive

Description:Extrait des informations d'´┐Żtat ´┐Żtendues pour chaque requ´┐Żte
Syntaxe:ExtendedStatus On|Off
D´┐Żfaut:ExtendedStatus Off
Contexte:configuration du serveur
Statut:Core
Module:core

Cette option permet d'extraire des donn´┐Żes suppl´┐Żmentaires concernant la requ´┐Żte en cours de traitement pour un processus donn´┐Ż, ainsi qu'un r´┐Żsum´┐Ż d'utilisation ; vous pouvez acc´┐Żder ´┐Ż ces variables pendant l'ex´┐Żcution en configurant mod_status. Notez que d'autres modules sont susceptibles de s'appuyer sur ce tableau de bord.

Cette directive s'applique au serveur dans son ensemble, et ne peut pas ´┐Żtre activ´┐Że/d´┐Żsactiv´┐Że pour un serveur virtuel particulier. Notez que l'extraction des informations d'´┐Żtat ´┐Żtendues peut ralentir le serveur. Notez aussi que cette d´┐Żfinition ne peut pas ´┐Żtre modifi´┐Że au cours d'un red´┐Żmarrage graceful.

Notez que le chargement de mod_status d´┐Żfinit automatiquement ExtendedStatus ´┐Ż On, et que d'autres modules tiers sont susceptibles d'en faire de m´┐Żme. De tels modules ont besoin d'informations d´┐Żtaill´┐Żes ´┐Ż propos de l'´┐Żtat de tous les processus. Depuis la version 2.3.6, mod_status a d´┐Żfinit la valeur par d´┐Żfaut ´┐Ż On, alors qu'elle ´┐Żtait ´┐Ż Off dans les versions ant´┐Żrieures.

top

FileETag Directive

Description:Caract´┐Żristiques de fichier utilis´┐Żes lors de la g´┐Żn´┐Żration de l'en-t´┐Żte de r´┐Żponse HTTP ETag pour les fichiers statiques
Syntaxe:FileETag composant ...
D´┐Żfaut:FileETag MTime Size
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
AllowOverride:FileInfo
Statut:Core
Module:core
Compatibilit´┐Ż:La valeur par d´┐Żfaut ´┐Żtait "INode MTime Size" dans les versions 2.3.14 et ant´┐Żrieures.

La directive FileETag d´┐Żfinit les caract´┐Żristiques de fichier utilis´┐Żes lors de la g´┐Żn´┐Żration de l'en-t´┐Żte de r´┐Żponse HTTP ETag (entity tag) quand le document est contenu dans un fichier statique(la valeur de ETag est utilis´┐Że dans le cadre de la gestion du cache pour pr´┐Żserver la bande passante r´┐Żseau). La directive FileETag vous permet maintenant de choisir quelles caract´┐Żristiques du fichier vont ´┐Żtre utilis´┐Żes, le cas ´┐Żch´┐Żant. Les mots-cl´┐Żs reconnus sont :

INode
Le num´┐Żro d'i-node du fichier sera inclus dans le processus de g´┐Żn´┐Żration
MTime
La date et l'heure auxquelles le fichier a ´┐Żt´┐Ż modifi´┐Ż la derni´┐Żre fois seront incluses
Size
La taille du fichier en octets sera incluse
All
Tous les champs disponibles seront utilis´┐Żs. Cette d´┐Żfinition est ´┐Żquivalente ´┐Ż :
FileETag INode MTime Size
None
Si le document se compose d'un fichier, aucun champ ETag ne sera inclus dans la r´┐Żponse

Les mots-cl´┐Żs INode, MTime, et Size peuvent ´┐Żtre pr´┐Żfix´┐Żs par + ou -, ce qui permet de modifier les valeurs par d´┐Żfaut h´┐Żrit´┐Żes d'un niveau de configuration plus g´┐Żn´┐Żral. Tout mot-cl´┐Ż apparaissant sans aucun pr´┐Żfixe annule enti´┐Żrement et imm´┐Żdiatement les configurations h´┐Żrit´┐Żes.

Si la configuration d'un r´┐Żpertoire contient FileETag INode MTime Size, et si un de ses sous-r´┐Żpertoires contient FileETag -INode, la configuration de ce sous-r´┐Żpertoire (qui sera propag´┐Że vers tout sous-r´┐Żpertoire qui ne la supplante pas), sera ´┐Żquivalente ´┐Ż FileETag MTime Size.

Avertissement

Ne modifiez pas les valeurs par d´┐Żfaut pour les r´┐Żpertoires ou localisations o´┐Ż WebDAV est activ´┐Ż et qui utilisent mod_dav_fs comme fournisseur de stockage. mod_dav_fs utilise MTime Size comme format fixe pour les comparaisons de champs ETag dans les requ´┐Żtes conditionnelles. Ces requ´┐Żtes conditionnelles ´┐Żchoueront si le format ETag est modifi´┐Ż via la directive FileETag.

Inclusions c´┐Żt´┐Ż serveur

Aucun champ ETag n'est g´┐Żn´┐Żr´┐Ż pour les r´┐Żponses interpr´┐Żt´┐Żes par mod_include, car l'entit´┐Ż de la r´┐Żponse peut changer sans modification de l'INode, du MTime, ou de la taille du fichier statique contenant les directives SSI.
top

<Files> Directive

Description:Contient des directives qui s'appliquent aux fichiers pr´┐Żcis´┐Żs
Syntaxe:<Files nom fichier> ... </Files>
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
AllowOverride:All
Statut:Core
Module:core

La directive <Files> limite la port´┐Że des directives qu'elle contient aux fichiers pr´┐Żcis´┐Żs. Elle est comparable aux directives <Directory> et <Location>. Elle doit se terminer par une balise </Files>. Les directives contenues dans cette section s'appliqueront ´┐Ż tout objet dont le nom de base (la derni´┐Żre partie du nom de fichier) correspond au fichier sp´┐Żcifi´┐Ż. Les sections <Files> sont trait´┐Żes selon l'ordre dans lequel elles apparaissent dans le fichier de configuration, apr´┐Żs les sections <Directory> et la lecture des fichiers .htaccess, mais avant les sections <Location>. Notez que les sections <Files> peuvent ´┐Żtre imbriqu´┐Żes dans les sections <Directory> afin de restreindre la portion du syst´┐Żme de fichiers ´┐Ż laquelle ces derni´┐Żres vont s'appliquer.

L'argument filename peut contenir un nom de fichier ou une cha´┐Żne de caract´┐Żres avec caract´┐Żres g´┐Żn´┐Żriques, o´┐Ż ? remplace un caract´┐Żre, et * toute cha´┐Żne de caract´┐Żres.

<Files "cat.html">
    # Ins´┐Żrer ici des directives qui s'appliquent au fichier cat.html
</Files>

<Files "?at.*">
    # Les directives ins´┐Żr´┐Żes ici s'appliqueront aux fichiers
    # cat.html, bat.html, hat.php, et ainsi de suite.
</Files>

On peut aussi utiliser les Expressions rationnelles en ajoutant la caract´┐Żre ~. Par exemple :

<Files ~ "\.(gif|jpe?g|png)$">
    #...
</Files>

correspondrait ´┐Ż la plupart des formats graphiques de l'Internet. Il est cependant pr´┐Żf´┐Żrable d'utiliser la directive <FilesMatch>.

Notez qu'´┐Ż la diff´┐Żrence des sections <Directory> et <Location>, les sections <Files> peuvent ´┐Żtre utilis´┐Żes dans les fichiers .htaccess. Ceci permet aux utilisateurs de contr´┐Żler l'acc´┐Żs ´┐Ż leurs propres ressources, fichier par fichier.

Voir aussi

top

<FilesMatch> Directive

Description:Contient des directives qui s'appliquent ´┐Ż des fichiers sp´┐Żcifi´┐Żs sous la forme d'expressions rationnelles
Syntaxe:<FilesMatch expression rationnelle> ... </FilesMatch>
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
AllowOverride:All
Statut:Core
Module:core

La section <FilesMatch> limite la port´┐Że des directives qu'elle contient aux fichiers sp´┐Żcifi´┐Żs, tout comme le ferait une section <Files>. Mais elle accepte aussi les expressions rationnelles. Par exemple :

<FilesMatch "\.(gif|jpe?g|png)$">
    # ...
</FilesMatch>

correspondrait ´┐Ż la plupart des formats graphiques de l'Internet.

A partir de la version 2.4.8, les groupes nomm´┐Żs et les r´┐Żf´┐Żrences arri´┐Żres sont extraits et enregistr´┐Żs dans l'environnement avec leur nom en majuscules et pr´┐Żfix´┐Ż par "MATCH_". Ceci permet de r´┐Żf´┐Żrencer des URLs dans des expressions ou au sein de modules comme mod_rewrite. Pour ´┐Żviter toute confusion, les r´┐Żf´┐Żrences arri´┐Żres num´┐Żrot´┐Żes (non nomm´┐Żes) sont ignor´┐Żes. Vous devez utiliser ´┐Ż la place des groupes nomm´┐Żs.

<FilesMatch ^(?<sitename>[^/]+)>
    require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
</FilesMatch>

Voir aussi

top

ForceType Directive

Description:Force le type de m´┐Żdium sp´┐Żcifi´┐Ż dans le champ d'en-t´┐Żte HTTP Content-Type pour les fichiers correspondants
Syntaxe:ForceType type m´┐Żdium|None
Contexte:r´┐Żpertoire, .htaccess
AllowOverride:FileInfo
Statut:Core
Module:core

Lorsqu'elle est plac´┐Że dans un fichier .htaccess ou une section <Directory>, <Location>, ou <Files>, cette directive force l'identification du type MIME des fichiers sp´┐Żcifi´┐Żs ´┐Ż la valeur de l'argument type m´┐Żdium. Par exemple, si vous poss´┐Żdez un r´┐Żpertoire ne contenant que des fichiers GIF, et si vous ne voulez pas leur ajouter l'extension .gif, vous pouvez utiliser :

ForceType image/gif

Notez que cette directive l'emporte sur d'autres associations de type de m´┐Żdium indirectes d´┐Żfinies dans mime.types ou via la directive AddType.

Vous pouvez aussi annuler toute d´┐Żfinition plus g´┐Żn´┐Żrale de ForceType en affectant la valeur None ´┐Ż l'argument type m´┐Żdium :

# force le type MIME de tous les fichiers ´┐Ż image/gif:
<Location /images>
  ForceType image/gif
</Location>

# mais utilise les m´┐Żthodes classiques d'attribution du type MIME
# dans le sous-r´┐Żpertoire suivant :
<Location /images/mixed>
  ForceType None
</Location>

A la base, cette directive ´┐Żcrase le type de contenu g´┐Żn´┐Żr´┐Ż pour les fichiers statiques servis ´┐Ż partir du syt´┐Żme de fichiers. Pour les ressources autres que les fichiers statiques pour lesquels le g´┐Żn´┐Żrateur de r´┐Żponse sp´┐Żcifie en g´┐Żn´┐Żral un type de contenu, cette directive est ignor´┐Że.

top

GprofDir Directive

Description:R´┐Żpertoire dans lequel ´┐Żcrire les donn´┐Żes de profiling gmon.out.
Syntaxe:GprofDir /tmp/gprof/|/tmp/gprof/%
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core

Lorsque le serveur a ´┐Żt´┐Ż compil´┐Ż avec le support du profiling gprof, la directive GprofDir permet de sp´┐Żcifier dans quel r´┐Żpertoire les fichiers gmon.out doivent ´┐Żtre ´┐Żcrits lorsque le processus s'arr´┐Żte. Si l'argument se termine par un caract´┐Żre pourcentage ('%'), des sous-r´┐Żpertoires sont cr´┐Ż´┐Żs pour chaque identifiant de processus.

Cette directive ne fonctionne actuellement qu'avec le MPM prefork.

top

HostnameLookups Directive

Description:Active la recherche DNS sur les adresses IP des clients
Syntaxe:HostnameLookups On|Off|Double
D´┐Żfaut:HostnameLookups Off
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire
Statut:Core
Module:core

Cette directive active la recherche DNS afin de pouvoir journaliser les nom d'h´┐Żtes (et les passer aux programmes CGI et aux inclusions SSI via la variable REMOTE_HOST). La valeur Double d´┐Żclenche une double recherche DNS inverse. En d'autres termes, une fois la recherche inverse effectu´┐Że, on lance une recherche directe sur le r´┐Żsultat de cette derni´┐Żre. Au moins une des adresses IP fournies par la recherche directe doit correspondre ´┐Ż l'adresse originale (ce que l'on nomme PARANOID dans la terminologie "tcpwrappers").

Quelle que soit la configuration, lorsqu'on utilise mod_authz_host pour contr´┐Żler l'acc´┐Żs en fonction du nom d'h´┐Żte, une double recherche DNS inverse est effectu´┐Że, s´┐Żcurit´┐Ż oblige. Notez cependant que le r´┐Żsultat de cette double recherche n'est en g´┐Żn´┐Żral pas accessible, ´┐Ż moins que vous n'ayez sp´┐Żcifi´┐Ż HostnameLookups Double. Par exemple, si vous n'avez sp´┐Żcifi´┐Ż que HostnameLookups On, et si une requ´┐Żte concerne un objet prot´┐Żg´┐Ż par des restrictions en fonction du nom d'h´┐Żte, quel que soit le r´┐Żsultat de la double recherche inverse, les programmes CGI ne recevront que le r´┐Żsultat de la recherche inverse simple dans la variable REMOTE_HOST.

La valeur par d´┐Żfaut est Off afin de pr´┐Żserver le traffic r´┐Żseau des sites pour lesquels la recherche inverse n'est pas vraiment n´┐Żcessaire. Cette valeur par d´┐Żfaut est aussi b´┐Żn´┐Żfique pour les utilisateurs finaux car il n'ont ainsi pas ´┐Ż subir de temps d'attente suppl´┐Żmentaires dus aux recherches DNS. Les sites fortement charg´┐Żs devraient laisser cette directive ´┐Ż Off, car les recherches DNS peuvent prendre des temps tr´┐Żs longs. Vous pouvez ´┐Żventuellement utiliser hors ligne l'utilitaire logresolve, compil´┐Ż par d´┐Żfaut dans le sous-r´┐Żpertoire bin de votre r´┐Żpertoire d'installation, afin de d´┐Żterminer les noms d'h´┐Żtes associ´┐Żs aux adresses IP journalis´┐Żes.

Enfin, si vous avez des directives Require ´┐Ż base de nom, une recherche de nom d'h´┐Żte sera effectu´┐Że quelle que soit la d´┐Żfinition de la directive HostnameLookups.

top

<If> Directive

Description:Contient des directives qui ne s'appliquent que si une condition est satisfaite au cours du traitement d'une requ´┐Żte
Syntaxe:<If expression> ... </If>
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
AllowOverride:All
Statut:Core
Module:core

La directive <If> ´┐Żvalue une expression ´┐Ż la vol´┐Że, et applique les directives qu'elle contient si et seulement si l'expression renvoie la valeur "vrai". Par exemple :

<If "-z req('Host')">

serait satisfaite pour les requ´┐Żtes HTTP/1.0 sans en-t´┐Żte Host:. Les expressions peuvent contenir diff´┐Żrents op´┐Żrateurs de type shell pour la comparaison de cha´┐Żnes (==, !=, <, ...), la comparaison d'entiers (-eq, -ne, ...), ou ´┐Ż usages divers (-n, -z, -f, ...). Les expressions rationnelles sont aussi support´┐Żes,

<If "%{QUERY_STRING} =~ /(delete|commit)=.*?elem/">

ainsi que les comparaison de mod´┐Żles de type shell et de nombreuses autres op´┐Żrations. Ces op´┐Żrations peuvent ´┐Żtre effectu´┐Żes sur les en-t´┐Żtes de requ´┐Żtes (req), les variables d'environnement (env), et un grand nombre d'autres propri´┐Żt´┐Żs. La documentation compl´┐Żte est disponible dans Les expressions dans le serveur HTTP Apache.

Cette section de configuration ne peut contenir que des directives qui supportent le contexte de r´┐Żpertoire.

Voir aussi

top

<IfDefine> Directive

Description:Contient des directives qui ne s'appliqueront que si un test retourne "vrai" au d´┐Żmarrage du serveur
Syntaxe:<IfDefine [!]param´┐Żtre> ... </IfDefine>
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
AllowOverride:All
Statut:Core
Module:core

La section <IfDefine test>...</IfDefine> permet de conf´┐Żrer un caract´┐Żre conditionnel ´┐Ż un ensemble de directives. Les directives situ´┐Żes ´┐Ż l'int´┐Żrieur d'une section <IfDefine> ne s'appliquent que si test est vrai. Si test est faux, tout ce qui se trouve entre les balises de d´┐Żbut et de fin est ignor´┐Ż.

test peut se pr´┐Żsenter sous deux formes :

Dans le premier cas, les directives situ´┐Żes entre les balises de d´┐Żbut et de fin ne s'appliqueront que si le param´┐Żtre nomm´┐Ż nom param´┐Żtre est d´┐Żfini. Le second format inverse le test, et dans ce cas, les directives ne s'appliqueront que si nom param´┐Żtre n'est pas d´┐Żfini.

L'argument nom param´┐Żtre est une d´┐Żfinition qui peut ´┐Żtre effectu´┐Że par la ligne de commande httpd via le param´┐Żtre -Dparam´┐Żtre au d´┐Żmarrage du serveur, ou via la directive Define.

Les sections <IfDefine> peuvent ´┐Żtre imbriqu´┐Żes, ce qui permet d'impl´┐Żmenter un test multi-param´┐Żtres simple. Exemple :

httpd -DReverseProxy -DUseCache -DMemCache ...

<IfDefine ReverseProxy>
  LoadModule proxy_module   modules/mod_proxy.so
  LoadModule proxy_http_module   modules/mod_proxy_http.so
  <IfDefine UseCache>
    LoadModule cache_module   modules/mod_cache.so
    <IfDefine MemCache>
      LoadModule mem_cache_module   modules/mod_mem_cache.so
    </IfDefine>
    <IfDefine !MemCache>
      LoadModule cache_disk_module   modules/mod_cache_disk.so
    </IfDefine>
  </IfDefine>
</IfDefine>
top

<IfModule> Directive

Description:Contient des directives qui ne s'appliquent qu'en fonction de la pr´┐Żsence ou de l'absence d'un module sp´┐Żcifique
Syntaxe:<IfModule [!]fichier module|identificateur module> ... </IfModule>
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
AllowOverride:All
Statut:Core
Module:core
Compatibilit´┐Ż:Les identificateurs de modules sont disponibles dans les versions 2.1 et sup´┐Żrieures.

La section <IfModule test>...</IfModule> permet de conf´┐Żrer ´┐Ż des directives un caract´┐Żre conditionnel bas´┐Ż sur la pr´┐Żsence d'un module sp´┐Żcifique. Les directives situ´┐Żes dans une section <IfModule> ne s'appliquent que si test est vrai. Si test est faux, tout ce qui se trouve entre les balises de d´┐Żbut et de fin est ignor´┐Ż.

test peut se pr´┐Żsenter sous deux formes :

Dans le premier cas, les directives situ´┐Żes entre les balises de d´┐Żbut et de fin ne s'appliquent que si le module module est pr´┐Żsent -- soit compil´┐Ż avec le binaire Apache httpd, soit charg´┐Ż dynamiquement via la directive LoadModule. Le second format inverse le test, et dans ce cas, les directives ne s'appliquent que si module n'est pas pr´┐Żsent.

L'argument module peut contenir soit l'identificateur du module, soit le nom du fichier source du module. Par exemple, rewrite_module est un identificateur et mod_rewrite.c le nom du fichier source correspondant. Si un module comporte plusieurs fichiers sources, utilisez le nom du fichier qui contient la cha´┐Żne de caract´┐Żres STANDARD20_MODULE_STUFF.

Les sections <IfModule> peuvent ´┐Żtre imbriqu´┐Żes, ce qui permet d'impl´┐Żmenter des tests multi-modules simples.

Cette section ne doit ´┐Żtre utilis´┐Że que si votre fichier de configuration ne fonctionne qu'en fonction de la pr´┐Żsence ou de l'absence d'un module sp´┐Żcifique. D'une mani´┐Żre g´┐Żn´┐Żrale, il n'est pas n´┐Żcessaire de placer les directives ´┐Ż l'int´┐Żrieur de sections <IfModule>.
top

Include Directive

Description:Inclut d'autres fichiers de configuration dans un des fichiers de configuration du serveur
Syntaxe:Include chemin-fichier|chemin-r´┐Żpertoire|wildcard
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire
Statut:Core
Module:core
Compatibilit´┐Ż:Utilisation des caract´┐Żres g´┐Żn´┐Żriques dans la partie chemin depuis la version 2.3.6

Cette directive permet l'inclusion d'autres fichiers de configuration dans un des fichiers de configuration du serveur.

On peut utiliser des caract´┐Żres g´┐Żn´┐Żriques de style Shell (fnmatch()) aussi bien dans la partie nom de fichier du chemin que dans la partie r´┐Żpertoires pour inclure plusieurs fichiers en une seule fois, selon leur ordre alphab´┐Żtique. De plus, si la directive Include pointe vers un r´┐Żpertoire, Apache httpd inclura tous les fichiers de ce r´┐Żpertoire et de tous ces sous-r´┐Żpertoires. L'inclusion de r´┐Żpertoires entiers est cependant d´┐Żconseill´┐Że, car il est fr´┐Żquent d'oublier des fichiers temporaires dans un r´┐Żpertoire, ce qui causerait une erreur httpd en cas d'inclusion. Pour inclure des fichiers qui correspondent ´┐Ż un certain mod´┐Żle, comme *.conf par exemple, nous vous recommandons d'utiliser plut´┐Żt la syntaxe avec caract´┐Żres g´┐Żn´┐Żriques comme ci-dessous.

La directive Include ´┐Żchouera avec un code d'erreur si une expression contenant des caract´┐Żres g´┐Żn´┐Żriques ne correspond ´┐Ż aucun fichier. Pour ignorer les expressions contenant des caract´┐Żres g´┐Żn´┐Żriques ne correspondant ´┐Ż aucun fichier, utilisez la directive IncludeOptional.

Le chemin fichier sp´┐Żcifi´┐Ż peut ´┐Żtre soit un chemin absolu, soit un chemin relatif au r´┐Żpertoire d´┐Żfini par la directive ServerRoot.

Exemples :

Include /usr/local/apache2/conf/ssl.conf
Include /usr/local/apache2/conf/vhosts/*.conf

ou encore, avec des chemins relatifs au r´┐Żpertoire d´┐Żfini par la directive ServerRoot :

Include conf/ssl.conf
Include conf/vhosts/*.conf

On peut aussi ins´┐Żrer des caract´┐Żres g´┐Żn´┐Żriques dans la partie r´┐Żpertoires du chemin. Dans l'exemple suivant, la directive ´┐Żchouera si aucun sous-r´┐Żpertoire de conf/vhosts ne contient au moins un fichier *.conf :

Include conf/vhosts/*/*.conf

Par contre, dans l'exemple suivant, la directive sera simplement ignor´┐Że si aucun sous-r´┐Żpertoire de conf/vhosts ne contient au moins un fichier *.conf :

IncludeOptional conf/vhosts/*/*.conf

Voir aussi

top

IncludeOptional Directive

Description:Inclusion de fichiers dans le fichier de configuration
Syntaxe:IncludeOptional chemin-fichier|chemin-r´┐Żpertoire|wildcard
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire
Statut:Core
Module:core
Compatibilit´┐Ż:Disponible ´┐Ż partir de la version 2.3.6 du serveur HTTP Apache

Cette directive permet d'inclure des fichiers dans les fichiers de configuration du serveur. Elle fonctionne de mani´┐Żre identique ´┐Ż la directive Include, ´┐Ż l'exception du fait que si l'expression avec caract´┐Żres g´┐Żn´┐Żriques wilcard ne correspond ´┐Ż aucun fichier ou r´┐Żpertoire, elle sera ignor´┐Że silencieusement au lieu de causer une erreur.

Voir aussi

top

KeepAlive Directive

Description:Active les connexions HTTP persistantes
Syntaxe:KeepAlive On|Off
D´┐Żfaut:KeepAlive On
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core

L'extension Keep-Alive de HTTP/1.0 et l'impl´┐Żmentation des connexions persistantes dans HTTP/1.1 ont rendu possibles des sessions HTTP de longue dur´┐Że, ce qui permet de transmettre plusieurs requ´┐Żtes via la m´┐Żme connexion TCP. Dans certains cas, le gain en rapidit´┐Ż pour des documents comportant de nombreuses images peut atteindre 50%. Pour activer les connexions persistantes, d´┐Żfinissez KeepAlive On.

Pour les clients HTTP/1.0, les connexions persistantes ne seront mises en oeuvre que si elles ont ´┐Żt´┐Ż sp´┐Żcialement demand´┐Żes par un client. De plus, une connexion persistante avec un client HTTP/1.0 ne peut ´┐Żtre utilis´┐Że que si la taille du contenu est connue d'avance. Ceci implique que les contenus dynamiques comme les sorties CGI, les pages SSI, et les listings de r´┐Żpertoires g´┐Żn´┐Żr´┐Żs par le serveur n'utiliseront en g´┐Żn´┐Żral pas les connexions persistantes avec les clients HTTP/1.0. Avec les clients HTTP/1.1, les connexions persistantes sont utilis´┐Żes par d´┐Żfaut, sauf instructions contraires. Si le client le demande, le transfert par tron´┐Żons de taille fixe (chunked encoding) sera utilis´┐Ż afin de transmettre un contenu de longueur inconnue via une connexion persistante.

Lorsqu'un client utilise une connexion persistante, elle comptera pour une seule requ´┐Żte pour la directive MaxConnectionsPerChild, quel que soit le nombre de requ´┐Żtes transmises via cette connexion.

Voir aussi

top

KeepAliveTimeout Directive

Description:Dur´┐Że pendant laquelle le serveur va attendre une requ´┐Żte avant de fermer une connexion persistante
Syntaxe:KeepAliveTimeout nombre[ms]
D´┐Żfaut:KeepAliveTimeout 5
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core

Le nombre de secondes pendant lesquelles Apache httpd va attendre une requ´┐Żte avant de fermer la connexion. Le d´┐Żlai peut ´┐Żtre d´┐Żfini en millisecondes en suffixant sa valeur par ms. La valeur du d´┐Żlai sp´┐Żcifi´┐Że par la directive Timeout s'applique d´┐Żs qu'une requ´┐Żte a ´┐Żt´┐Ż re´┐Żue.

Donner une valeur trop ´┐Żl´┐Żv´┐Że ´┐Ż KeepAliveTimeout peut induire des probl´┐Żmes de performances sur les serveurs fortement charg´┐Żs. Plus le d´┐Żlai est ´┐Żl´┐Żv´┐Ż, plus nombreux seront les processus serveur en attente de requ´┐Żtes de la part de clients inactifs.

Dans un contexte de serveur virtuel ´┐Ż base de nom, c'est la valeur de la paire adresse IP/port du serveur virtuel qui correspond le mieux qui sera utilis´┐Że.

top

<Limit> Directive

Description:Limite les contr´┐Żles d'acc´┐Żs que la section contient ´┐Ż certaines m´┐Żthodes HTTP
Syntaxe:<Limit m´┐Żthode [m´┐Żthode] ... > ... </Limit>
Contexte:r´┐Żpertoire, .htaccess
AllowOverride:AuthConfig, Limit
Statut:Core
Module:core

Les contr´┐Żles d'acc´┐Żs s'appliquent normalement ´┐Ż toutes les m´┐Żthodes d'acc´┐Żs, et c'est en g´┐Żn´┐Żral le comportement souhait´┐Ż. Dans le cas g´┐Żn´┐Żral, les directives de contr´┐Żle d'acc´┐Żs n'ont pas ´┐Ż ´┐Żtre plac´┐Żes dans une section <Limit>.

La directive <Limit> a pour but de limiter les effets des contr´┐Żles d'acc´┐Żs aux m´┐Żthodes HTTP sp´┐Żcifi´┐Żes. Pour toutes les autres m´┐Żthodes, les restrictions d'acc´┐Żs contenues dans la section <Limit> n'auront aucun effet. L'exemple suivant n'applique les contr´┐Żles d'acc´┐Żs qu'aux m´┐Żthodes POST, PUT, et DELETE, en laissant les autres m´┐Żthodes sans protection :

<Limit POST PUT DELETE>
  Require valid-user
</Limit>

La liste des noms de m´┐Żthodes peut contenir une ou plusieurs valeurs parmi les suivantes : GET, POST, PUT, DELETE, CONNECT, OPTIONS, PATCH, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, et UNLOCK. Le nom de m´┐Żthode est sensible ´┐Ż la casse. Si la valeur GET est pr´┐Żsente, les requ´┐Żtes HEAD seront aussi concern´┐Żes. La m´┐Żthode TRACE ne peut pas ´┐Żtre limit´┐Że (voir la directive TraceEnable).

Une section <LimitExcept> doit toujours ´┐Żtre pr´┐Żf´┐Żr´┐Że ´┐Ż une section <Limit> pour la restriction d'acc´┐Żs, car une section <LimitExcept> fournit une protection contre les m´┐Żthodes arbitraires.

Les directives <Limit> et <LimitExcept> peuvent ´┐Żtre imbriqu´┐Żes. Dans ce cas, pour chaque niveau des directives <Limit> ou <LimitExcept>, ces derni´┐Żres doivent restreindre l'acc´┐Żs pour les m´┐Żthodes auxquelles les contr´┐Żles d'acc´┐Żs s'appliquent.

Lorsqu'on utilise les directives <Limit> ou <LimitExcept> avec la directive Require, la premi´┐Żre directive Require dont la condition est satisfaite autorise la requ´┐Żte, sans tenir compte de la pr´┐Żsence d'autres directives Require.

Par exemple, avec la configuration suivante, tous les utilisateurs seront autoris´┐Żs ´┐Ż effectuer des requ´┐Żtes POST, et la directive Require group editors sera ignor´┐Że dans tous les cas :

<LimitExcept GET>
  Require valid-user
</LimitExcept>
<Limit POST>
  Require group editors
</Limit>
top

<LimitExcept> Directive

Description:Applique les contr´┐Żles d'acc´┐Żs ´┐Ż toutes les m´┐Żthodes HTTP, sauf celles qui sont sp´┐Żcifi´┐Żes
Syntaxe:<LimitExcept m´┐Żthode [m´┐Żthode] ... > ... </LimitExcept>
Contexte:r´┐Żpertoire, .htaccess
AllowOverride:AuthConfig, Limit
Statut:Core
Module:core

<LimitExcept> et </LimitExcept> permettent de regrouper des directives de contr´┐Żle d'acc´┐Żs qui s'appliqueront ´┐Ż toutes les m´┐Żthodes d'acc´┐Żs HTTP qui ne font pas partie de la liste des arguments ; en d'autres termes, elles ont un comportement oppos´┐Ż ´┐Ż celui de la section <Limit>, et on peut les utiliser pour contr´┐Żler aussi bien les m´┐Żthodes standards que les m´┐Żthodes non standards ou non reconnues. Voir la documentation de la section <Limit> pour plus de d´┐Żtails.

Par exemple :

<LimitExcept POST GET>
  Require valid-user
</LimitExcept>
top

LimitInternalRecursion Directive

Description:D´┐Żtermine le nombre maximal de redirections internes et de sous-requ´┐Żtes imbriqu´┐Żes
Syntaxe:LimitInternalRecursion nombre [nombre]
D´┐Żfaut:LimitInternalRecursion 10
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core

Une redirection interne survient, par exemple, quand on utilise la directive Action qui redirige en interne la requ´┐Żte d'origine vers un script CGI. Une sous-requ´┐Żte est le m´┐Żcanisme qu'utilise Apache httpd pour d´┐Żterminer ce qui se passerait pour un URI s'il faisait l'objet d'une requ´┐Żte. Par exemple, mod_dir utilise les sous-requ´┐Żtes pour rechercher les fichiers list´┐Żs dans la directive DirectoryIndex.

La directive LimitInternalRecursion permet d'´┐Żviter un crash du serveur d´┐Ż ´┐Ż un bouclage infini de redirections internes ou de sous-requ´┐Żtes. De tels bouclages sont dus en g´┐Żn´┐Żral ´┐Ż des erreurs de configuration.

La directive accepte, comme arguments, deux limites qui sont ´┐Żvalu´┐Żes ´┐Ż chaque requ´┐Żte. Le premier nombre est le nombre maximum de redirections internes qui peuvent se succ´┐Żder. Le second nombre d´┐Żtermine la profondeur d'imbrication maximum des sous-requ´┐Żtes. Si vous ne sp´┐Żcifiez qu'un seul nombre, il sera affect´┐Ż aux deux limites.

LimitInternalRecursion 5
top

LimitRequestBody Directive

Description:limite la taille maximale du corps de la requ´┐Żte HTTP envoy´┐Że par le client
Syntaxe:LimitRequestBody octets
D´┐Żfaut:LimitRequestBody 0
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
AllowOverride:All
Statut:Core
Module:core

Cette directive sp´┐Żcifie la taille maximale autoris´┐Że pour le corps d'une requ´┐Żte ; la valeur de l'argument octets va de 0 (pour une taille illimit´┐Że), ´┐Ż 2147483647 (2Go). Voir la note ci-dessous pour la limite d'applicabilit´┐Ż aux requ´┐Żtes mandat´┐Żes.

La directive LimitRequestBody permet de d´┐Żfinir une limite pour la taille maximale autoris´┐Że du corps d'une requ´┐Żte HTTP en tenant compte du contexte dans lequel la directive a ´┐Żt´┐Ż plac´┐Że (c'est ´┐Ż dire au niveau du serveur, d'un r´┐Żpertoire, d'un fichier ou d'une localisation). Si la requ´┐Żte du client d´┐Żpasse cette limite, le serveur r´┐Żpondra par un message d'erreur et ne traitera pas la requ´┐Żte. La taille du corps d'une requ´┐Żte normale va varier de mani´┐Żre importante en fonction de la nature de la ressource et des m´┐Żthodes autoris´┐Żes pour cette derni´┐Żre. Les scripts CGI utilisent souvent le corps du message pour extraire les informations d'un formulaire. Les impl´┐Żmentations de la m´┐Żthode PUT n´┐Żcessitent une valeur au moins aussi ´┐Żlev´┐Że que la taille maximale des repr´┐Żsentations que le serveur d´┐Żsire accepter pour cette ressource.

L'administrateur du serveur peut utiliser cette directive pour contr´┐Żler plus efficacement les comportements anormaux des requ´┐Żtes des clients, ce qui lui permettra de pr´┐Żvenir certaines formes d'attaques par d´┐Żni de service.

Si par exemple, vous autorisez le chargement de fichiers vers une localisation particuli´┐Żre, et souhaitez limiter la taille des fichiers charg´┐Żs ´┐Ż 100Ko, vous pouvez utiliser la directive suivante :

LimitRequestBody 102400

Pour une description d´┐Żtaill´┐Że de la mani´┐Żre dont cette directive est interpr´┐Żt´┐Że par les requ´┐Żtes mandat´┐Żes, voir la documentation du module mod_proxy.

top

LimitRequestFields Directive

Description:Limite le nombre de champs d'en-t´┐Żte autoris´┐Żs dans une requ´┐Żte HTTP
Syntaxe:LimitRequestFields nombre
D´┐Żfaut:LimitRequestFields 100
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core

nombre est un entier de 0 (nombre de champs illimit´┐Ż) ´┐Ż 32767. La valeur par d´┐Żfaut est d´┐Żfinie ´┐Ż la compilation par la constante DEFAULT_LIMIT_REQUEST_FIELDS (100 selon la distribution).

La directive LimitRequestFields permet ´┐Ż l'administrateur du serveur de modifier le nombre maximum de champs d'en-t´┐Żte autoris´┐Żs dans une requ´┐Żte HTTP. Pour un serveur, cette valeur doit ´┐Żtre sup´┐Żrieure au nombre de champs qu'une requ´┐Żte client normale peut contenir. Le nombre de champs d'en-t´┐Żte d'une requ´┐Żte qu'un client utilise d´┐Żpasse rarement 20, mais ce nombre peut varier selon les impl´┐Żmentations des clients, et souvent en fonction des extensions que les utilisateurs configurent dans leurs navigateurs pour supporter la n´┐Żgociation de contenu d´┐Żtaill´┐Że. Les extensions HTTP optionnelles utilisent souvent les champs d'en-t´┐Żte des requ´┐Żtes.

L'administrateur du serveur peut utiliser cette directive pour contr´┐Żler plus efficacement les comportements anormaux des requ´┐Żtes des clients, ce qui lui permettra de pr´┐Żvenir certaines formes d'attaques par d´┐Żni de service. La valeur sp´┐Żcifi´┐Że doit ´┐Żtre augment´┐Że si les clients standards re´┐Żoivent une erreur du serveur indiquant que la requ´┐Żte comportait un nombre d'en-t´┐Żtes trop important.

Par exemple :

LimitRequestFields 50

Avertissement

Dans le cas des serveurs virtuels ´┐Ż base de noms, la valeur de cette directive est extraite du serveur virtuel par d´┐Żfaut (le premier de la liste) pour la paire adresse IP/port.

top

LimitRequestFieldSize Directive

Description:D´┐Żdinit la taille maximale autoris´┐Że d'un en-t´┐Żte de requ´┐Żte HTTP
Syntaxe:LimitRequestFieldSize octets
D´┐Żfaut:LimitRequestFieldSize 8190
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core

Cette directive permet de d´┐Żfinir le nombre maximum d'octets autoris´┐Żs dans un en-t´┐Żte de requ´┐Żte HTTP.

La directive LimitRequestFieldSize permet ´┐Ż l'administrateur du serveur de d´┐Żfinir la taille maximale autoris´┐Że d'un en-t´┐Żte de requ´┐Żte HTTP. Pour un serveur, cette valeur doit ´┐Żtre suffisamment grande pour contenir tout en-t´┐Żte d'une requ´┐Żte client normale. La taille d'un champ d'en-t´┐Żte de requ´┐Żte normal va varier selon les impl´┐Żmentations des clients, et en fonction des extensions que les utilisateurs configurent dans leurs navigateurs pour supporter la n´┐Żgociation de contenu d´┐Żtaill´┐Że. Les en-t´┐Żtes d'authentification SPNEGO peuvent atteindre une taille de 12392 octets.

>L'administrateur du serveur peut utiliser cette directive pour contr´┐Żler plus efficacement les comportements anormaux des requ´┐Żtes des clients, ce qui lui permettra de pr´┐Żvenir certaines formes d'attaques par d´┐Żni de service.

Par exemple ::

LimitRequestFieldSize 4094
Dans des conditions normales, la valeur par d´┐Żfaut de cette directive ne doit pas ´┐Żtre modifi´┐Że.

Avertissement

Dans le cas des serveurs virtuels ´┐Ż base de noms, la valeur de cette directive est extraite du serveur virtuel par d´┐Żfaut (le premier de la liste) pour lequel la paire adresse IP/port correspond le mieux.

top

LimitRequestLine Directive

Description:D´┐Żfinit la taille maximale d'une ligne de requ´┐Żte HTTP
Syntaxe:LimitRequestLine octets
D´┐Żfaut:LimitRequestLine 8190
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core

Cette directive permet de d´┐Żfinir la taille maximale autoris´┐Że pour une ligne de requ´┐Żte HTTP en octets.

La directive LimitRequestLine permet ´┐Ż l'administrateur du serveur de d´┐Żfinir la taille maximale autoris´┐Że d'une ligne de requ´┐Żte HTTP client. Comme une requ´┐Żte comporte une m´┐Żthode HTTP, un URI, et une version de protocole, la directive LimitRequestLine impose une restriction sur la longueur maximale autoris´┐Że pour un URI dans une requ´┐Żte au niveau du serveur. Pour un serveur, cette valeur doit ´┐Żtre suffisamment grande pour r´┐Żf´┐Żrencer les noms de toutes ses ressources, y compris toutes informations pouvant ´┐Żtre ajout´┐Żes dans la partie requ´┐Żte d'une m´┐Żthode GET.

L'administrateur du serveur peut utiliser cette directive pour contr´┐Żler plus efficacement les comportements anormaux des requ´┐Żtes des clients, ce qui lui permettra de pr´┐Żvenir certaines formes d'attaques par d´┐Żni de service.

Par exemple :

LimitRequestLine 4094
Dans des conditions normales, cette directive doit conserver sa valeur par d´┐Żfaut.

Avertissement

Dans le cas des serveurs virtuels ´┐Ż base de noms, la valeur de cette directive est extraite du serveur virtuel par d´┐Żfaut (le premier de la liste) pour lequel la paire adresse IP/port correspond le mieux.

top

LimitXMLRequestBody Directive

Description:D´┐Żfinit la taille maximale du corps d'une requ´┐Żte au format XML
Syntaxe:LimitXMLRequestBody octets
D´┐Żfaut:LimitXMLRequestBody 1000000
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
AllowOverride:All
Statut:Core
Module:core

Taille maximale (en octets) du corps d'une requ´┐Żte au format XML. Une valeur de 0 signifie qu'aucune limite n'est impos´┐Że.

Exemple :

LimitXMLRequestBody 0
top

<Location> Directive

Description:N'applique les directives contenues qu'aux URLs sp´┐Żcifi´┐Żes
Syntaxe:<Location chemin URL|URL> ... </Location>
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core

La directive <Location> limite la port´┐Że des directives contenues aux URLs d´┐Żfinies par l'argument URL. Elle est similaire ´┐Ż la directive <Directory>, et marque le d´┐Żbut d'une section qui se termine par une directive </Location>. Les sections <Location> sont trait´┐Żes selon l'ordre dans lequel elles apparaissent dans le fichier de configuration, mais apr´┐Żs les sections <Directory> et la lecture des fichiers .htaccess, et apr´┐Żs les sections <Files>.

Les sections <Location> agissent compl´┐Żtement en dehors du syst´┐Żme de fichiers. Ceci a de nombreuses cons´┐Żquences. Parmi les plus importantes, on ne doit pas utiliser les sections <Location> pour contr´┐Żler l'acc´┐Żs aux r´┐Żpertoires du syst´┐Żme de fichiers. Comme plusieurs URLs peuvent correspondre au m´┐Żme r´┐Żpertoire du syst´┐Żme de fichiers, un tel contr´┐Żle d'acc´┐Żs pourrait ´┐Żtre contourn´┐Ż.

Les directives que contient cette section seront appliqu´┐Żes aux requ´┐Żtes si la partie chemin de l'URL satisfait ´┐Ż l'un au moins de ces crit´┐Żres :

Dans l'exemple ci-dessous, o´┐Ż aucun slash de fin n'est utilis´┐Ż, les directives contenues dans la section s'appliqueront ´┐Ż /private1, /private1/ et /private1/file.txt, mais pas ´┐Ż /private1other.

<Location /private1>
    #  ...
</Location>

De m´┐Żme, dans l'exemple ci-dessous, o´┐Ż l'on utilise un slash de fin, les directives contenues dans la section s'appliqueront ´┐Ż /private2/ et ´┐Ż /private2/file.txt, mais pas ´┐Ż /private2other.

<Location /private2/>
    # ...
</Location>

Quand utiliser la section <Location>

Vous pouvez utiliser une section <Location> pour appliquer des directives ´┐Ż des contenus situ´┐Żs en dehors du syst´┐Żme de fichiers. Pour les contenus situ´┐Żs ´┐Ż l'int´┐Żrieur du syst´┐Żme de fichiers, utilisez plut´┐Żt les sections <Directory> et <Files>. <Location /> constitue une exception et permet d'appliquer ais´┐Żment une configuration ´┐Ż l'ensemble du serveur.

Pour toutes les requ´┐Żtes originales (non mandat´┐Żes), l'argument URL est un chemin d'URL de la forme /chemin/. Aucun protocole, nom d'h´┐Żte, port, ou cha´┐Żne de requ´┐Żte ne doivent appara´┐Żtre. Pour les requ´┐Żtes mandat´┐Żes, l'URL sp´┐Żcifi´┐Że doit ´┐Żtre de la forme protocole://nom_serveur/chemin, et vous devez inclure le pr´┐Żfixe.

L'URL peut contenir des caract´┐Żres g´┐Żn´┐Żriques. Dans une cha´┐Żne avec caract´┐Żres g´┐Żn´┐Żriques, ? correspond ´┐Ż un caract´┐Żre quelconque, et * ´┐Ż toute cha´┐Żne de caract´┐Żres. Les caract´┐Żres g´┐Żn´┐Żriques ne peuvent pas remplacer un / dans le chemin URL.

On peut aussi utiliser les Expressions rationnelles, moyennant l'addition d'un caract´┐Żre ~. Par exemple :

<Location ~ "/(extra|special)/data">
    #...
</Location>

concernerait les URLs contenant les sous-cha´┐Żne /extra/data ou /special/data. La directive <LocationMatch> pr´┐Żsente un comportement identique ´┐Ż la version avec expressions rationnelles de la directive <Location>, et son utilisation est pr´┐Żf´┐Żrable ´┐Ż l'utilisation de cette derni´┐Żre pour la simple raison qu'il est difficile de distinguer ~ de - dans la plupart des fontes.

La directive <Location> s'utilise principalement avec la directive SetHandler. Par exemple, pour activer les requ´┐Żtes d'´┐Żtat, mais ne les autoriser que depuis des navigateurs appartenant au domaine example.com, vous pouvez utiliser :

<Location /status>
  SetHandler server-status
  Require host example.com
</Location>

Note ´┐Ż propos du slash (/)

La signification du caract´┐Żre slash d´┐Żpend de l'endroit o´┐Ż il se trouve dans l'URL. Les utilisateurs peuvent ´┐Żtre habitu´┐Żs ´┐Ż son comportement dans le syst´┐Żme de fichiers o´┐Ż plusieurs slashes successifs sont souvent r´┐Żduits ´┐Ż un slash unique (en d'autres termes, /home///foo est identique ´┐Ż /home/foo). Dans l'espace de nommage des URLs, ce n'est cependant pas toujours le cas. Pour la directive <LocationMatch> et la version avec expressions rationnelles de la directive <Location>, vous devez sp´┐Żcifier explicitement les slashes multiples si telle est votre intention.

Par exemple, <LocationMatch ^/abc> va correspondre ´┐Ż l'URL /abc mais pas ´┐Ż l'URL //abc. La directive <Location> sans expression rationnelle se comporte de la m´┐Żme mani´┐Żre lorsqu'elle est utilis´┐Że pour des requ´┐Żtes mandat´┐Żes. Par contre, lorsque la directive <Location> sans expression rationnelle est utilis´┐Że pour des requ´┐Żtes non mandat´┐Żes, elle fera correspondre implicitement les slashes multiples ´┐Ż des slashes uniques. Par exemple, si vous sp´┐Żcifiez <Location /abc/def>, une requ´┐Żte de la forme /abc//def correspondra.

Voir aussi

top

<LocationMatch> Directive

Description:N'applique les directives contenues qu'aux URLs correspondant ´┐Ż une expression rationnelle
Syntaxe:<LocationMatch regex> ... </LocationMatch>
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core

La directive <LocationMatch> limite la port´┐Że des directives contenues ´┐Ż l'URL sp´┐Żcifi´┐Że, de mani´┐Żre identique ´┐Ż la directive <Location>. Mais son argument permettant de sp´┐Żcifier les URLs concern´┐Żes est une expression rationnelle au lieu d'une simple cha´┐Żne de caract´┐Żres. Par exemple :

<LocationMatch "/(extra|special)/data">
    # ...
</LocationMatch>

correspondrait ´┐Ż toute URL contenant les sous-cha´┐Żnes /extra/data ou /special/data.

A partir de la version 2.4.8, les groupes nomm´┐Żs et les r´┐Żf´┐Żrences arri´┐Żres sont extraits et enregistr´┐Żs dans l'environnement avec leur nom en majuscules et pr´┐Żfix´┐Ż par "MATCH_". Ceci permet de r´┐Żf´┐Żrencer des URLs dans des expressions ou au sein de modules comme mod_rewrite. Pour ´┐Żviter toute confusion, les r´┐Żf´┐Żrences arri´┐Żres num´┐Żrot´┐Żes (non nomm´┐Żes) sont ignor´┐Żes. Vous devez utiliser ´┐Ż la place des groupes nomm´┐Żs.

<LocationMatch ^/combined/(?<sitename>[^/]+)>
    require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
</LocationMatch>

Voir aussi

top

LogLevel Directive

Description:Contr´┐Żle la verbosit´┐Ż du journal des erreurs
Syntaxe:LogLevel [module:]niveau [module:niveau] ...
D´┐Żfaut:LogLevel warn
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire
Statut:Core
Module:core
Compatibilit´┐Ż:La configuration du niveau de journalisation par module et par r´┐Żpertoire est disponible depuis la version 2.3.6 du serveur HTTP Apache

La directive LogLevel permet d'ajuster la verbosit´┐Ż des messages enregistr´┐Żs dans les journaux d'erreur (voir la directive ErrorLog directive). Les niveaux disponibles sont pr´┐Żsent´┐Żs ci-apr´┐Żs, par ordre de criticit´┐Ż d´┐Żcroissante :

Niveau Description Exemple
emerg Urgences - le syst´┐Żme est inutilisable. "Child cannot open lock file. Exiting"
alert Des mesures doivent ´┐Żtre prises imm´┐Żdiatement. "getpwuid: couldn't determine user name from uid"
crit Conditions critiques. "socket: Failed to get a socket, exiting child"
error Erreurs. "Premature end of script headers"
warn Avertissements. "child process 1234 did not exit, sending another SIGHUP"
notice Ev´┐Żnement important mais normal. "httpd: caught SIGBUS, attempting to dump core in ..."
info Informations. "Server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers)..."
debug Messages de d´┐Żbogage. "Opening config file ..."
trace1 Messages de traces "proxy: FTP: control connection complete"
trace2 Messages de traces "proxy: CONNECT: sending the CONNECT request to the remote proxy"
trace3 Messages de traces "openssl: Handshake: start"
trace4 Messages de traces "read from buffered SSL brigade, mode 0, 17 bytes"
trace5 Messages de traces "map lookup FAILED: map=rewritemap key=keyname"
trace6 Messages de traces "cache lookup FAILED, forcing new map lookup"
trace7 Messages de traces, enregistrement d'une grande quantit´┐Ż de donn´┐Żes "| 0000: 02 23 44 30 13 40 ac 34 df 3d bf 9a 19 49 39 15 |"
trace8 Messages de traces, enregistrement d'une grande quantit´┐Ż de donn´┐Żes "| 0000: 02 23 44 30 13 40 ac 34 df 3d bf 9a 19 49 39 15 |"

Lorsqu'un niveau particulier est sp´┐Żcifi´┐Ż, les messages de tous les autres niveaux de criticit´┐Ż sup´┐Żrieure seront aussi enregistr´┐Żs. Par exemple, si LogLevel info est sp´┐Żcifi´┐Ż, les messages de niveaux notice et warn seront aussi ´┐Żmis.

Il est recommand´┐Ż d'utiliser un niveau crit ou inf´┐Żrieur.

Par exemple :

LogLevel notice

Note

Si la journalisation s'effectue directement dans un fichier, les messages de niveau notice ne peuvent pas ´┐Żtre supprim´┐Żs et sont donc toujours journalis´┐Żs. Cependant, ceci ne s'applique pas lorsque la journalisation s'effectue vers syslog.

Sp´┐Żcifier un niveau sans nom de module va attribuer ce niveau ´┐Ż tous les modules. Sp´┐Żcifier un niveau avec nom de module va attribuer ce niveau ´┐Ż ce module seulement. Il est possible de sp´┐Żcifier un module par le nom de son fichier source ou par son identificateur, avec ou sans le suffixe _module. Les trois sp´┐Żcifications suivantes sont donc ´┐Żquivalentes :

LogLevel info ssl:warn
LogLevel info mod_ssl.c:warn
LogLevel info ssl_module:warn

Il est aussi possible d'attribuer un niveau de journalisation par r´┐Żpertoire :

LogLevel info
<Directory "/usr/local/apache/htdocs/app">
  LogLevel debug
</Directory>
La configuration du niveau de journalisation par r´┐Żpertoire n'affecte que les messages journalis´┐Żs apr´┐Żs l'interpr´┐Żtation de la requ´┐Żte et qui sont associ´┐Żs ´┐Ż cette derni´┐Żre. Les messages de journalisation associ´┐Żs ´┐Ż la connexion ou au serveur ne sont pas affect´┐Żs.

Voir aussi

top

MaxKeepAliveRequests Directive

Description:Nombre de requ´┐Żtes permises pour une connexion persistante
Syntaxe:MaxKeepAliveRequests nombre
D´┐Żfaut:MaxKeepAliveRequests 100
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core

La directive MaxKeepAliveRequests permet de limiter le nombre de requ´┐Żtes autoris´┐Żes par connexion lorsque KeepAlive est ´┐Ż "on". Si sa valeur est 0, le nombre de requ´┐Żtes autoris´┐Żes est illimit´┐Ż. Il est recommand´┐Ż de d´┐Żfinir une valeur assez haute pour des performances du serveur maximales.

Par exemple :

MaxKeepAliveRequests 500
top

MaxRangeOverlaps Directive

Description:Nombre de chevauchements de segments de donn´┐Żes autoris´┐Ż (par exemple 100-200,150-300) avant le renvoi de la ressource compl´┐Żte
Syntaxe:MaxRangeOverlaps default | unlimited | none | nombre de chevauchements
D´┐Żfaut:MaxRangeOverlaps 20
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire
Statut:Core
Module:core
Compatibilit´┐Ż:Disponible depuis la version 2.3.15 du serveur HTTP Apache

La directive MaxRangeOverlaps permet de limiter le nombre de chevauchements de segments de donn´┐Żes HTTP autoris´┐Ż par le serveur. Si le nombre de chevauchements de segments demand´┐Ż est sup´┐Żrieur au nombre maximal autoris´┐Ż, la ressource sera renvoy´┐Że dans son int´┐Żgralit´┐Ż.

default
Limite le nombre de chevauchements de segments ´┐Ż la valeur par d´┐Żfaut 20 d´┐Żfinie ´┐Ż la compilation.
none
Aucun chevauchement de segment n'est autoris´┐Ż.
unlimited
Le nombre de chevauchements de segments est illimit´┐Ż.
number-of-ranges
Un nombre positif repr´┐Żsente le nombre maximal de chevauchements de segments autoris´┐Ż par le serveur.
top

MaxRangeReversals Directive

Description:Nombre d'inversions d'ordre autoris´┐Ż dans la sp´┐Żcification des segments de donn´┐Żes (par exemple 100-200,50-70) avant le renvoi de la ressource compl´┐Żte
Syntaxe:MaxRangeReversals default | unlimited | none | nombre d'inversions
D´┐Żfaut:MaxRangeReversals 20
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire
Statut:Core
Module:core
Compatibilit´┐Ż:Disponible depuis la version 2.3.15 du serveur HTTP Apache

La directive MaxRangeReversals permet de limiter le nombre d'inversions d'ordre dans la sp´┐Żcification des segments de donn´┐Żes HTTP autoris´┐Ż par le serveur. Si le nombre d'inversions demand´┐Ż est sup´┐Żrieur au nombre maximal autoris´┐Ż, la ressource sera renvoy´┐Że dans son int´┐Żgralit´┐Ż.

default
Limite le nombre d'inversions ´┐Ż la valeur par d´┐Żfaut 20 d´┐Żfinie ´┐Ż la compilation.
none
Aucune inversion n'est autoris´┐Że.
unlimited
Le nombre d'inversions est illimit´┐Ż.
number-of-ranges
Un nombre positif repr´┐Żsente le nombre maximal d'inversions autoris´┐Ż par le serveur.
top

MaxRanges Directive

Description:Nombre de segments de donn´┐Żes autoris´┐Ż avant le renvoi de l'int´┐Żgralit´┐Ż de la ressource
Syntaxe:MaxRanges default | unlimited | none | nombre de segments
D´┐Żfaut:MaxRanges 200
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire
Statut:Core
Module:core
Compatibilit´┐Ż:Disponible depuis la version 2.3.15 du serveur HTTP Apache

La directive MaxRanges permet de limiter le nombre de segments de donn´┐Żes que le serveur va renvoyer au client. Si un nombre de segments plus important est demand´┐Ż, la ressource sera renvoy´┐Że dans son int´┐Żgralit´┐Ż.

default
Limite le nombre de segments de donn´┐Żes ´┐Ż 200 (valeur par d´┐Żfaut d´┐Żfinie ´┐Ż la compilation).
none
Les en-t´┐Żtes Range sont ignor´┐Żs.
unlimited
Le nombre de segments de donn´┐Żes est illimit´┐Ż.
nombre de segments
Un nombre positif repr´┐Żsentera la nombre de segments de donn´┐Żes maximal que le serveur renverra au client.
top

MergeTrailers Directive

Description:D´┐Żtermine si les donn´┐Żes suppl´┐Żmentaires (trailers) sont fusionn´┐Żes avec les en-t´┐Żtes
Syntaxe:MergeTrailers [on|off]
D´┐Żfaut:MergeTrailers off
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core
Compatibilit´┐Ż:Disponible ´┐Ż partir de la version 2.4.10 du serveur HTTP Apache

Cette directive permet de contr´┐Żler la fusion des donn´┐Żes HTTP suppl´┐Żmentaires (trailers) avec la repr´┐Żsentation interne des en-t´┐Żtes. Cette fusion intervient lorsque le corps de la requ´┐Żte a ´┐Żt´┐Ż enti´┐Żrement re´┐Żu, bien longtemps apr´┐Żs que la majeure partie du traitement des en-t´┐Żtes ait une chance de pouvoir examiner ou modifier les en-t´┐Żtes de la requ´┐Żte.

Cette option a ´┐Żt´┐Ż introduite dans un souci de compatibilit´┐Ż avec les versions ant´┐Żrieures ´┐Ż 2.4.10, o´┐Ż les donn´┐Żes suppl´┐Żmentaires ´┐Żtaient syst´┐Żmatiquement fusionn´┐Żes avec les en-t´┐Żtes de la requ´┐Żte.

top

Mutex Directive

Description:D´┐Żfinit les m´┐Żcanismes de mutex et le repertoire du fichier verrou pour tous les mutex ou seulement les mutex sp´┐Żcifi´┐Żs
Syntaxe:Mutex m´┐Żcanisme [default|nom-mutex] ... [OmitPID]
D´┐Żfaut:Mutex default
Contexte:configuration du serveur
Statut:Core
Module:core
Compatibilit´┐Ż:Disponible depuis la version 2.3.4 du serveur HTTP Apache

La directive Mutex permet de d´┐Żfinir le m´┐Żcanisme de mutex, et ´┐Żventuellement le r´┐Żpertoire du fichier verrou que les modules et httpd utilisent pour s´┐Żrialiser l'acc´┐Żs aux ressources. Sp´┐Żcifiez default comme premier argument pour modifier la configuration de tous les mutex ; sp´┐Żcifiez un nom de mutex (voir la table ci-dessous) comme premier argument pour ne modifier que la configuration de ce mutex.

La directive Mutex est typiquement utilis´┐Że dans les situations exceptionnelles suivantes :

Modules support´┐Żs

Cette directive ne configure que les mutex qui ont ´┐Żt´┐Ż enregistr´┐Żs avec le serveur de base via l'API ap_mutex_register(). Tous les modules fournis avec httpd supportent la directive Mutex, mais il n'en sera pas forc´┐Żment de m´┐Żme pour les modules tiers. Reportez-vous ´┐Ż la documentation du module tiers consid´┐Żr´┐Ż afin de d´┐Żterminer le(s) nom(s) de mutex qui pourront ´┐Żtre d´┐Żfinis si la directive est support´┐Że.

Les m´┐Żcanismes de mutex disponibles sont les suivants :

La plupart des m´┐Żcanismes ne sont disponibles que sur les plate-formes o´┐Ż ces derni´┐Żres et APR les supportent. Les m´┐Żcanismes qui ne sont pas disponibles sur toutes les plate-formes sont posixsem, sysvsem, sem, pthread, fcntl, flock, et file.

Avec les m´┐Żcanismes ´┐Ż base de fichier fcntl et flock, le chemin, s'il est fourni, est un r´┐Żpertoire dans lequel le fichier verrou sera cr´┐Ż´┐Ż. Le r´┐Żpertoire par d´┐Żfaut est le r´┐Żpertoire d'ex´┐Żcution de httpd relatif ´┐Ż la directive ServerRoot. Utilisez toujours un syst´┐Żme de fichiers local sur disque pour /chemin/vers/mutex et jamais un r´┐Żpertoire se trouvant dans un syst´┐Żme de fichiers NFS ou AFS. Le nom de base du fichier se composera du type de mutex, d'une cha´┐Żne optionnelle correspondant ´┐Ż l'instance et fournie par le module ; et, sauf si le mot-cl´┐Ż OmitPID a ´┐Żt´┐Ż sp´┐Żcifi´┐Ż, l'identificateur du processus parent httpd sera ajout´┐Ż afin de rendre le nom du fichier unique, ´┐Żvitant ainsi tout conflit lorsque plusieurs instances d'httpd partagent le m´┐Żme r´┐Żpertoire de verrouillage. Par exemple, si le nom de mutex est mpm-accept, et si le r´┐Żpertoire de verrouillage est /var/httpd/locks, le nom du fichier verrou pour l'instance httpd dont le processus parent a pour identifiant 12345 sera /var/httpd/locks/mpm-accept.12345.

S´┐Żcurit´┐Ż

Il est conseill´┐Ż d'´┐Żviter de placer les fichiers mutex dans un r´┐Żpertoire o´┐Ż tout le monde peut ´┐Żcrire comme /var/tmp, car quelqu'un pourrait initier une attaque par d´┐Żni de service et emp´┐Żcher le serveur de d´┐Żmarrer en cr´┐Żant un fichier verrou poss´┐Żdant un nom identique ´┐Ż celui que le serveur va tenter de cr´┐Żer.

La table suivante d´┐Żcrit les noms de mutex utilis´┐Żs par httpd et ses modules associ´┐Żs.

Nom mutex Module(s) Ressource prot´┐Żg´┐Że
mpm-accept modules MPM prefork et worker connexions entrantes, afin d'´┐Żviter le probl´┐Żme de l'afflux de requ´┐Żtes ; pour plus d'informations, voir la documentation Am´┐Żlioration des performances
authdigest-client mod_auth_digest liste de clients en m´┐Żmoire partag´┐Że
authdigest-opaque mod_auth_digest compteur en m´┐Żmoire partag´┐Że
ldap-cache mod_ldap cache de r´┐Żsultat de recherche LDAP
rewrite-map mod_rewrite communication avec des programmes externes d'associations de valeurs, afin d'´┐Żviter les interf´┐Żrences d'entr´┐Żes/sorties entre plusieurs requ´┐Żtes
ssl-cache mod_ssl cache de session SSL
ssl-stapling mod_ssl cache de l'´┐Żtiquetage OCSP ("OCSP stapling")
watchdog-callback mod_watchdog fonction de rappel d'un module client particulier

Le mot-cl´┐Ż OmitPID permet d'emp´┐Żcher l'addition de l'identifiant du processus httpd parent au nom du fichier verrou.

Dans l'exemple suivant, le m´┐Żcanisme de mutex pour le mutex mpm-accept est modifi´┐Ż pour passer du m´┐Żcanisme par d´┐Żfaut au m´┐Żcanisme fcntl, avec le fichier verrou associ´┐Ż cr´┐Ż´┐Ż dans le r´┐Żpertoire /var/httpd/locks. Le m´┐Żcanisme de mutex par d´┐Żfaut pour tous les autres mutex deviendra sysvsem.

Mutex sysvsem default
Mutex fcntl:/var/httpd/locks mpm-accept
top

NameVirtualHost Directive

Description:OBSOLETE : D´┐Żfinit une adresse IP pour les serveurs virtuels ´┐Ż base de nom
Syntaxe:NameVirtualHost adresse[:port]
Contexte:configuration du serveur
Statut:Core
Module:core

Avant la version 2.3.11, il ´┐Żtait n´┐Żcessaire de d´┐Żfinir une directive NameVirtualHost pour indiquer au serveur qu'une paire adresse IP/port particuli´┐Żre pouvait ´┐Żtre utilis´┐Że comme serveur virtuel ´┐Ż base de nom. Depuis la version 2.3.11, chaque fois qu'une paire adresse IP/port est utilis´┐Że dans plusieurs serveurs virtuels, l'h´┐Żbergement virtuel ´┐Ż base de nom est automatiquement activ´┐Ż pour cette adresse.

Cette directive n'a actuellement plus aucun effet.

Voir aussi

top

Options Directive

Description:D´┐Żfinit les fonctionnalit´┐Żs disponibles pour un r´┐Żpertoire particulier
Syntaxe:Options [+|-]option [[+|-]option] ...
D´┐Żfaut:Options FollowSymlinks
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
AllowOverride:Options
Statut:Core
Module:core
Compatibilit´┐Ż:Avec la version 2.3.11, la valeur par d´┐Żfaut passe de All ´┐Ż FollowSymlinks

La directive Options permet de d´┐Żfinir les fonctionnalit´┐Żs de serveur disponibles pour un r´┐Żpertoire particulier.

option peut ´┐Żtre d´┐Żfini ´┐Ż None, auquel cas aucune fonctionnalit´┐Ż sp´┐Żcifique n'est activ´┐Że, ou comprendre une ou plusieurs des options suivantes :

All
Toutes les options except´┐Ż MultiViews.
ExecCGI
L'ex´┐Żcution de scripts CGI ´┐Ż l'aide du module mod_cgi est permise.
FollowSymLinks
Le serveur va suivre les liens symboliques dans le r´┐Żpertoire concern´┐Ż. Il s'agit de la valeur par d´┐Żfaut.

Bien que le serveur suive les liens symboliques, il ne modifie pas le nom de chemin concern´┐Ż d´┐Żfini par la section <Directory>.

Les options FollowSymLinks et SymLinksIfOwnerMatch ne fonctionnent que dans les sections <Directory> ou les fichiers .htaccess.

Le fait d'omettre cette option ne doit pas ´┐Żtre consid´┐Żr´┐Ż comme une mesure de s´┐Żcurit´┐Ż efficace, car il existe toujours une situation de comp´┐Żtition (race condition) entre l'instant o´┐Ż l'on v´┐Żrifie qu'un chemin n'est pas un lien symbolique, et l'instant o´┐Ż l'on utilise effectivement ce chemin.

Includes
Les inclusions c´┐Żt´┐Ż serveur (SSI) ´┐Ż l'aide du module mod_include sont autoris´┐Żes.
IncludesNOEXEC
Les inclusions c´┐Żt´┐Ż serveur (SSI) sont permises, mais #exec cmd et #exec cgi sont d´┐Żsactiv´┐Żs. L'utilisation de #include virtual pour les scripts CGI est cependant toujours possible depuis des r´┐Żpertoires d´┐Żfinis par ScriptAlias.
Indexes
Si une URL requise correspond au r´┐Żpertoire concern´┐Ż, et si aucun DirectoryIndex (par exemple index.html) n'est d´┐Żfini pour ce r´┐Żpertoire, le module mod_autoindex va renvoyer un listing format´┐Ż du r´┐Żpertoire.
MultiViews
Les vues multiples ("multiviews") ´┐Ż contenu n´┐Żgoci´┐Ż ´┐Ż l'aide du module mod_negotiation sont autoris´┐Żes.

Note

Cette option est ignor´┐Że si elle est d´┐Żfinie en tout autre endroit qu'une section <Directory>, car mod_negotiation a besoin de ressources r´┐Żelles pour effectuer ses comparaisons et ses ´┐Żvaluations.

SymLinksIfOwnerMatch
Le serveur ne suivra que les liens symboliques qui renvoient vers un fichier ou un r´┐Żpertoire dont le propri´┐Żtaire est le m´┐Żme que celui du lien.

Note

Les options FollowSymLinks et SymLinksIfOwnerMatch ne fonctionnent que dans les sections <Directory> ou les fichiers .htaccess.

Le fait d'omettre cette option ne doit pas ´┐Żtre consid´┐Żr´┐Ż comme une mesure de s´┐Żcurit´┐Ż efficace, car il existe toujours une situation de comp´┐Żtition (race condition) entre l'instant o´┐Ż l'on v´┐Żrifie qu'un chemin n'est pas un lien symbolique, et l'instant o´┐Ż l'on utilise effectivement ce chemin.

Normalement, si plusieurs directives Options peuvent s'appliquer ´┐Ż un r´┐Żpertoire, c'est la plus sp´┐Żcifique qui est utilis´┐Że et les autres sont ignor´┐Żes ; les options ne sont pas fusionn´┐Żes (voir comment les sections sont fusionn´┐Żes). Elles le sont cependant si toutes les options de la directive Options sont pr´┐Żc´┐Żd´┐Żes d'un symbole + ou -. Toute option pr´┐Żc´┐Żd´┐Że d'un + est ajout´┐Że ´┐Ż la liste des options courantes de mani´┐Żre forc´┐Że et toute option pr´┐Żc´┐Żd´┐Że d'un - est supprim´┐Że de la liste des options courantes de la m´┐Żme mani´┐Żre.

Note

M´┐Żlanger des Options avec + ou - avec des Options sans + ou - constitue une erreur de syntaxe, et la v´┐Żrification de la syntaxe au cours du d´┐Żmarrage du serveur fera ´┐Żchouer ce dernier.

Par exemple, sans aucun symbole + et - :

<Directory "/web/docs">
  Options Indexes FollowSymLinks
</Directory>

<Directory "/web/docs/spec">
  Options Includes
</Directory>

ici, seule l'option Includes sera prise en compte pour le r´┐Żpertoire /web/docs/spec. Par contre, si la seconde directive Options utilise les symboles + et - :

<Directory "/web/docs">
  Options Indexes FollowSymLinks
</Directory>

<Directory "/web/docs/spec">
  Options +Includes -Indexes
</Directory>

alors, les options FollowSymLinks et Includes seront prises en compte pour le r´┐Żpertoire /web/docs/spec.

Note

L'utilisation de -IncludesNOEXEC ou -Includes d´┐Żsactive compl´┐Żtement les inclusions c´┐Żt´┐Ż serveur sans tenir compte des d´┐Żfinitions pr´┐Żc´┐Żdentes.

En l'absence de toute d´┐Żfinition d'options, la valeur par d´┐Żfaut est FollowSymlinks.

top

Protocol Directive

Description:Protocole pour une socket d'´┐Żcoute
Syntaxe:Protocol protocole
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core
Compatibilit´┐Ż:Disponible depuis la version 2.1.5 d'Apache, mais seulement depuis la version 2.3.3 sous Windows.

Cette directive permet de sp´┐Żcifier le protocole utilis´┐Ż pour une socket d'´┐Żcoute particuli´┐Żre. Le protocole sert ´┐Ż d´┐Żterminer quel module doit traiter une requ´┐Żte, et d'appliquer les optimisations sp´┐Żcifiques au protocole via la directive AcceptFilter.

Vous ne devez d´┐Żfinir le protocole que si vous travaillez avec des ports non standards ; dans le cas g´┐Żn´┐Żral, le protocole http est associ´┐Ż au port 80 et le protocole https au port 443.

Par exemple, si vous travaillez avec le protocole https sur un port non standard, sp´┐Żcifiez le protocole de mani´┐Żre explicite :

Protocol https

Vous pouvez aussi sp´┐Żcifier le protocole via la directive Listen.

Voir aussi

top

RLimitCPU Directive

Description:Limite le temps CPU allou´┐Ż aux processus initi´┐Żs par les processus enfants d'Apache httpd
Syntaxe:RLimitCPU secondes|max [secondes|max]
D´┐Żfaut:Non d´┐Żfini ; utilise les valeurs par d´┐Żfaut du syst´┐Żme d'exploitation
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
AllowOverride:All
Statut:Core
Module:core

Prend 1 ou 2 param´┐Żtres. Le premier definit la limite de consommation de ressources pour tous les processus, et le second la consommation de ressources maximale. Les deux param´┐Żtres peuvent contenir soit un nombre, soit max pour indiquer au serveur que la limite de consommation correspond ´┐Ż la valeur maximale autoris´┐Że par la configuration du syst´┐Żme d'exploitation. Pour augmenter la consommation maximale de ressources, le serveur doit s'ex´┐Żcuter en tant que root, ou se trouver dans sa phase de d´┐Żmarrage.

Cette directive s'applique aux processus initi´┐Żs par les processus enfants d'Apache httpd qui traitent les requ´┐Żtes, et non aux processus enfants eux-m´┐Żmes. Sont concern´┐Żs les scripts CGI et les commandes exec des SSI, mais en aucun cas les processus initi´┐Żs par le processus parent d'Apache httpd comme les journalisations redirig´┐Żes vers un programme.

Les limites de ressources CPU sont exprim´┐Żes en secondes par processus.

Voir aussi

top

RLimitMEM Directive

Description:Limite la m´┐Żmoire allou´┐Że aux processus initi´┐Żs par les processus enfants d'Apache httpd
Syntaxe:RLimitMEM octets|max [octets|max]
D´┐Żfaut:Non d´┐Żfini ; utilise les valeurs par d´┐Żfaut du syst´┐Żme d'exploitation
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
AllowOverride:All
Statut:Core
Module:core

Prend 1 ou 2 param´┐Żtres. Le premier definit la limite de consommation de ressources pour tous les processus, et le second la consommation de ressources maximale. Les deux param´┐Żtres peuvent contenir soit un nombre, soit max pour indiquer au serveur que la limite de consommation correspond ´┐Ż la valeur maximale autoris´┐Że par la configuration du syst´┐Żme d'exploitation. Pour augmenter la consommation maximale de ressources, le serveur doit s'ex´┐Żcuter en tant que root, ou se trouver dans sa phase de d´┐Żmarrage.

Cette directive s'applique aux processus initi´┐Żs par les processus enfants d'Apache httpd qui traitent les requ´┐Żtes, et non aux processus enfants eux-m´┐Żmes. Sont concern´┐Żs les scripts CGI et les commandes exec des SSI, mais en aucun cas les processus initi´┐Żs par le processus parent d'Apache httpd comme les journalisations redirig´┐Żes vers un programme.

Les limites de ressources m´┐Żmoire sont exprim´┐Żes en octets par processus.

Voir aussi

top

RLimitNPROC Directive

Description:Limite le nombre de processus qui peuvent ´┐Żtre initi´┐Żs par les processus initi´┐Żs par les processus enfants d'Apache httpd
Syntaxe:RLimitNPROC nombre|max [nombre|max]
D´┐Żfaut:Unset; uses operating system defaults
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
AllowOverride:All
Statut:Core
Module:core

Prend 1 ou 2 param´┐Żtres. Le premier definit la limite de consommation de ressources pour tous les processus, et le second la consommation de ressources maximale. Les deux param´┐Żtres peuvent contenir soit un nombre, soit max pour indiquer au serveur que la limite de consommation correspond ´┐Ż la valeur maximale autoris´┐Że par la configuration du syst´┐Żme d'exploitation. Pour augmenter la consommation maximale de ressources, le serveur doit s'ex´┐Żcuter en tant que root, ou se trouver dans sa phase de d´┐Żmarrage.

Cette directive s'applique aux processus initi´┐Żs par les processus enfants d'Apache httpd qui traitent les requ´┐Żtes, et non aux processus enfants eux-m´┐Żmes. Sont concern´┐Żs les scripts CGI et les commandes exec des SSI, mais en aucun cas les processus initi´┐Żs par le processus parent d'Apache httpd comme les journalisations redirig´┐Żes vers un programme.

Les limites des processus contr´┐Żlent le nombre de processus par utilisateur.

Note

Si les processus CGI s'ex´┐Żcutent sous le m´┐Żme utilisateur que celui du serveur web, cette directive va limiter le nombre de processus que le serveur pourra lui-m´┐Żme cr´┐Żer. La pr´┐Żsence de messages cannot fork dans le journal des erreurs indiquera que la limite est atteinte.

Voir aussi

top

ScriptInterpreterSource Directive

Description:Permet de localiser l'interpr´┐Żteur des scripts CGI
Syntaxe:ScriptInterpreterSource Registry|Registry-Strict|Script
D´┐Żfaut:ScriptInterpreterSource Script
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
AllowOverride:FileInfo
Statut:Core
Module:core
Compatibilit´┐Ż:Win32 seulement.

Cette directive permet de contr´┐Żler la m´┐Żthode qu'utilise Apache httpd pour trouver l'interpr´┐Żteur destin´┐Ż ´┐Ż ex´┐Żcuter les scripts CGI. La d´┐Żfinition par d´┐Żfaut est Script : ceci indique ´┐Ż Apache httpd qu'il doit utiliser l'interpr´┐Żteur pr´┐Żcis´┐Ż dans la ligne shebang du script (la premi´┐Żre ligne, commen´┐Żant par #!). Sur les syst´┐Żmes Win32, cette ligne ressemble souvent ´┐Ż ceci :

#!C:/Perl/bin/perl.exe

ou simplement, dans le cas o´┐Ż perl est dans le PATH :

#!perl

Avec ScriptInterpreterSource Registry, Windows va effectuer une recherche dans l'arborescence HKEY_CLASSES_ROOT de la base de registre avec comme mot-cl´┐Ż l'extension du fichier contenant le script (par exemple .pl). C'est la commande d´┐Żfinie par la sous-cl´┐Ż de registre Shell\ExecCGI\Command ou, si elle n'existe pas, la sous-cl´┐Ż Shell\Open\Command qui est utilis´┐Że pour ouvrir le fichier du script. Si ces cl´┐Żs de registre ne sont pas trouv´┐Żes, Apache httpd utilise la m´┐Żthode de l'option Script.

S´┐Żcurit´┐Ż

Soyez prudent si vous utilisez ScriptInterpreterSource Registry avec des r´┐Żpertoires faisant l'objet d'un ScriptAlias, car Apache httpd va essayer d'ex´┐Żcuter tous les fichiers contenus dans celui-ci. L'option Registry peut causer des appels de programmes non voulus sur des fichiers non destin´┐Żs ´┐Ż ´┐Żtre ex´┐Żcut´┐Żs. Par exemple, la commande par d´┐Żfaut open sur les fichiers .htm sur la plupart des syst´┐Żmes Windows va lancer Microsoft Internet Explorer ; ainsi, toute requ´┐Żte HTTP pour un fichier .htm situ´┐Ż dans le r´┐Żpertoire des scripts va lancer le navigateur en arri´┐Żre-plan sur le serveur, ce qui a toutes les chances de crasher votre syst´┐Żme dans les minutes qui suivent.

L'option Registry-Strict, apparue avec la version 2.0 du serveur HTTP Apache, agit de mani´┐Żre identique ´┐Ż Registry, mais n'utilise que la sous-cl´┐Ż Shell\ExecCGI\Command. La pr´┐Żsence de la cl´┐Ż ExecCGI n'´┐Żtant pas syst´┐Żmatique, Elle doit ´┐Żtre d´┐Żfinie manuellement dans le registre Windows et ´┐Żvite ainsi tout appel de programme accidentel sur votre syst´┐Żme.

top

SeeRequestTail Directive

Description:D´┐Żtermine si mod_status affiche les 63 premiers caract´┐Żres d'une requ´┐Żte ou les 63 derniers, en supposant que la requ´┐Żte elle-m´┐Żme poss´┐Żde plus de 63 caract´┐Żres.
Syntaxe:SeeRequestTail On|Off
D´┐Żfaut:SeeRequestTail Off
Contexte:configuration du serveur
Statut:Core
Module:core
Compatibilit´┐Ż:Disponible depuis la version 2.2.7 d'Apache httpd.

Avec ExtendedStatus On, mod_status affiche la v´┐Żritable requ´┐Żte en cours de traitement. Pour des raisons historiques, seuls 63 caract´┐Żres de la requ´┐Żte sont r´┐Żellement stock´┐Żs ´┐Ż des fins d'affichage. Cette directive permet de d´┐Żterminer si ce sont les 63 premiers caract´┐Żres qui seront stock´┐Żs (c'est le comportement par d´┐Żfaut), ou si ce sont les 63 derniers. Ceci ne s'applique bien entendu que si la taille de la requ´┐Żte est de 64 caract´┐Żres ou plus.

Si Apache httpd traite la requ´┐Żte GET /disque1/stockage/apache/htdocs/images/rep-images1/nourriture/pommes.jpg HTTP/1.1 , l'affichage de la requ´┐Żte par mod_status se pr´┐Żsentera comme suit :

Off (d´┐Żfaut) GET /disque1/stockage/apache/htdocs/images/rep-images1/nourritu
On apache/htdocs/images/rep-images1/nourriture/pommes.jpg HTTP/1.1
top

ServerAdmin Directive

Description:L'adresse ´┐Żlectronique que le serveur inclut dans les messages d'erreur envoy´┐Żs au client
Syntaxe:ServerAdmin adresse ´┐Żlectronique|URL
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core

La directive ServerAdmin permet de d´┐Żfinir l'adresse de contact que le serveur va inclure dans tout message d'erreur qu'il envoie au client. Si le programme httpd ne reconnait pas l'argument fourni comme une URL, il suppose que c'est une adresse ´┐Żlectronique, et lui ajoute le pr´┐Żfixe mailto: dans les cibles des hyperliens. Il est cependant recommand´┐Ż d'utiliser exclusivement une adresse ´┐Żlectronique, car de nombreux scripts CGI consid´┐Żrent ceci comme implicite. Si vous utilisez une URL, elle doit pointer vers un autre serveur que vous contr´┐Żlez. Dans le cas contraire, les utilisateurs seraient dans l'impossibilit´┐Ż de vous contacter en cas de probl´┐Żme.

Il peut s'av´┐Żrer utile de d´┐Żfinir une adresse d´┐Żdi´┐Że ´┐Ż l'administration du serveur, par exemple :

ServerAdmin [email protected]

car les utilisateurs ne mentionnent pas syst´┐Żmatiquement le serveur dont ils parlent !

top

ServerAlias Directive

Description:Autres noms d'un serveur utilisables pour atteindre des serveurs virtuels ´┐Ż base de nom
Syntaxe:ServerAlias nom serveur [nom serveur] ...
Contexte:serveur virtuel
Statut:Core
Module:core

La directive ServerAlias permet de d´┐Żfinir les noms alternatifs d'un serveur utilisables pour atteindre des serveurs virtuels ´┐Ż base de nom. La directive ServerAlias peut contenir des caract´┐Żres g´┐Żn´┐Żriques, si n´┐Żcessaire.

<VirtualHost *:80>
  ServerName server.example.com
  ServerAlias server server2.example.com server2
  ServerAlias *.example.com
  UseCanonicalName Off
  # ...
</VirtualHost>

La recherche du serveur virtuel ´┐Ż base de nom correspondant au plus pr´┐Żs ´┐Ż la requ´┐Żte s'effectue selon l'ordre d'apparition des directives <virtualhost> dans le fichier de configuration. Le premier serveur virtuel dont le ServerName ou le ServerAlias correspond est choisi, sans priorit´┐Ż particuli´┐Żre si le nom contient des caract´┐Żres g´┐Żn´┐Żriques (que ce soit pour ServerName ou ServerAlias).

Tous les noms sp´┐Żcifi´┐Żs au sein d'une section VirtualHost sont trait´┐Żs comme un ServerAlias (sans caract´┐Żres g´┐Żn´┐Żriques).

Voir aussi

top

ServerName Directive

Description:Nom d'h´┐Żte et port que le serveur utilise pour s'authentifier lui-m´┐Żme
Syntaxe:ServerName [protocole://]nom de domaine enti´┐Żrement qualifi´┐Ż[:port]
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core

La directive ServerName permet de d´┐Żfinir les protocole, nom d'h´┐Żte et port d'une requ´┐Żte que le serveur utilise pour s'authentifier lui-m´┐Żme. Ceci est utile lors de la cr´┐Żation de redirections d'URLs.

La directive ServerName permet aussi (´┐Żventuellement en conjonction avec la directive ServerAlias) d'identifier de mani´┐Żre unique un serveur virtuel, lorsqu'elle est utilis´┐Że dans un contexte de serveurs virtuels ´┐Ż base de noms.

Par exemple, si le nom de la machine h´┐Żbergeant le serveur web est simple.example.com, la machine poss´┐Żde l'alias DNS www.example.com, et si vous voulez que le serveur web s'identifie avec cet alias, vous devez utilisez la d´┐Żfinition suivante :

ServerName www.example.com

La directive ServerName peut appara´┐Żtre ´┐Ż toutes les ´┐Żtapes de la d´┐Żfinition du serveur. Toute occurrence annule cependant la pr´┐Żc´┐Żdente (pour ce serveur).

Si la directive ServerName n'est pas d´┐Żfinie, le serveur tente de d´┐Żterminer le nom d'h´┐Żte en effectuant une recherche DNS inverse sur son adresse IP. Si la directive ServerName ne pr´┐Żcise pas de port, le serveur utilisera celui de la requ´┐Żte entrante. Il est recommand´┐Ż de sp´┐Żcifier un nom d'h´┐Żte et un port sp´┐Żcifiques ´┐Ż l'aide de la directive ServerName pour une fiabilit´┐Ż optimale et ´┐Ż titre pr´┐Żventif.

Si vous d´┐Żfinissez des serveurs virtuels ´┐Ż base de nom, une directive ServerName situ´┐Że ´┐Ż l'int´┐Żrieur d'une section <VirtualHost> sp´┐Żcifiera quel nom d'h´┐Żte doit appara´┐Żtre dans l'en-t´┐Żte de requ´┐Żte Host: pour pouvoir atteindre ce serveur virtuel.

Parfois, le serveur s'ex´┐Żcute en amont d'un dispositif qui impl´┐Żmente SSL, comme un mandataire inverse, un r´┐Żpartiteur de charge ou un bo´┐Żtier d´┐Żdi´┐Ż SSL. Dans ce cas, sp´┐Żcifiez le protocole https:// et le port auquel les clients se connectent dans la directive ServerName, afin de s'assurer que le serveur g´┐Żn´┐Żre correctement ses URLs d'auto-identification.

Voir la description des directives UseCanonicalName et UseCanonicalPhysicalPort pour les d´┐Żfinitions qui permettent de d´┐Żterminer si les URLs auto-identifiantes (par exemple via le module mod_dir) vont faire r´┐Żf´┐Żrence au port sp´┐Żcifi´┐Ż, ou au port indiqu´┐Ż dans la requ´┐Żte du client.

Si la valeur de la directive ServerName ne peut pas ´┐Żtre r´┐Żsolue en adresse IP, le d´┐Żmarrage du serveur provoquera un avertissement. httpd va alors utiliser le r´┐Żsultat de la commande syst´┐Żme hostname pour d´┐Żterminer le nom du serveur, ce qui ne correspondra pratiquement jamais au nom de serveur que vous souhaitez r´┐Żellement.

httpd: Could not reliably determine the server's fully qualified domain name, using rocinante.local for ServerName

Voir aussi

top

ServerPath Directive

Description:Nom de chemin d'URL h´┐Żrit´┐Ż pour un serveur virtuel ´┐Ż base de nom acc´┐Żd´┐Ż par un navigateur incompatible
Syntaxe:ServerPath chemin d'URL
Contexte:serveur virtuel
Statut:Core
Module:core

La directive ServerPath permet de d´┐Żfinir le nom de chemin d'URL h´┐Żrit´┐Ż d'un h´┐Żte, ´┐Ż utiliser avec les serveurs virtuels ´┐Ż base de nom.

Voir aussi

top

ServerRoot Directive

Description:Racine du r´┐Żpertoire d'installation du serveur
Syntaxe:ServerRoot chemin de r´┐Żpertoire
D´┐Żfaut:ServerRoot /usr/local/apache
Contexte:configuration du serveur
Statut:Core
Module:core

La directive ServerRoot permet de d´┐Żfinir le r´┐Żpertoire dans lequel le serveur est install´┐Ż. En particulier, il contiendra les sous-r´┐Żpertoires conf/ et logs/. Les chemins relatifs indiqu´┐Żs dans les autres directives (comme Include ou LoadModule) seront d´┐Żfinis par rapport ´┐Ż ce r´┐Żpertoire.

ServerRoot "/home/httpd"

La valeur par d´┐Żfaut de ServerRoot peut ´┐Żtre modifi´┐Że via l'argument --prefix de la commande configure, et de nombreuses distributions tierces du serveur proposent une valeur diff´┐Żrente de celles list´┐Żes ci-dessus.

Voir aussi

top

ServerSignature Directive

Description:D´┐Żfinit un pied de page pour les documents g´┐Żn´┐Żr´┐Żs par le serveur
Syntaxe:ServerSignature On|Off|EMail
D´┐Żfaut:ServerSignature Off
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
AllowOverride:All
Statut:Core
Module:core

La directive ServerSignature permet de d´┐Żfinir une ligne de pied de page fixe pour les documents g´┐Żn´┐Żr´┐Żs par le serveur (messages d'erreur, listings de r´┐Żpertoires ftp de mod_proxy, sorties de mod_info, etc...). Dans le cas d'une cha´┐Żne de mandataires, l'utilisateur n'a souvent aucun moyen de d´┐Żterminer lequel des mandataires cha´┐Żn´┐Żs a g´┐Żn´┐Żr´┐Ż un message d'erreur, et c'est une des raisons pour lesquelles on peut ´┐Żtre amen´┐Ż ´┐Ż ajouter un tel pied de page.

La valeur par d´┐Żfaut Off supprime la ligne de pied de page (et est ainsi compatible avec le comportement des versions 1.2 et ant´┐Żrieures d'Apache). la valeur On ajoute simplement une ligne contenant le num´┐Żro de version du serveur ainsi que le nom du serveur virtuel issu de la directive ServerName, alors que la valeur EMail ajoute en plus une r´┐Żf´┐Żrence "mailto:" ´┐Ż l'administrateur du document r´┐Żf´┐Żrenc´┐Ż issu la directive ServerAdmin.

Apr´┐Żs la version 2.0.44, les d´┐Żtails ´┐Ż propos du num´┐Żro de version du serveur sont contr´┐Żl´┐Żs ´┐Ż l'aide de la directive ServerTokens.

Voir aussi

top

ServerTokens Directive

Description:Configure l'en-t´┐Żte Server de la r´┐Żponse HTTP
Syntaxe:ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full
D´┐Żfaut:ServerTokens Full
Contexte:configuration du serveur
Statut:Core
Module:core

Cette directive permet de contr´┐Żler le contenu de l'en-t´┐Żte Server inclus dans la r´┐Żponse envoy´┐Że au client : cet en-t´┐Żte peut contenir le type de syst´┐Żme d'exploitation du serveur, ainsi que des informations ´┐Ż propos des modules compil´┐Żs avec le serveur.

ServerTokens Full (ou non sp´┐Żcifi´┐Ż)
Le serveur envoie par exemple : Server: Apache/2.4.2 (Unix) PHP/4.2.2 MyMod/1.2
ServerTokens Prod[uctOnly]
Le serveur renvoie (par exemple): Server: Apache
ServerTokens Major
Le serveur renvoie (par exemple): Server: Apache/2
ServerTokens Minor
Le serveur renvoie (par exemple): Server: Apache/2.4
ServerTokens Min[imal]
Le serveur renvoie (par exemple): Server: Apache/2.4.2
ServerTokens OS
Le serveur renvoie (par exemple): Server: Apache/2.4.2 (Unix)

Cette d´┐Żfinition s'applique ´┐Ż l'ensemble du serveur et ne peut ´┐Żtre activ´┐Że ou d´┐Żsactiv´┐Że pour tel ou tel serveur virtuel.

Dans les versions post´┐Żrieures ´┐Ż 2.0.44, cette directive contr´┐Żle aussi les informations fournies par la directive ServerSignature.

D´┐Żfinir ServerTokens ´┐Ż une valeur inf´┐Żrieure ´┐Ż minimal n'est pas recommand´┐Ż car le d´┐Żbogage des probl´┐Żmes interop´┐Żrationnels n'en sera alors que plus difficile. Notez aussi que la d´┐Żsactivation de l'en-t´┐Żte Server: n'am´┐Żliore en rien la s´┐Żcurit´┐Ż de votre serveur ; le concept de "s´┐Żcurit´┐Ż par l'obscurit´┐Ż" est un mythe et conduit ´┐Ż une mauvaise perception de ce qu'est la s´┐Żcurit´┐Ż.

Voir aussi

top

SetHandler Directive

Description:Force le traitement des fichiers sp´┐Żcifi´┐Żs par un gestionnaire particulier
Syntaxe:SetHandler nom gestionnaire|None
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
AllowOverride:FileInfo
Statut:Core
Module:core

Lorsqu'elle se situe ´┐Ż l'int´┐Żrieur d'un fichier .htaccess, ou d'une section <Directory> ou <Location>, cette directive force le traitement de tous les fichiers sp´┐Żcifi´┐Żs par le gestionnaire d´┐Żfini par l'argument nom gestionnaire. Par exemple, dans le cas d'un r´┐Żpertoire dont vous voulez interpr´┐Żter le contenu comme des fichiers de r´┐Żgles d'images cliquables, sans tenir compte des extensions, vous pouvez ajouter la ligne suivante dans un fichier .htaccess de ce r´┐Żpertoire :

SetHandler imap-file

Autre exemple : si vous voulez que le serveur affiche un compte-rendu d'´┐Żtat chaque fois qu'une URL du type http://nom serveur/status est appel´┐Że, vous pouvez ajouter ceci dans apache2.conf :

<Location "/status">
  SetHandler server-status
</Location>

Vous pouvez aussi utiliser cette directive pour associer un gestionnaire ´┐Ż des fichiers poss´┐Żdant une extension de nom de fichier particuli´┐Żre. Par exemple :

<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

Vous pouvez ´┐Żcraser la d´┐Żfinition ant´┐Żrieure d'une directive SetHandler en utilisant la valeur None.

Note

Comme SetHandler l'emporte sur la d´┐Żfinition des gestionnaires par d´┐Żfaut, le comportement habituel consistant ´┐Ż traiter les URLs se terminant par un slash (/) comme des r´┐Żpertoires ou des fichiers index est d´┐Żsactiv´┐Ż.

Voir aussi

top

SetInputFilter Directive

Description:D´┐Żfinit les filtres par lesquels vont passer les requ´┐Żtes client et les donn´┐Żes POST
Syntaxe:SetInputFilter filtre[;filtre...]
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
AllowOverride:FileInfo
Statut:Core
Module:core

La directive SetInputFilter permet de d´┐Żfinir le ou les filtres par lesquels vont passer les requ´┐Żtes client et les donn´┐Żes POST au moment o´┐Ż le serveur les re´┐Żoit. Cette d´┐Żfinition vient en ajout ´┐Ż tout autre filtre d´┐Żfini en quelqu'endroit que ce soit, y compris via la directive AddInputFilter.

Si la directive comporte plusieurs filtres, ils doivent ´┐Żtre s´┐Żpar´┐Żs par des points-virgules, et sp´┐Żcifi´┐Żs selon l'ordre dans lequel vous souhaitez les voir agir sur les contenus.

Voir aussi

top

SetOutputFilter Directive

Description:D´┐Żfinit les filtres par lesquels vont passer les r´┐Żponses du serveur
Syntaxe:SetOutputFilter filtre[;filtre...]
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire, .htaccess
AllowOverride:FileInfo
Statut:Core
Module:core

La directive SetOutputFilter permet de d´┐Żfinir les filtres par lesquels vont passer les r´┐Żponses du serveur avant d'´┐Żtre envoy´┐Żes au client. Cette d´┐Żfinition vient en ajout ´┐Ż tout autre filtre d´┐Żfini en quelqu'endroit que ce soit, y compris via la directive AddOutputFilter.

Par exemple, la configuration suivante va traiter tous les fichiers du r´┐Żpertoire /www/data/ comme des inclusions c´┐Żt´┐Ż serveur (SSI) :

<Directory "/www/data/">
  SetOutputFilter INCLUDES
</Directory>

Si la directive comporte plusieurs filtres, ils doivent ´┐Żtre s´┐Żpar´┐Żs par des points-virgules, et sp´┐Żcifi´┐Żs selon l'ordre dans lequel vous souhaitez les voir agir sur les contenus.

Voir aussi

top

TimeOut Directive

Description:Temps pendant lequel le serveur va attendre certains ´┐Żv´┐Żnements avant de consid´┐Żrer qu'une requ´┐Żte a ´┐Żchou´┐Ż
Syntaxe:TimeOut secondes
D´┐Żfaut:TimeOut 60
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core

La directive TimeOut permet de d´┐Żfinir le temps maximum pendant lequel Apache httpd va attendre des entr´┐Żes/sorties selon les circonstances :

  1. Lors de la lecture de donn´┐Żes en provenance du client, le temps maximum jusqu'´┐Ż l'arriv´┐Że d'un paquet TCP si le tampon est vide.
  2. Lors de l'´┐Żcriture de donn´┐Żes destin´┐Żes au client, le temps maximum jusqu'´┐Ż l'arriv´┐Że de l'accus´┐Ż-r´┐Żception d'un paquet si le tampon d'envoi est plein.
  3. Avec mod_cgi, le temps d'attente maximum des sorties d'un script CGI.
  4. Avec mod_ext_filter, le temps d'attente maximum des sorties d'un processus de filtrage.
  5. Avec mod_proxy, la valeur du d´┐Żlai par d´┐Żfaut si ProxyTimeout n'est pas d´┐Żfini.
top

TraceEnable Directive

Description:D´┐Żtermine le comportement des requ´┐Żtes TRACE
Syntaxe:TraceEnable [on|off|extended]
D´┐Żfaut:TraceEnable on
Contexte:configuration du serveur, serveur virtuel
Statut:Core
Module:core

Cette directive l'emporte sur le comportement de TRACE pour le noyau du serveur et mod_proxy. La d´┐Żfinition par d´┐Żfaut TraceEnable on permet des requ´┐Żtes TRACE selon la RFC 2616, qui interdit d'ajouter tout corps ´┐Ż la requ´┐Żte. La d´┐Żfinition TraceEnable off indique au noyau du serveur et ´┐Ż mod_proxy de retourner un code d'erreur 405 (M´┐Żthode non autoris´┐Że) au client.

En fait, et ´┐Ż des fins de test et de diagnostic seulement, on peut autoriser l'ajout d'un corps de requ´┐Żte ´┐Ż l'aide de la d´┐Żfinition non standard TraceEnable extended. Le noyau du serveur (dans le cas d'un serveur d'origine) va limiter la taille du corps de requ´┐Żte ´┐Ż 64k (plus 8k pour les en-t´┐Żtes de fractionnement si Transfer-Encoding: chunked est utilis´┐Ż). Le noyau du serveur va reproduire l'ensemble des en-t´┐Żtes, y compris les en-t´┐Żtes de fractionnement avec le corps de la r´┐Żponse. Dans le cas d'un serveur mandataire, la taille du corps de requ´┐Żte n'est pas limit´┐Że ´┐Ż 64k.

Note

Bien que certains pr´┐Żtendent le contraire, TRACE ne constitue pas une vuln´┐Żrabilit´┐Ż en mati´┐Żre de s´┐Żcurit´┐Ż, et il n'y a aucune raison suffisante pour le d´┐Żsactiver, ce qui rendrait votre serveur non conforme.

top

UnDefine Directive

Description:Invalide la d´┐Żfinition d'une variable
Syntaxe:UnDefine nom-variable
Contexte:configuration du serveur
Statut:Core
Module:core

Annule l'effet d'une directive Define ou d'un argument -D de httpd en invalidant l'existence de la variable correspondante.

On peut utiliser cette directive pour inverser l'effet d'une section <IfDefine> sans avoir ´┐Ż modifier les arguments -D dans les scripts de d´┐Żmarrage.

top

UseCanonicalName Directive

Description:D´┐Żfinit la mani´┐Żre dont le serveur d´┐Żtermine son propre nom et son port
Syntaxe:UseCanonicalName On|Off|DNS
D´┐Żfaut:UseCanonicalName Off
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire
Statut:Core
Module:core

Dans de nombreuses situations, Apache httpd doit construire une URL auto-identifiante -- c'est ´┐Ż dire une URL qui fait r´┐Żf´┐Żrence au serveur lui-m´┐Żme. Avec UseCanonicalName On, Apache httpd va utiliser le nom d'h´┐Żte et le port sp´┐Żcifi´┐Żs par la directive ServerName pour construire le nom canonique du serveur. Ce nom est utilis´┐Ż dans toutes les URLs auto-identifiantes, et affect´┐Ż aux variables SERVER_NAME et SERVER_PORT dans les programmes CGI.

Avec UseCanonicalName Off, Apache httpd va construire ses URLs auto-identifiantes ´┐Ż l'aide du nom d'h´┐Żte et du port fournis par le client, si ce dernier en a fourni un (dans la n´┐Żgative, Apache utilisera le nom canonique, de la m´┐Żme mani´┐Żre que ci-dessus). Ces valeurs sont les m´┐Żmes que celles qui sont utilis´┐Żes pour impl´┐Żmenter les serveurs virtuels ´┐Ż base de nom, et sont disponibles avec les m´┐Żmes clients. De m´┐Żme, les variables CGI SERVER_NAME et SERVER_PORT seront affect´┐Żes des valeurs fournies par le client.

Cette directive peut s'av´┐Żrer utile, par exemple, sur un serveur intranet auquel les utilisateurs se connectent en utilisant des noms courts tels que www. Si les utilisateurs tapent un nom court suivi d'une URL qui fait r´┐Żf´┐Żrence ´┐Ż un r´┐Żpertoire, comme http://www/splat, sans le slash terminal, vous remarquerez qu'Apache httpd va les rediriger vers http://www.example.com/splat/. Si vous avez activ´┐Ż l'authentification, ceci va obliger l'utilisateur ´┐Ż s'authentifier deux fois (une premi´┐Żre fois pour www et une seconde fois pour www.example.com -- voir la foire aux questions sur ce sujet pour plus d'informations). Par contre, si UseCanonicalName est d´┐Żfinie ´┐Ż Off, Apache httpd redirigera l'utilisateur vers http://www/splat/.

Pour l'h´┐Żbergement virtuel en masse ´┐Ż base d'adresse IP, on utilise une troisi´┐Żme option, UseCanonicalName DNS, pour supporter les clients anciens qui ne fournissent pas d'en-t´┐Żte Host:. Apache httpd effectue alors une recherche DNS inverse sur l'adresse IP du serveur auquel le client s'est connect´┐Ż afin de construire ses URLs auto-identifiantes.

Avertissement

Les programmes CGI risquent d'´┐Żtre perturb´┐Żs par cette option s'ils tiennent compte de la variable SERVER_NAME. Le client est pratiquement libre de fournir la valeur qu'il veut comme nom d'h´┐Żte. Mais si le programme CGI n'utilise SERVER_NAME que pour construire des URLs auto-identifiantes, il ne devrait pas y avoir de probl´┐Żme.

Voir aussi

top

UseCanonicalPhysicalPort Directive

Description:D´┐Żfinit la mani´┐Żre dont le serveur d´┐Żtermine son propre port
Syntaxe:UseCanonicalPhysicalPort On|Off
D´┐Żfaut:UseCanonicalPhysicalPort Off
Contexte:configuration du serveur, serveur virtuel, r´┐Żpertoire
Statut:Core
Module:core

Dans de nombreuses situations, Apache httpd doit construire une URL auto-identifiante -- c'est ´┐Ż dire une URL qui fait r´┐Żf´┐Żrence au serveur lui-m´┐Żme. Avec UseCanonicalPhysicalPort On, Apache httpd va fournir le num´┐Żro de port physique r´┐Żel utilis´┐Ż par la requ´┐Żte en tant que port potentiel, pour construire le port canonique afin que le serveur puisse alimenter la directive UseCanonicalName. Avec UseCanonicalPhysicalPort Off, Apache httpd n'utilisera pas le num´┐Żro de port physique r´┐Żel, mais au contraire se r´┐Żf´┐Żrera aux informations de configuration pour construire un num´┐Żro de port valide.

Note

L'ordre dans lequel s'effectue la recherche quand on utilise le port physique est le suivant :

UseCanonicalName On
  1. Port indiqu´┐Ż dans Servername
  2. Port physique
  3. Port par d´┐Żfaut
UseCanonicalName Off | DNS
  1. Port sp´┐Żcifi´┐Ż dans l'en-t´┐Żte Host:
  2. Port physique
  3. Port sp´┐Żcifi´┐Ż par Servername
  4. Port par d´┐Żfaut

Avec UseCanonicalPhysicalPort Off, on reprend l'ordre ci-dessus en supprimant "Port physique".

Voir aussi

top

<VirtualHost> Directive

Description:Contient des directives qui ne s'appliquent qu'´┐Ż un nom d'h´┐Żte sp´┐Żcifique ou ´┐Ż une adresse IP
Syntaxe:<VirtualHost adresse IP[:port] [adresse IP[:port]] ...> ... </VirtualHost>
Contexte:configuration du serveur
Statut:Core
Module:core

Les balises <VirtualHost> et </VirtualHost> permettent de rassembler un groupe de directives qui ne s'appliquent qu'´┐Ż un serveur virtuel particulier. Toute directive autoris´┐Że dans un contexte de serveur virtuel peut ´┐Żtre utilis´┐Że. Lorsque le serveur re´┐Żoit un requ´┐Żte pour un document h´┐Żberg´┐Ż par un serveur virtuel particulier, il applique les directives de configuration rassembl´┐Żes dans la section <VirtualHost>. adresse IP peut ´┐Żtre une des entit´┐Żs suivantes, ´┐Żventuellement suivies d'un caract´┐Żre ':' et d'un num´┐Żro de port (ou *) :

<VirtualHost 10.1.2.3:80>
  ServerAdmin [email protected]
  DocumentRoot /www/docs/host.example.com
  ServerName host.example.com
  ErrorLog logs/host.example.com-error_log
  TransferLog logs/host.example.com-access_log
</VirtualHost>

Les adresses IPv6 doivent ´┐Żtre entour´┐Żes de crochets car dans le cas contraire, un ´┐Żventuel port optionnel ne pourrait pas ´┐Żtre d´┐Żtermin´┐Ż. Voici un exemple de serveur virtuel avec adresse IPv6 :

<VirtualHost [2001:db8::a00:20ff:fea7:ccea]:80>
  ServerAdmin [email protected]
  DocumentRoot /www/docs/host.example.com
  ServerName host.example.com
  ErrorLog logs/host.example.com-error_log
  TransferLog logs/host.example.com-access_log
</VirtualHost>

Chaque serveur virtuel doit correspondre ´┐Ż une adresse IP, un port ou un nom d'h´┐Żte sp´┐Żcifique ; dans le premier cas, le serveur doit ´┐Żtre configur´┐Ż pour recevoir les paquets IP de plusieurs adresses (si le serveur n'a qu'une interface r´┐Żseau, on peut utiliser ´┐Ż cet effet la commande ifconfig alias -- si votre syst´┐Żme d'exploitation le permet).

Note

L'utilisation de la directive <VirtualHost> n'affecte en rien les adresses IP sur lesquelles Apache httpd est en ´┐Żcoute. Vous devez vous assurer que les adresses des serveurs virtuels sont bien incluses dans la liste des adresses pr´┐Żcis´┐Żes par la directive Listen.

Tout bloc <VirtualHost> doit comporter une directive ServerName. Dans le cas contraire, le serveur virtuel h´┐Żritera de la valeur de la directive ServerName issue de la configuration du serveur principal.

A l'arriv´┐Że d'une requ´┐Żte, le serveur tente de la faire prendre en compte par la section <VirtualHost> qui correspond le mieux en ne se basant que sur la paire adresse IP/port. Les cha´┐Żnes sans caract´┐Żres g´┐Żn´┐Żriques l'emportent sur celles qui en contiennent. Si aucune correspondance du point de vue de l'adresse IP/port n'est trouv´┐Że, c'est la configuration du serveur "principal" qui sera utilis´┐Że.

Si plusieurs serveurs virtuels correspondent du point de vue de l'adresse IP/port, le serveur s´┐Żlectionne celui qui correspond le mieux du point de vue du nom d'h´┐Żte de la requ´┐Żte. Si aucune correspondance du point de vue du nom d'h´┐Żte n'est trouv´┐Że, c'est le premier serveur virtuel dont l'adresse IP/port correspond qui sera utilis´┐Ż. Par voie de cons´┐Żquence, le premier serveur virtuel comportant une certaine paire adresse IP/port est le serveur virtuel par d´┐Żfaut pour cette paire adresse IP/port.

S´┐Żcurit´┐Ż

Voir le document sur les conseils ´┐Ż propos de s´┐Żcurit´┐Ż pour une description d´┐Żtaill´┐Że des raisons pour lesquelles la s´┐Żcurit´┐Ż de votre serveur pourrait ´┐Żtre compromise, si le r´┐Żpertoire contenant les fichiers journaux est inscriptible par tout autre utilisateur que celui qui d´┐Żmarre le serveur.

Voir aussi

Langues Disponibles:  de  |  en  |  es  |  fr  |  ja  |  tr 

top

Commentaires

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.