10.5. Directives de configuration dans httpd.conf

Le fichier de configuration du Serveur HTTP Apache est /etc/httpd/conf/httpd.conf. Le fichier httpd.conf est bien commenté et explicite. Sa configuration par défaut fonctionne dans la plupart des situations ; cependant, il est important de vous familiariser avec certaines des options de configuration les plus importantes.

AvertissementAvertissement
 

Avec la sortie du Serveur HTTP Apache 2.0, de nombreuses options de configuration ont changé. Si vous devez migrer un fichier de configuration version 1.3 vers le nouveau format, reportez-vous à la Section 10.2.

10.5.1. Astuces de configuration générales

Si vous devez configurer le Serveur HTTP Apache, modifiez /etc/httpd/conf/httpd.conf puis rechargez, redémarrez ou arrêtez le processus httpd comme l'explique la Section 10.4.

Avant de modifier httpd.conf, faites d'abord une copie de sauvegarde du fichier original. Ainsi, si vous commettez ensuite une erreur lors de la modification du fichier de configuration, vous pourrez utiliser la copie de sauvegarde pour résoudre les problèmes.

Si vous commettez une erreur et que votre serveur Web ne fonctionne pas correctement, vérifiez tout d'abord les modifications apportées au fichier httpd.conf afin de corriger toute faute de frappe.

Consultez ensuite le journal des erreurs du serveur Web, /var/log/httpd/error_log. Le journal des erreurs peut être quelque peu difficile selon votre expérience. Toutefois, les dernières entrées du journal des erreurs devraient fournir des informations utiles.

Les sections suivantes contiennent de brèves descriptions des directives contenues dans le fichier httpd.conf. Ces descriptions ne sont pas exhaustives. Pour plus d'informations, reportez-vous à la documentation d'Apache en ligne à l'adresse suivante : http://httpd.apache.org/docs-2.0/.

Pour plus d'informations sur les directives mod_ssl, reportez-vous à la documentation en ligne à l'adresse suivante : http://httpd.apache.org/docs-2.0/mod/mod_ssl.html.

10.5.2. ServerRoot

Le répertoire ServerRoot est le répertoire de niveau supérieur contenant les fichiers du serveur. Tant le serveur sécurisé que le serveur non-sécurisé établissent la directive ServerRoot à "/etc/httpd".

10.5.3. PidFile

PidFile est le nom du fichier dans lequel le serveur consigne son identifiant de processus (PID). Le PID par défaut est /var/run/httpd.pid.

10.5.4. Timeout

Timeout définit, en secondes, la durée pendant laquelle le serveur attend des réceptions et des émissions en cours de communication. Timeout est réglé sur 300 secondes par défaut, ce qui est approprié pour la plupart des situations.

10.5.5. KeepAlive

KeepAlive définit si votre serveur autorisera plus d'une requête par connexion ; cette directive peut servir à empêcher un client particulier d'utiliser une trop grande quantité de ressources du serveur.

Par défaut, la valeur de Keepalive est réglée sur off. Si la valeur de Keepalive est on et que le serveur devient très occupé, le serveur peut générer rapidement le nombre maximum de processus enfants. Dans ce cas, le serveur sera considérablement ralenti. Si la directive Keepalive est activée, il est recommandé de donner à KeepAliveTimeout une valeur basse (reportez-vous à la Section 10.5.7 pour obtenir de plus amples informations sur la directive KeepAliveTimeout) et de contrôler le fichier journal /var/log/httpd/error_log du serveur. Ce journal indique si le serveur est à cours de processus enfants.

10.5.6. MaxKeepAliveRequests

Cette directive définit le nombre maximum de requêtes autorisées par connexion persistante. Le groupe Apache Project recommande l'utilisation d'un paramétrage élevé, ce qui améliorera les performances du serveur. Par défaut, la valeur de MaxKeepAliveRequests est paramétrée sur 100, ce qui est approprié pour la plupart des situations.

10.5.7. KeepAliveTimeout

KeepAliveTimeout définit la durée en secondes pendant laquelle votre serveur attendra, après avoir servi une requête, avant d'interrompre la connexion. Une fois que le serveur reçoit une requête, c'est la directive Timeout qui s'applique à sa place. Par défaut, la valeur donnée à KeepAliveTimeout est 15 secondes.

10.5.8. IfModule

Les balises <IfModule> et </IfModule> créent un conteneur conditionnel dont les directives ne sont activées que si le module spécifié est chargé. Les directives placées entre les balises IfModule sont traitées dans l'un des deux cas suivants. Les directives sont traitées si le module contenu dans la balise de début <IfModule> est chargé. En revanche, si un point d'exclamation ([!]) figure devant le nom du module, les directives ne sont traitées que si le module dans la balise <IfModule> n'est pas chargé.

Pour de plus amples informations sur les modules du Serveur HTTP Apache, reportez-vous à la Section 10.7.

10.5.9. Directives de server-pool spécifiques aux MPM

Comme l'explique la Section 10.2.1.2, sous le Serveur HTTP Apache 2.0, la responsabilité de gérer les caractéristiques du server-pool est donnée à un groupe de modules appelé les MPM. Les caractéristiques du server-pool sont différentes selon le MPM utilisé. Pour cette raison, un conteneur IfModule est nécessaire pour définir le server-pool pour le MPM utilisé.

Par défaut, le Serveur HTTP Apache 2.0 définit le server-pool pour les deux MPM prefork et worker.

Voici une liste de directives qui se trouvent dans les conteneurs de server-pool spécifiques aux MPM.

10.5.9.1. StartServers

StartServers définit le nombre de processus serveur créés au démarrage. Étant donné que le serveur Web supprime et crée des processus serveur, de façon dynamique en fonction de la charge du trafic, il n'est pas nécessaire de modifier ce paramètre. Votre serveur Web est configuré de manière à lancer 8 processus serveur au démarrage pour le MPM prefork et 2 pour le MPM worker.

10.5.9.2. MaxRequestsPerChild

MaxRequestsPerChild définit le nombre total de demandes que chaque processus serveur enfant sert avant de disparaître. L'attribution d'une valeur à MaxRequestsPerChild est importante afin d'éviter des pertes de mémoire induites par des processus longs. La valeur par défaut de MaxRequestsPerChild pour le MPM prefork est 1000 et 0 pour le MPM worker.

10.5.9.3. MaxClients

MaxClients fixe une limite au nombre total de processus serveur, ou de clients connectés simultanément, pouvant s'exécuter en même temps. L'objectif principal de cette directive est d'éviter qu'un Serveur HTTP Apache surchargé n'entraîne le plantage de votre système d'exploitation. Pour des serveurs très solicités, cette valeur devrait être élevée. La valeur par défaut du serveur est 150 indépendamment du MPM utilisé. Toutefois, il n'est pas recommandé d'attribuer à MaxClients une valeur supérieure à 256 lors de l'utilisation du MPM prefork.

10.5.9.4. MinSpareServers and MaxSpareServers

Ces valeurs ne sont pas seulement utilisées avec le MPM prefork. Elles ajustent la façon avec laquelle le Serveur HTTP Apache s'adapte dynamiquement à la charge reçue en maintenant un nombre de processus serveur de rechange approprié en fonction du nombre de requêtes entrantes. Le serveur vérifie le nombre de serveurs attendant une requête et en supprime s'ils sont plus nombreux que MaxSpareServers ou en crée s'ils sont moins nombreux que MinSpareServers.

La valeur par défaut donnée à MinSpareServers est 5 ; la valeur par défaut attribuée à MaxSpareServers est 20. Ces paramètres par défaut devraient convenir à presque toutes les situations. Ne donnez pas à MinSpareServers une valeur très élevée car un tel choix créera une charge de traitement importante sur le serveur, même si le trafic est faible.

10.5.9.5. MinSpareThreads et MaxSpareThreads

Ces valeurs ne sont pas seulement utilisées avec le MPM worker. Elles ajustent la façon avec laquelle le Serveur HTTP Apache s'adapte dynamiquement à la charge reçue en maintenant un nombre de processus serveur de rechange approprié en fonction du nombre de requêtes entrantes. Le serveur vérifie le nombre de threads de serveurs attendant une requête et en supprime s'ils sont plus nombreux que MaxSpareThreads ou en crée s'ils sont moins nombreux que MinSpareThreads.

La valeur par défaut donnée à MinSpareThreads est 25 ; la valeur par défaut attribuée à MaxSpareThreads est 75. Ces paramètres par défaut devraient convenir à presque toutes les situations. La valeur de MaxSpareThreads doit être supérieure ou égale à la somme de MinSpareThreads et de ThreadsPerChild ou le Serveur HTTP Apache la corrigera automatiquement.

10.5.9.6. ThreadsPerChild

Cette valeur est utilisée uniquement avec le MPM worker. Il définit le nombre de fils au sein de chaque processus enfant. La valeur par défaut pour cette directive est 25.

10.5.10. Listen

La commande Listen identifie les ports sur lesquels votre serveur Web acceptera les demandes entrantes. Par défaut, le Serveur HTTP Apache est paramétré pour écouter sur le port 80 pour les communications Web non sécurisées et (dans /etc/httpd/conf.d/ssl.conf définissant tout serveur sécurisé) sur le port 443 pour les communications Web sécurisées.

Si le Serveur HTTP Apache est configuré pour écouter sur un port dont le numéro est inférieur à 1024, seul le super-utilisateur peut la lancer. En revanche, pour les ports dont le numéro est égal ou supérieur à 1024, httpd peut être lancée en tant que simple utilisateur.

La directive Listen peut également être utilisée pour spécifier des adresses IP particulières sur lesquelles le serveur acceptera des connexions.

10.5.11. Include

Include permet d'inclure d'autres fichiers de configuration au moment du lancement.

Le chemin d'accès de ces fichiers de configuration peut être absolu ou relatif au ServerRoot.

ImportantImportant
 

Pour que le serveur utilise individuellement des modules paquetés, tels que mod_ssl, mod_perl et php, la directive suivante doit être intégrée dans la Section 1 : Global Environment du httpd.conf :

Include conf.d/*.conf

10.5.12. LoadModule

LoadModule est utilisée pour charger des modules DSO (de l'anglais 'Dynamic Shared Object', objet partagé dynamique). Pour plus d'informations sur le support DSO du Serveur HTTP Apache, y compris la manière précise d'utiliser la directive LoadModule, reportez-vous à la Section 10.7. Notez que l'ordre de chargement des modules n'est plus important avec le Serveur HTTP Apache 2.0. Reportez-vous à la Section 10.2.1.3 pour plus d'informations sur le support DSO du Serveur HTTP Apache 2.0.

10.5.13. ExtendedStatus

La directive ExtendedStatus contrôle le type d'informations sur l'état des serveurs produit par Apache, lorsque le module de commande server-status est appelé ; le informations fournies peuvent être sommaires (off) ou détaillées (on). Le module de commande Server-status est appelé à l'aide des balises Location. Pour plus d'informations sur l'appel de server-status reportez-vous à la Section 10.5.59.

10.5.14. IfDefine

Les balises IfDefine entourent des directives de configuration. Elles s'appliquent si le test indiqué dans la balise IfDefine est vrai. Les directives sont ignorées si le test est faux.

Le test dans les balises IfDefine est un nom de paramètre (comme par exemple, HAVE_PERL). Si le paramètre est défini (c'est-à-dire spécifié comme argument de la commande de démarrage du serveur), le test est vrai. Dans ce cas, lorsque le serveur Web est démarré, le test est vrai et les directives contenues dans les balises IfDefine sont appliquées.

10.5.15. User

La directive User définit le nom d'utilisateur du processus serveur et détermine les fichiers auxquels le serveur peut avoir accès. Tous les fichiers inaccessibles à cet utilisateur seront également inaccessibles aux clients se connectant au Serveur HTTP Apache.

La valeur par défaut donnée à User est apache.

NoteRemarque
 

Pour des raisons de sécurité, le Serveur HTTP Apache refuse d'être exécuté en tant que super-utilisateur.

10.5.16. Group

Spécifie le nom de groupe des processus du Serveur HTTP Apache.

La valeur par défaut attribuée à Group est apache.

10.5.17. ServerAdmin

Donnez comme valeur à la directive ServerAdmin l'adresse électronique de l'administrateur du serveur Web. Cette adresse électronique apparaîtra dans les messages d'erreur sur les pages Web générées par le serveur afin que les utilisateurs puissent signaler un problème en envoyant un message électronique à l'administrateur du serveur.

La valeur par défaut donnée à ServerAdmin est root@localhost.

Généralement, la valeur donnée à ServerAdmin est Webmaster@example.com. Vous pouvez ensuite créer un alias pour Webmaster au nom de la personne responsable du serveur Web dans /etc/aliases et exécuter /usr/bin/newaliases.

10.5.18. ServerName

Utilisez ServerName pour définir un nom d'hôte et un numéro de port (en accord avec la directive Listen) pour le serveur. La directive ServerName ne doit pas forcément correspondre au nom d'hôte de l'ordinateur. Par exemple, le serveur Web pourrait être www.example.com bien que le nom d'hôte du serveur soit foo.example.com. La valeur spécifiée dans ServerName doit être un nom de domaine (ou DNS, de l'anglais Domain Name Service) valide qui peut être résolu par le système — ne vous contentez surtout pas d'en inventer un.

Ci-dessous figure un exemple de directive ServerName :

ServerName www.example.com:80

Lors de la détermination d'un ServerName, assurez-vous que son adresse IP et son nom de serveur sont bien inclus dans le fichier /etc/hosts.

10.5.19. UseCanonicalName

Lorsque la valeur attribuée à cette directive est on, elle configure le Serveur HTTP Apache de manière à ce qu'il se référence en utilisant les valeurs précisées dans les directives ServerName et Port. En revanche, lorsque la valeur de UseCanonicalName est off, le serveur emploiera la valeur utilisée le client envoyant la requête lorsqu'il fait référence à lui-même.

Par défaut, la valeur attribuée à UseCanonicalName est off.

10.5.20. DocumentRoot

DocumentRoot est le répertoire contenant la plupart des fichiers HTML qui seront servis en réponse aux requêtes. La valeur par défaut pour DocumentRoot aussi bien pour le serveur Web sécurisé que pour le serveur Web non-sécurisé est le répertoire /var/www/html. Par exemple, le serveur pourrait recevoir une demande pour le document suivant :

http://example.com/foo.html

Le serveur recherche le fichier suivant dans le répertoire par défaut :

/var/www/html/foo.html

Pour modifier DocumentRoot afin qu'il ne soit pas partagé par un serveur Web sécurisé et un serveur Web non-sécurisé, reportez-vous à la Section 10.8.

10.5.21. Directory

Les balises <Directory /path/to/directory> et </Directory> créent un conteneur utilisé pour entourer un groupe de directives de configuration devant uniquement s'appliquer à ce répertoire et ses sous-répertoires. Toute directive applicable à un répertoire peut être utilisée à l'intérieur des balises Directory.

Par défaut, des paramètres très restrictifs sont appliqués au répertoire racine (/), à l'aide des directives Options (voir la Section 10.5.22) et AllowOverride (voir la Section 10.5.23). Dans cette configuration, tout répertoire du système ayant besoin de paramètres plus permissifs doit contenir explicitement ces paramètres.

Dans la configuration par défaut, un autre conteneur Directory est également configuré pour DocumentRoot ; ce faisant, des paramètres moins rigides sont assignés à l'arbre de répertoire, de manière à ce que le Serveur HTTP Apache puisse avoir accès à des fichiers placés dans ce dernier.

Le conteneur Directory peut également être utilisé pour configurer des répertoires cgi-bin supplémentaires pour des applications côté-serveur en dehors du répertoire spécifié dans la directive ScriptAlias (reportez-vous à la Section 10.5.40 pour obtenir de plus amples informations sur la directive ScriptAlias).

Pour ce faire, le conteneur Directory doit déterminer l'option ExecCGI pour ce répertoire.

Par exemple, si les scripts CGI se trouvent dans /home/my_cgi_directory, ajoutez le conteneur Directory suivant au fichier httpd.conf :

<Directory /home/my_cgi_directory>
    Options +ExecCGI
</Directory>

Ensuite, la directive AddHandler doit être dé-commentée pour permettre l'identification des fichiers ayant une extension .cgi en tant que scripts CGI. Reportez-vous à la Section 10.5.55 pour obtenir des instructions sur le paramétrage de AddHandler.

Pour que cette opération se déroule parfaitement, il est nécessaire de donner la valeur 0755 aux permissions pour les scripts CGI et au chemin d'accès complet aux scripts.

10.5.22. Options

La directive Options contrôle les fonctions du serveur disponibles dans un répertoire particulier. Par exemple, en vertu des paramètres restrictifs spécifiés pour le répertoire root, Options est définie uniquement sur FollowSymLinks. Aucune fonction n'est activée, à l'exception du fait que le serveur est autorisé à suivre les liens symboliques dans le répertoire root.

Par défaut, dans le répertoire DocumentRoot, Options est paramétrée pour inclure Indexes et FollowSymLinks. Indexes permet au serveur de générer le contenu d'un répertoire si aucun DirectoryIndex (par exemple, index.html) n'est spécifié. FollowSymLinks permet au serveur de suivre des liens symboliques dans ce répertoire.

NoteRemarque
 

Les déclarations Options de la section de configuration du serveur principal doit être copiée individuellement dans chaque conteneur VirtualHost. Reportez-vous à la Section 10.5.65 pour obtenir de plus amples informations sur les conteneurs VirtualHost.

10.5.23. AllowOverride

La directive AllowOverride définit si des Options peuvent être invalidées par les instructions d'un fichier .htaccess. Par défaut, tant le répertoire racine que DocumentRoot sont réglés pour interdire les invalidations .htaccess.

10.5.24. Order

La directive Order contrôle simplement l'ordre dans lequel les directives allow et deny sont analysées. Le serveur est configuré pour analyser les directives Allow avant d'analyser les directives Deny pour votre répertoire DocumentRoot.

10.5.25. Allow

Allow spécifie le client pouvant accéder à un répertoire donné. Le client peut être all, un nom de domaine, une adresse IP, une adresse IP partielle, une paire réseau/masque réseau, etc. Le répertoire DocumentRoot est configuré pour permettre (Allow) les requêtes de quiconque (all), ainsi tout le monde peut y accéder.

10.5.26. Deny

Deny fonctionne selon le même principe que Allow, sauf que cette fois-ci, l'accès est refusé à un client donné. Le DocumentRoot n'est pas configuré par défaut pour refuser (Deny) des requêtes provenant d'un client quelconque.

10.5.27. UserDir

UserDir est le nom du sous-répertoire, au sein du répertoire personnel de chaque utilisateur, où devraient être placés les fichiers HTML personnels devant être servis par le serveur Web. Par défaut, la valeur attribuée à cette directive est disable (désactiver).

Dans le fichier de configuration par défaut, le nom du sous-répertoire est public_html. Par exemple, le serveur pourrait recevoir la requête suivante :

http://example.com/~username/foo.html

Le serveur rechercherait le fichier :

/home/username/public_html/foo.html

Dans l'exemple ci-dessus, /home/username/ est le répertoire personnel de l'utilisateur (notez que le chemin d'accès par défaut aux répertoires personnels des utilisateurs peut être différent sur votre système).

Assurez-vous que les autorisations relatives aux répertoires personnels des utilisateurs sont correctement définies. Les répertoires personnels des utilisateurs doivent être définis sur 0711. Les bits de lecture (r) et d'exécution (x) doivent être définis sur les répertoires public_html des utilisateurs (0755 fonctionnera également). Les fichiers qui seront servis dans les répertoires public_html des utilisateurs doivent être définis sur au moins 0644.

10.5.28. DirectoryIndex

DirectoryIndex est la page servie par défaut lorsqu'un utilisateur demande un index de répertoire en insérant une barre oblique (/) à la fin d'un nom de répertoire.

Lorsqu'un utilisateur demande à accéder à la page http://exemple/ce_répertoire/, il reçoit soit la page DirectoryIndex si elle existe, soit une liste de répertoires générée par le serveur. La valeur par défaut pour DirectoryIndex est index.html et le type de mappe index.html.var. Le serveur essaie de trouver l'un de ces fichiers et renvoie le premier qu'il trouve. S'il ne trouve aucun de ces fichiers et que Options Indexes est paramétrée pour ce répertoire, le serveur génère et renvoie une liste, au format HTML, des fichiers et sous-répertoires contenus dans le répertoire (à moins que la fonctionnalité de listage des répertoires ne soit desactivée).

10.5.29. AccessFileName

AccessFileName nomme le fichier que le serveur doit utiliser pour les informations de contrôle d'accès dans chaque répertoire. La valeur par défaut est .htaccess.

Juste après la directive AccessFileName, une série de balises Files appliquent un contrôle d'accès à tout fichier commençant par .ht. Ces directives refusent l'accès Web à tous les fichiers .htaccess (ou d'autres commençant par .ht) pour des raisons de sécurité.

10.5.30. CacheNegotiatedDocs

Par défaut, votre serveur Web demande aux serveurs proxy de ne pas mettre en cache des documents négociés sur la base du contenu (c'est-à-dire qui peuvent changer avec le temps ou suite à l'entrée du demandeur). Si la valeur pour CacheNegotiatedDocs est paramétrée sur on, cette fonction est désactivée et les serveurs proxy seront alors autorisés à mettre en cache des documents.

10.5.31. TypesConfig

TypesConfig nomme le fichier qui définit la liste par défaut des correspondances de type MIME (extensions de nom de fichier associées à des types de contenu). Le fichier TypesConfig par défaut est /etc/mime.types. Au lieu d'éditer /etc/mime.types, il est plutôt recommandé d'ajouter des types MIME à l'aide de la directive AddType.

Pour plus d'informations sur AddType, reportez-vous à la Section 10.5.54.

10.5.32. DefaultType

DefaultType définit un type de contenu par défaut pour le serveur Web à utiliser pour des documents dont les types MIME ne peuvent pas être déterminés. La valeur par défaut est text/plain.

10.5.33. HostnameLookups

HostnameLookups peut être paramétrée sur on, off ou double. Si HostnameLookups est paramétrée sur on, le serveur résout automatiquement l'adresse IP pour chaque connexion. La résolution de l'adresse IP implique que le serveur établit une ou plusieurs connexions avec un serveur DNS, rallongeant la durée des opérations. Si HostnameLookups est paramétrée sur double, le serveur établira une recherche DNS double inversée, rallongeant ainsi encore plus la durée des opérations.

Afin de conserver des ressources sur le serveur, la valeur par défaut pour HostnameLookups est off.

Si des noms d'hôtes sont nécessaires dans les fichiers journaux de serveur, songez à exécuter l'un des nombreux outils conçus pour analyser les fichiers journaux ; ces derniers effectuent des recherches DNS non seulement de manière plus efficace mais également en masse lors de la rotation des fichiers journaux de serveur Web.

10.5.34. ErrorLog

ErrorLog spécifie le fichier dans lequel sont consignées les erreurs du serveur. La valeur par défaut pour cette directive est /var/log/httpd/error_log.

10.5.35. LogLevel

LogLevel définit le niveau de détail des messages d'erreur devant s'appliquer aux journaux des erreurs. Les valeurs possible de LogLevel sont (du niveau le moins détaillé au niveau le plus détaillé) emerg, alert, crit, error, warn, notice, info ou debug. La valeur par défaut pour LogLevel est warn.

10.5.36. LogFormat

La directive LogFormat configure le format des fichiers journaux des différents serveurs Web. Le LogFormat utilisé dépend en fait des paramètres attribués dans la directive CustomLog (voir la Section 10.5.37).

Ci-dessous figurent les options de format s'appliquant si la valeur de la directive CustomLog est combined :

%h (adresse IP de l'hôte distant ou nom d'hôte)

Répertorie l'adresse IP distante du client demandeur. Si la valeur de HostnameLookups est on, le nom d'hôte du client est enregistré à moins que le DNS ne puisse le fournir.

%l (rfc931)

Option non-utilisée. Un tiret ([-]) apparaît à sa place dans le fichier journal.

%u (utilisateur authentifié)

Si l'authentification devait être nécessaire, le nom d'utilisateur du demandeur serait enregistré. De manière générale cette option n'est pas utilisée et un tiret ([-]) figure à sa place dans le fichier journal.

%t (date)

Enregistre la date et l'heure de la requête.

%r (chaîne de demandes)

Enregistre la chaîne de demandes telle qu'elle est venue du navigateur ou du client.

%s (état)

Enregistre le code d'état HTTP renvoyé à l'hôte client.

%b (octets)

Enregistre la taille du document.

%\"%{Referer}i\" (referrer)

Enregistre l'URL de la page Web qui lie à la demande courante de l'hôte client.

%\"%{User-Agent}i\" (utilisateur-agent)

Enregistre le type de navigateur Web effectuant la requête.

10.5.37. CustomLog

CustomLog identifie le fichier journal et le format du fichier journal. Par défaut, l'enregistrement se fait dans le fichier /var/log/httpd/access_log.

Le format par défaut pour CustomLog est combined. L'extrait ci-dessous illustre le format de fichier journal combined :

remotehost rfc931 user date "request" status bytes referrer user-agent

10.5.38. ServerSignature

La directive ServerSignature ajoute une ligne contenant la version du Serveur HTTP Apache et le nom du serveur (ServerName) pour tout document créé par un serveur, comme par exemple, les messages d'erreur renvoyés aux clients. La valeur par défaut pour ServerSignature est on.

La valeur de cette directive peut également être off ou EMail. La valeur EMail ajoute une balise HTML mailto:ServerAdmin à la ligne de signature des réponses produites automatiquement par le système.

10.5.39. Alias

Le paramètre Alias permet d'accéder aux répertoires se trouvant en dehors du répertoire DocumentRoot. Toute URL se terminant par l'alias sera automatiquement convertie en chemin d'accès vers l'alias. Par défaut, un alias pour un répertoire icons est déjà configuré. Un répertoire icons est accessible par le serveur Web, mais le répertoire n'est pas dans DocumentRoot.

10.5.40. ScriptAlias

La directive ScriptAlias définit l'endroit où se trouvent les scripts CGI. D'une manière générale, il est préférable de ne pas laisser de scripts CGI dans DocumentRoot, où ils peuvent être consultés comme des documents en texte. C'est pour cette raison qu'il existe un répertoire spécial, en dehors du répertoire DocumentRoot, contenant des exécutables et scripts côté-serveur, désigné par la directive ScriptAlias directive. Cette dernière est connue sous le nom cgi-bin et prend /var/www/cgi-bin/ comme valeur par défaut.

Il est possible de créer des répertoires pour stocker des exécutables en dehors du répertoire cgi-bin. Pour de plus amples information sur la manière de procéder, reportez-vous à la Section 10.5.55 et à la Section 10.5.21.

10.5.41. Redirect

Lorsqu'une page Web est déplacée, Redirect peut être utilisée pour mapper l'ancienne URL sur une autre URL. Le format est le suivant :

Redirect /<old-path>/<file-name> http://<current-domain>/<current-path>/<file-name>

Dans cet exemple, remplacez <old-path> par les informations de l'ancien-chemin vers <file-name> et <current-domain> et <current-path> par les informations du domaine et chemin actuels pour <file-name>.

Dans cet exemple, toute requête pour <file-name> à l'ancien emplacement est automatiquement redirigée vers le nouvel emplacement.

Pour obtenir des informations sur les techniques de redirection, utilisez le module mod_rewrite inclus dans le Serveur HTTP Apache. Pour de plus amples informations sur la configuration du module mod_rewrite, reportez-vous à la documentation d'Apache Software Foundation disponible en ligne à l'adresse suivante : http://httpd.apache.org/docs-2.0/mod/mod_rewrite.html.

10.5.42. IndexOptions

IndexOptions contrôle l'apparence des listes de répertoires générées par le serveur, en ajoutant entre autres, des icônes et des descriptions de fichier. Si Options Indexes est définie (voir la Section 10.5.22), le serveur Web génère une liste des répertoires lorsqu'il reçoit une requête HTTP pour un répertoire sans index.

Le serveur Web recherche tout d'abord, dans le répertoire demandé un fichier correspondant aux noms énumérés dans la directive DirectoryIndex (généralement, index.html). Si le serveur Web ne trouve aucun fichier index.html, le Serveur HTTP Apache génère une liste HTML des répertoires correspondant au répertoire demandé. L'apparence de cette liste de répertoires est contrôlée, en partie, par la directive IndexOptions.

La valeur de la configuration par défaut est FancyIndexing. Ainsi, un utilisateur peut réorganiser une liste de répertoires en cliquant sur les en-têtes des colonnes. En cliquant deux fois sur la même en-tête, le classement passera d'ordre ascendant à un ordre descendant. La valeur FancyIndexing affiche également différentes icônes selon les types de fichiers, et ce en fonction de leur extension.

Si l'option AddDescription est utilisée avec FancyIndexing, une brève description du fichier sera incluse dans les listes de répertoires générées par le serveur.

IndexOptions comprend un certain nombre d'autres paramètres qui peuvent être définis pour contrôler l'apparence des répertoires générés par le serveur. Les paramètres incluent IconHeight et IconWidth, pour faire en sorte que le serveur inclue des balises HTML HEIGHT et WIDTH pour les icônes dans les pages Web générées par le serveur ; IconsAreLinks, pour faire en sorte que les icônes agissent comme une partie de l'ancre du lien HTML, en même temps que le nom de fichier, et autres.

10.5.43. AddIconByEncoding

Cette directive nomme des icônes qui s'affichent par fichier avec codage MIME, dans des listes de répertoires générées par le serveur. Par exemple, le serveur Web est paramétré par défaut pour afficher l'icône compressed.gif à côté des fichiers codés MIME x-compress et x-gzip dans des listes de répertoire générées par le serveur.

10.5.44. AddIconByType

Cette directive nomme des icônes qui s'affichent à côté des fichiers avec des types MIME dans des listes de répertoire générées par serveur. Par exemple, le serveur est paramétré pour afficher l'icône text.gif à côté de fichiers avec un type MIME text, dans des listes de répertoire générées par le serveur.

10.5.45. AddIcon

AddIcon spécifie l'icône à afficher dans les listes de répertoire générées par le serveur pour des fichiers avec certaines extensions. Par exemple, le serveur Web est paramétré pour afficher l'icône binary.gif pour les fichiers portant les extensions .bin ou .exe.

10.5.46. DefaultIcon

DefaultIcon spécifie l'icône à afficher dans les listes de répertoire générées par le serveur pour les fichiers pour lesquels aucune autre icône n'est spécifiée. Le fichier image unknown.gif est la valeur par défaut.

10.5.47. AddDescription

Lors de l'utilisation de FancyIndexing comme paramètre de IndexOptions, la directive AddDescription peut être utilisée pour afficher des descriptions spécifiées par l'utilisateur pour certains fichiers ou pour certains types de fichiers dans des listes de répertoires générées par le serveur. La directive AddDescription prend en charge les fichiers de listes spécifiques, les expressions à caractères génériques ou les extensions de fichiers.

10.5.48. ReadmeName

ReadmeName nomme le fichier qui, s'il existe dans le répertoire, est ajouté à la fin des listes de répertoire générées par serveur. Le serveur Web commence par essayer d'inclure le fichier comme document HTML, puis essaie de l'inclure comme simple texte. Par défaut, ReadmeName est paramétré sur README.html.

10.5.49. HeaderName

HeaderName nomme le fichier qui, s'il existe dans le répertoire, est ajouté au début des listes de répertoire générées par serveur. Comme ReadmeName, le serveur essaie, si possible, de l'inclure sous la forme d'un document HTML ou, sinon, comme simple texte.

10.5.50. IndexIgnore

IndexIgnore affiche une liste d'extensions de fichier, de noms de fichier partiels, d'expressions contenant des caractères génériques ou de noms de fichiers complets. Le serveur Web n'inclura dans les listes de répertoire générées par serveur, aucun fichier correspondant à l'un de ces paramètres.

10.5.51. AddEncoding

AddEncoding nomme des extensions de nom de fichier qui devraient spécifier un type de codage particulier. Il est également possible d'utiliser AddEncoding pour donner l'instruction à certains navigateurs de décompresser certains fichiers lors de leur téléchargement.

10.5.52. AddLanguage

AddLanguage associe des extensions de nom de fichiers à des langues spécifiques. Cette directive est très utilisée pour le Serveur HTTP Apache (ou plusieurs) qui sert des contenus dans une multitude de langues et ce, en fonction de la préférence linguistique définie sur le navigateur client.

10.5.53. LanguagePriority

LanguagePriority permet de déterminer l'ordre de préférence des langues, au cas aucune préférence linguistique ne serait paramétrée sur le navigateur client.

10.5.54. AddType

Utilisez la directive AddType pour définir ou annuler un type de MIME par défaut et des paires d'extension de fichier. L'exemple de directive suivant indique à Serveur HTTP Apache de reconnaître l'extension de fichier .tgz :

AddType application/x-tar .tgz

10.5.55. AddHandler

AddHandler mappe des extensions de fichier sur des modules de commande spécifiques. Par exemple, le module de commande cgi-script peut être utilisé en association avec l'extension .cgi pour traiter automatiquement un fichier dont le nom se termine par .cgi comme un script CGI. L'exemple suivant est un exemple de directive AddHandler pour l'extension .cgi.

AddHandler cgi-script .cgi

Cette directive actives les scripts CGI en dehors du répertoire cgi-bin afin qu'ils puissent fonctionner dans tout répertoire se trouvant sur le serveur, ayant l'option ExecCGI au sein du conteneur de répertoires. Reportez-vous à la Section 10.5.21 pour obtenir plus d'informations sur la définition de l'option ExecCGI pour un répertoire.

Outre son utilisation avec les scripts CGI, la directive AddHandler sert aussi au traitement de fichiers HTML et imagemap analysés par le serveur.

10.5.56. Action

Action spécifie l'association d'un type MIME à un CGI, de sorte que toute requête d'un fichier de ce type déclenche l'exécution d'un script CGI particulier.

10.5.57. ErrorDocument

La directive ErrorDocument associe un code de réponse HTTP à un message ou à une URL qui sera renvoyé au client. Par défaut, le serveur Web renvoie un simple message d'erreur, habituellement obscur, lorsqu'une erreur se produit. La directive ErrorDocument force le serveur Web à renvoyer à la place un message personnalisé ou une page.

ImportantImportant
 

Pour que le message soit valide, il doit se trouver entre guillemets ["].

10.5.58. BrowserMatch

La directive BrowserMatch permet au serveur de définir des variables d'environnement ou de prendre des mesures appropriées en fonction du champ d'en-tête Utilisateur-Agent HTTP — qui identifie le type de navigateur du client. Par défaut, le serveur Web utilise BrowserMatch pour refuser des connexions à certains navigateurs présentant des problèmes connus de même que pour désactiver les keepalives et vidages d'en-tête HTTP pour les navigateurs ayant des problèmes avec ces actions.

10.5.59. Location

Les balises <Location> et </Location> permettent de créer un conteneur dans lequel un contrôle d'accès basé sur l'URL peut être spécifié.

Par exemple, pour permettre aux personnes se connectant depuis le domaine du serveur de consulter des rapports sur l'état du serveur, utilisez les directives suivantes :

<Location /server-status>
    SetHandler server-status 
    Order deny,allow
    Deny from all 
    Allow from <.example.com>
</Location>

Remplacez <.example.com> par le nom de domaine de second niveau du serveur Web.

Pour fournir des rapports de configuration de serveur (y compris des modules installés et des directives de configuration) en réponse à des requêtes en provenance de votre domaine, utilisez les directives suivantes :

<Location /server-info>
    SetHandler server-info
    Order deny,allow
    Deny from all
    Allow from <.example.com>
</Location>

Ici encore, remplacez <.example.com> par le nom de domaine de second niveau du serveur Web.

10.5.60. ProxyRequests

Pour configurer le Serveur HTTP Apache de manière à ce qu'il fonctionne comme un serveur Proxy, supprimez le symbole dièse (#) placé au début de la ligne <IfModule mod_proxy.c>, de la directive ProxyRequests et de chaque figurant dans la strophe <Proxy>. Paramétrez la directive ProxyRequests sur On et définissez les domaines devant avoir accès au serveur dans la directive Allow from figurant dans la strophe <Proxy>.

10.5.61. Proxy

Les balises <Proxy *> et </Proxy> permettent de créer un conteneur qui renferme un groupe de directives de configuration devant s'appliquer seulement au serveur proxy. À l'intérieur des balises <Proxy>, il est possible d'utiliser de nombreuses directives s'appliquant à un répertoire.

10.5.62. ProxyVia

La commande ProxyVia contrôle si une ligne d'en-tête HTTP Via : est envoyée en même temps que les demandes ou les réponses transitant par le serveur proxy Apache. L'en-tête Via : indique le nom d'hôte si ProxyVia a pour valeur On ; spécifie le nom d'hôte et la version du Serveur HTTP Apache si la valeur retenue est Full ; transfère toutes les lignes Via : inchangées si la valeur est Off et supprime les lignes Via : si la valeur est Block.

10.5.63. Directives cache

Un certain nombre de directives cache commentées sont fournies dans le fichier de configuration par défaut du Serveur HTTP Apache. Dans la plupart des situations, il suffit de supprimer le commentaire en retirant le symbole dièse (#) placé au début de la ligne. Toutefois, ci-après figure une liste de certaines des directives associées au cache ayant une grande importance :

Ci-dessous figure une liste des autres directives courantes associées au cache.

10.5.64. NameVirtualHost

La directive NameVirtualHost associe une adresse IP à un numéro de port, si nécessaire, pour tout hôte virtuel portant un nom. La configuration d'hôtes virtuels nommés permet à un Serveur HTTP Apache de servir différents domaines sans devoir pour ce faire utiliser de multiples adresses IP.

NoteRemarque
 

L'utilisation de tout hôte virtuel nommé fonctionne seulement avec des connexions HTTP non-sécurisées. Si vous devez employer des hôtes virtuels avec un serveur sécurisé, utilisez plutôt des hôtes virtuels basés sur l'adresse IP.

Afin d'activer des hôtes virtuels basés sur le nom, supprimez le caractère de commentaire de la directive de configuration NameVirtualHost et ajoutez l'adresse IP correcte. Ajoutez ensuite des conteneurs VirtualHost supplémentaires pour chaque hôte virtuel.

10.5.65. VirtualHost

Des balises <VirtualHost> et </VirtualHost> permettent de créer un conteneur soulignant les caractéristiques d'un hôte virtuel. Le conteneur VirtualHost accepte la plupart des directives de configuration.

Un conteneur VirtualHost commenté est fourni dans httpd.conf et illustre l'ensemble minimum de directives de configuration nécessaire pour chaque hôte virtuel. Reportez-vous à la Section 10.8 pour obtenir de plus amples informations sur les hôtes virtuels.

NoteRemarque
 

Le conteneur d'hôte virtuel SSL par défaut a été transféré dans le fichier /etc/httpd/conf.d/ssl.conf.

10.5.66. Directives de configuration SSL

Les directives figurant dans le fichier /etc/httpd/conf.d/ssl.conf peuvent être configurées pour permettre des communications Web sécurisées à l'aide de SSL et TLS.

10.5.66.1. SetEnvIf

La directive SetEnvIf permet de régler des variables d'environnement en fonction des en-têtes des connexions entrantes. Ce n'est pas seulement une directive SSL, bien qu'elle soit présente dans le fichier /etc/httpd/conf.d/ssl.conf fourni. Elle sert à désactiver la fonction keep-alive HTTP et à autoriser SSL à fermer la connexion sans générer d'alerte de notification de fermeture de la part du navigateur client. Ce paramètre est nécessaire pour certains navigateurs qui n'interrompent pas la connexion SSL avec une grande fiabilité.

Pour obtenir de plus amples informations sur les autres directives dans le fichier de configuration SSL, dirigez un navigateur Web sur l'une des adresses suivantes :

Pour vous informer sur l'installation d'un serveur sécurisé HTTP Apache, reportez-vous au chapitre intitulé Configuration du serveur sécurisé HTTP Apache du Guide d'administration système de Red Hat Enterprise Linux.

NoteRemarque
 

Les directives SSL, comme elles sont installées, sont configurées de manière appropriée pour la plupart des situations. Faîtes très attention lors de la modification des directives du serveur HTTP Apache car une mauvaise configuration peut être à l'origine de brèches de sécurité, rendant votre système vulnérable.