Le fichier de configuration du Serveur HTTP Apache est /etc/httpd/conf/httpd.conf. Dans le fichier httpd.conf figurent de nombreux commentaires qui rendent sont contenu très explicite. La configuration par défaut fonctionne dans la plupart des situations ; cependant, il est important de bien connaître certaines des options de configuration les plus importantes.
![]() | Avertissement |
---|---|
Avec l'arrivée du Serveur HTTP Apache 2.0, de nombreuses options de configuration ont changé. Pour toute information sur la migration d'un fichier de configuration de la version 1.3 vers le nouveau format, reportez-vous à la Section 10.2. |
Lors de la configuration du 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 une copie de sauvegarde du fichier original. Ainsi, si vous commettez une erreur lors de la modification du fichier de configuration, vous pourrez toujours utiliser la copie de sauvegarde pour résoudre d'éventuels problèmes.
Si une erreur est commise et que le serveur Web ne fonctionne pas correctement, passez d'abord en revue les passages modifiés du fichier httpd.conf afin de corriger toute faute de frappe.
Consultez ensuite le journal d'erreurs du serveur Web, /var/log/httpd/error_log. Selon votre expérience, le journal d'erreurs peut paraître quelque peu difficile à interpréter. Ceci étant, les dernières entrées du journal d'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 obtenir de plus amples informations, reportez-vous à la documentation de l'organisation Apache disponible en ligne à l'adresse suivante : http://httpd.apache.org/docs-2.0/.
Pour obtenir davantage d'informations sur les directives mod_ssl, reportez-vous à la documentation disponible en ligne à l'adresse suivante : http://httpd.apache.org/docs-2.0/mod/mod_ssl.html.
Le répertoire ServerRoot est le répertoire de niveau supérieur contenant les fichiers du serveur. Par défaut, la directive ServerRoot est paramétrée sur "/etc/httpd" aussi bien pour le serveur sécurisé que pour le serveur non-sécurisé.
PidFile est le nom du fichier dans lequel le serveur enregistre son identifiant de processus (PID). Le PID par défaut est /var/run/httpd.pid.
Timeout définit la durée, exprimée en secondes, pendant laquelle le serveur attend des réceptions et des émissions pendant les communications. La valeur de Timeout est paramétrée sur 300 secondes par défaut, ce qui est approprié pour la plupart des situations.
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é des ressources dont le serveur est doté.
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é, il 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 sur le point d'atteindre le maximum de processus enfants.
Cette directive définit le nombre maximum de requêtes autorisées par connexion persistante. L'organisation Apache Project recommande l'utilisation d'un paramétrage élevé, ce qui entraîne une amélioration des performances du serveur. Par défaut, la valeur de MaxKeepAliveRequests paramétrée sur 100 est approprié pour la plupart des situations.
KeepAliveTimeout définit la durée exprimée en secondes pendant laquelle le serveur attend 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 à la directive KeepAliveTimeout est de 15 secondes.
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 (
Pour obtenir de plus amples informations sur les modules du Serveur HTTP Apache, reportez-vous à la Section 10.7.
Comme l'explique la Section 10.2.1.2, sous le Serveur HTTP Apache 2.0, la responsabilité de gérer les caractéristiques de server-pool est octroyée à un groupe de modules appelé MPM. Les caractéristiques de server-pool sont différentes selon le MPM spécifique utilisé. C'est la raison pour laquelle un conteneur IfModule est nécessaire pour définir le server-pool du MPM qui est utilisé.
Par défaut, le Serveur HTTP Apache 2.0 définit le server-pool aussi bien pour le MPM prefork que le MPM worker.
Ci-dessous figure une liste des directives figurant dans les conteneurs de server-pool spécifiques aux MPM.
La directive StartServers définit le nombre de processus serveur créés au démarrage. Étant donné que le serveur Web supprime et crée dynamiquement des processus serveur en fonction de la charge du trafic, il n'est pas nécessaire de modifier ce paramètre. Le serveur Web est configuré de manière à lancer 8 processus serveur au démarrage pour le MPM prefork et 2 pour le MPM worker.
MaxRequestsPerChild définit le nombre total de requêtes que chaque processus serveur enfant sert avant de s'arrêter. 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 4000 et 0 pour le MPM worker.
MaxClients fixe une limite au nombre total de processus serveur ou de clients connectés simultanément qui peuvent 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.
Ces valeurs ne sont pas seulement utilisées avec le MPM prefork. Elles ajustent la façon selon laquelle le Serveur HTTP Apache s'adapte dynamiquement à la charge reçue en maintenant un nombre approprié de processus serveur de secours déterminiés en fonction du nombre de requêtes entrantes. Le serveur vérifie le nombre de serveurs attendant une requête et en supprime certains s'ils sont plus nombreux que MaxSpareServers ou en crée d'autres 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 être adaptés à presque toutes les situations. Ne donnez pas à MinSpareServers une valeur très élevée car un tel choix se traduira en une charge de traitement importante sur le serveur, même si le trafic est faible.
Ces valeurs ne sont pas seulement utilisées avec le MPM worker. Elles ajustent la façon selon laquelle le Serveur HTTP Apache s'adapte dynamiquement à la charge reçue en maintenant un nombre approprié de processus serveur de secour déterminés 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 certains s'ils sont plus nombreux que MaxSpareThreads ou en crée d'autres 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 être appropriés à la plupart des situations. La valeur de MaxSpareThreads doit être supérieure ou égale à la somme de MinSpareThreads et de ThreadsPerChild, dans le cas contraire, le Serveur HTTP Apache la corrigera automatiquement.
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 les communications Web non-sécurisées sur le port 80et (dans /etc/httpd/conf.d/ssl.conf définissant tout serveur sécurisé) les communications Web sécurisées sur le port 443.
Si le Serveur HTTP Apache est configuré pour écouter l'activité sur un port dont le numéro est inférieur à 1024, seul le super-utilisateur peut le 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.
Include permet d'inclure d'autres fichiers de configuration au moment de l'exécution.
Le chemin d'accès vers ces fichiers de configuration peut être absolu ou relatif par rapport au ServerRoot.
![]() | Important | |
---|---|---|
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 :
|
LoadModule est utilisée pour charger des modules DSO (de l'anglais Dynamic Shared Object, objet partagé dynamiquement). Pour obtenir davantage d'informations sur la prise en charge 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 du 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 la prise en charge DSO du Serveur HTTP Apache 2.0.
La directive ExtendedStatus spécifie si Apache doit produire des informations élémentaires (off) ou détaillées (on) sur l'état des serveurs, lorsque le gestionnaire de signal server-status est appelé. Ce dernier est appelé à l'aide des balises Location. Pour obtenir davantage d'informations sur l'appel de server-status, reportez-vous à la Section 10.5.60.
Les balises IfDefine entourent des directives de configuration. Elles s'appliquent si résultat du "test" spécifié dans la balise IfDefine est vrai. Les directives sont ignorées si le résultat du 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.
La directive SuexecUserGroup figurant dans le module mod_suexec, permet de spécifier les privilèges d'exécution des programmes CGI qui s'applique à l'utilisateur et au groupe. Des requêtes non-CGI continuent à être traitées en fonction de l'utilisateur et du groupe spécifié dans les directives User et Group.
![]() | Remarque |
---|---|
La directive SuexecUserGroup remplace la configuration du Serveur HTTP Apache 1.3 configuration qui utilisait les directives User (utilisateur) et Group (Groupe) au sein de la configuration des sections VirtualHosts (Hôtes virtuels). |
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 auxquels cet utilisateur n'aura pas accès seront également inaccessibles aux clients se connectant au Serveur HTTP Apache.
La valeur par défaut donnée à User est apache.
Cette directive a été supprimée pour la configuration des hôtes virtuels.
![]() | Remarque |
---|---|
Pour des raisons de sécurité, le Serveur HTTP Apache n'est pas exécuté en tant que super-utilisateur. |
Spécifie le nom de groupe des processus du Serveur HTTP Apache.
Cette directive a été supprimée pour la configuration des hôtes virtuels.
La valeur par défaut attribuée à Group est apache.
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. Une fois cette valeur déterminée, créez un alias pour Webmaster établi au nom de la personne responsable du serveur Web dans /etc/aliases et exécutez /usr/bin/newaliases.
ServerName permet de 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 figurent bien dans le fichier /etc/hosts.
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 emploie à la place la valeur utilisée par 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.
DocumentRoot est le répertoire contenant la plupart des fichiers HTML qui seront servis en réponse aux requêtes. Le défaut de 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, il se peut que le serveur reçoive 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 le serveur Web sécurisé et par le serveur Web non-sécurisé, reportez-vous à la Section 10.8.
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 de 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.23) et AllowOverride (voir la Section 10.5.24). Sous une telle 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'arborescence de répertoires, de manière à ce que le Serveur HTTP Apache puisse avoir accès à des fichiers placés dans ce dernier.
Le répertoire conteneur 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.41 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, il est nécessaire d'enlever le symbole de commanetaire présent dans la directive AddHandler afin de permettre l'identification des fichiers ayant une extension .cgi en tant que scripts CGI. Reportez-vous à la Section 10.5.56 pour obtenir des instructions sur le paramétrage de AddHandler.
Pour que cette opération se déroule parfaitement, il est nécessaire de définir les permissions pour les scripts CGI et pour le chemin d'accès complet vers les scripts en tant que 0755.
La directive Options contrôle les fonctionnalités spécifiques du serveur qui sont disponibles dans un répertoire particulier. Par exemple, en vertu des paramètres restrictifs spécifiés pour le répertoire root, Options est réglée uniquement sur FollowSymLinks. Aucune fonctionnalité 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.
![]() | Remarque |
---|---|
Les déclarations Options de la section de configuration du serveur principal doivent être copiées individuellement dans chaque conteneur VirtualHost. Reportez-vous à la Section 10.5.65 pour obtenir de plus amples informations sur le sujet. |
La directive AllowOverride définit si des Options peuvent être annulées par les instructions présente dans un fichier .htaccess. Par défaut, aussi bien le répertoire racine que le répertoire DocumentRoot sont paramétrés pour ne permettre aucune annulation via .htaccess.
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 s'appliquant au répertoire DocumentRoot.
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é afin d'autoriser les requêtes (Allow) de quiconque (all), de la sorte, tout le monde peut y accéder.
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.
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, il se peut que le serveur reçoive la requête suivante :
http://example.com/~username/foo.html |
Le serveur rechercherait alorsle 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 vers les répertoires personnels des utilisateurs peut être différent).
Assurez-vous que les autorisations relatives aux répertoires personnels des utilisateurs sont correctement définies. Les répertoires personnels des utilisateurs doivent avoir des permissions équivalentes à 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 au moins avoir un valeur équivalente à 0644.
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 obtient 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 de DirectoryIndex est le type de topologie index.html et 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 des deux 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 sous-répertoires et fichiers contenus dans le répertoire (à moins que la fonctionnalité de listage des répertoires ne soit desactivée).
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 établit un contrôle d'accès sur tout fichier commençant par .ht. Ces directives refusent l'accès par le Web à tous les fichiers .htaccess (ou d'autres commençant par .ht) pour des raisons de sécurité.
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 à une entrée saisie par le demandeur). Si la valeur de CacheNegotiatedDocs est paramétrée sur on, cette fonctionnalité est désactivée et les serveurs proxy seront alors autorisés à mettre en cache de tels documents.
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 obtenir de plus amples informations sur AddType, reportez-vous à la Section 10.5.55.
DefaultType définit un type de contenu par défaut pour le serveur Web devant être utilisé pour des documents dont les types MIME ne peuvent pas être déterminés. La valeur par défaut est text/plain.
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 suppose que le serveur établisse une ou plusieurs connexions avec un serveur DNS, rallongeant ainsi la durée des opérations de traitement. Si HostnameLookups est paramétrée sur double, le serveur établira une recherche DNS double inversée, rallongeant par là-même encore plus la durée des opérations de traitement.
Afin de conserver des ressources sur le serveur, la valeur par défaut donnée à HostnameLookups est off.
Si des noms d'hôtes sont nécessaires dans les fichiers journaux de serveurs, 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 serveurs Web.
ErrorLog spécifie le fichier dans lequel sont journalisées les erreurs concernant les serveurs. La valeur par défaut pour cette directive est /var/log/httpd/error_log.
LogLevel définit le niveau de détail avec lequel les messages d'erreur devraient être enregistrés dans les journaux d'erreurs. Les valeurs possibles 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 donnée à LogLevel est warn.
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.38).
Ci-dessous figurent les options de format s'appliquant si la valeur de la directive CustomLog est combined :
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.
Option non-utilisée. Un tiret (
Affiche l'identifiant de l'utilisateur enregistré, si l'authentification était nécessaire. Cette option n'étant généralement pas utilisée, dans le fichier journal, un tiret (
Enregistre la date et l'heure de la requête.
Enregistre la chaîne de demandes telle qu'elle a été envoyée depuis le navigateur ou le client.
Enregistre le code d'état HTTP renvoyé à l'hôte client.
Enregistre la taille du document.
Enregistre l'URL de la page Web qui a renvoyé l'hôte client au serveur Web.
Enregistre le type de navigateur Web effectuant la requête.
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 de CustomLog est le format du fichier journal combined illustré ci-dessous :
remotehost rfc931 user date "request" status bytes referrer user-agent |
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'erreurs renvoyés aux clients. La valeur par défaut donnée à 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.
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 ne figure pas dans DocumentRoot.
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 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, qui est désigné par la directive ScriptAlias. Ce répertoire, connu sous le nom cgi-bin, a /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 informations sur la manière de procéder, reportez-vous à la Section 10.5.56 et à la Section 10.5.22.
Lorsqu'une page Web est déplacée, Redirect peut être utilisée pour mapper l'ancienne URL vers une autre URL. Le format est le suivant :
Redirect /<old-path>/<file-name> http://<current-domain>/<current-path>/<file-name> |
Dans cet exemple, remplacez d'une part <old-path> par les informations de l'ancien-chemin vers <file-name> et d'autre part <current-domain> et <current-path> par les informations relatives au domaine et au 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 de l'organisation Apache Software Foundation disponible en ligne à l'adresse suivante : http://httpd.apache.org/docs-2.0/mod/mod_rewrite.html.
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.23), 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 spécifié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'un 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 de paramètres supplémentaires pouvant être utilisés pour contrôler l'apparence des répertoires créés par le serveur. Les paramètres IconHeight et IconWidth nécessitent que le serveur des balises HTML HEIGHT et WIDTH pour les icônes contenues dans les pages Web générées par le serveur. Le paramètre IconsAreLinks associe l'icône graphique à l'ancre du lien HTML, qui contient la cible du lien URL.
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épertoires générées par le serveur.
Cette directive nomme des icônes qui s'affichent à côté des fichiers avec des types MIME dans des listes de répertoires 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épertoires générées par le serveur.
AddIcon spécifie l'icône à afficher dans les listes de répertoires 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.
DefaultIcon spécifie l'icône à afficher dans les listes de répertoires 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.
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.
ReadmeName nomme le fichier qui, s'il existe dans le répertoire, est ajouté à la fin des listes de répertoires générées par serveur. Le serveur Web commence par essayer d'inclure le fichier comme un document HTML, puis essaie de l'inclure comme un simple document texte. Par défaut, ReadmeName est paramétré sur README.html.
HeaderName nomme le fichier qui, s'il existe dans le répertoire, est ajouté au début des listes de répertoires 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.
IndexIgnore affiche une liste d'extensions de fichiers, de noms de fichiers 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épertoires générées par le serveur, aucun fichier correspondant à l'un de ces paramètres.
AddEncoding nomme des extensions de noms de fichiers 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.
AddLanguage associe des extensions de noms 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.
LanguagePriority permet de déterminer l'ordre de préférence des langues, au cas où aucune préférence linguistique ne serait paramétrée sur le navigateur client.
Utilisez la directive AddType pour définir ou annuler un type de MIME par défaut et des paires d'extensions de fichiers. L'exemple de directive suivant indique à Serveur HTTP Apache de reconnaître l'extension de fichier .tgz :
AddType application/x-tar .tgz |
AddHandler mappe des extensions de fichiers sur des gestionnaires de signaux 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 active les scripts CGI en dehors du répertoire cgi-bin afin qu'ils puissent fonctionner dans tout répertoire se trouvant sur le serveur dont l'option ExecCGI figure au sein du conteneur de répertoires. Reportez-vous à la Section 10.5.22 pour obtenir davantage 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.
Action spécifie l'association d'un type de contenu MIME à un script CGI de sorte que lorsqu' un fichier de ce type de support est demandé, un script CGI particulier est exécuté.
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 une page ou un message personnalisés.
![]() | Important |
---|---|
Pour que le message soit valide, il doit se trouver entre guillemets |
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 (User-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 les activités keepalive et vidages d'en-têtes HTTP pour les navigateurs ayant des problèmes avec ces actions.
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 des serveurs (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.
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 ligne figurant dans la section <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 section <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.
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. Ci-après figure une liste de certaines des directives associées au cache ayant une grande importance :
CacheEnable — Spécifie si le cache est un disque, une mémoire ou un cache de description de fichiers. Par défaut, CacheEnable configure un cache de disque pour les URL au niveau de ou au-dessous de /.
CacheRoot — Définit le nom du répertoire qui contiendra les fichiers mis en cache. La valeur par défaut donnée à CacheRoot est le répertoire /var/httpd/proxy/.
CacheSize — Définit la quantité d'espace en kilo-octets (Ko) que le cache peut utiliser. La valeur par défaut pour CacheSize est 5 Ko.
Ci-dessous figure une liste des autres directives courantes associées au cache.
CacheMaxExpire — Définit la durée pendant laquelle les documents HTML mis en cache seront conservés (sans rechargement à partir du serveur Web duquel ils proviennent). La valeur par défaut est de 24 heures (86400 secondes).
CacheLastModifiedFactor — Paramètre la création d'une date d'expiration pour un document qui a été reçu depuis le serveur d'origine sans date d'expiration définie. La valeur par défaut pour CacheLastModifiedFactor est réglée sur 0.1, ce qui signifie que la date d'expiration de tout document de ce type est égale à un dixième de la durée écoulée depuis la dernière modification du document.
CacheDefaultExpire — Détermine la durée exprimée en heures, de l'expiration d'un document qui a été reçu à l'aide d'un protocole ne prenant pas en charge les délais d'expiration. La valeur par défaut est réglée sur 1 heure (3600 secondes).
NoProxy — Établit une liste de sous-réseaux, d'adresses IP, de domaines ou d'hôtes séparés par des espaces dont le contenu n'est pas mis en cache. Ce paramètre est le plus utile sur les sites Intranet.
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.
![]() | Remarque |
---|---|
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 l'hébergement d'hôtes virtuels basés sur le nom, supprimez le symbole de commentaire figurant dans la directive de configuration NameVirtualHost et ajoutez la bonne adresse IP. Ajoutez ensuite des conteneurs VirtualHost supplémentaires pour chaque hôte virtuel, en fonction des besoins de votre configuration.
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 le groupe minimum de directives de configuration nécessaires pour chaque hôte virtuel. Reportez-vous à la Section 10.8 pour obtenir de plus amples informations sur les hôtes virtuels.
![]() | Remarque |
---|---|
Le conteneur d'hôtes virtuels SSL par défaut se trouve désormais dans le fichier /etc/httpd/conf.d/ssl.conf. |
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.
La directive SetEnvIf permet de régler des variables d'environnement en fonction des en-têtes des connexions entrantes. Il ne s'agit pas seulement d'une directive SSL, bien qu'elle soit présente dans le fichier /etc/httpd/conf.d/ssl.conf fourni. Dans le présent contexte, elle sert à désactiver la fonction keep-alive HTTP et à autoriser SSL à fermer la connexion sans générer 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 d'autres directives présentes dans le fichier de configuration SSL, consultez les documents disponibles aux 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.
![]() | Remarque |
---|---|
Dans la plupart des cas, les directives SSL sont configurées de manière appropriée lors de l'installation de Red Hat Enterprise Linux. Faites très attention lors de la modification des directives du serveur sécurisé HTTP Apache car une mauvaise configuration peut être à l'origine de brèches de sécurité, rendant tout système vulnérable. |
Précédent | Sommaire | Suivant |
Démarrage et arrêt de httpd | Niveau supérieur | Modules par défaut |