Le fichier de configuration du Serveur HTTP Apache est /etc/httpd/conf/httpd.conf. Le fichier httpd.conf est bien commenté et parle de lui-même. 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.
![]() | Avertissement |
---|---|
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 à Section 10.2 Migration de fichiers de configuration Serveur HTTP Apache 1.3. |
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 Démarrage et arrêthttpd.
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, si vous venez de rencontrer un problème, les dernières entrées du journal des erreurs devraient fournir certaines indications sur ce qui s'est produit.
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 fournie au format HTML à l'adresse http://localhost/manual/ ou 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 fournie au format HTML à l'adresse http://localhost/mod/mod_ssl.html ou 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. Tant le serveur sécurisé que le serveur non-sécurisé établissent la directive ServerRoot à "/etc/httpd".
The ScoreBoardFile stocke les informations internes au processus serveur utilisées pour la communication entre le processus serveur parent et ses processus enfants. Red Hat Linux utilise la mémoire partagée pour stocker ScoreBoardFile, la valeur par défaut /etc/httpd/logs/apache_runtime_status n'est utilisée qu'en cas de secours.
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.
Timeout définit, en secondes, la durée pendant laquelle le serveur attend des réceptions et des émissions en cours de communication. Plus spécifiquement, Timeout définit la durée pendant laquelle le serveur attend de recevoir une requête GET, la durée pendant laquelle il attend de recevoir des paquets TCP sur une requête POST ou PUT et la durée pendant laquelle il attend entre des ACK répondant aux paquets TCP. La valeur de Timeout est réglée à 300 secondes par défaut, ce qui est approprié dans la plupart des cas.
KeepAlive définit si votre serveur autorisera plus d'un requête par connexion; cette directive peut servir à empêcher un client particulier d'utiliser une trop grande quantité des 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 un maximum de processus enfants. Dans ce cas, les serveur sera considérablement ralenti. Si la directive Keepalive est activée, il est recommandé de donner à KeepAliveTimeout une valeur basse (reportez-vous à Section 10.5.8 KeepAliveTimeout 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 fichier indique si le serveur est à cours de processus enfants.
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.
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.
Le Serveur HTTP Apache s'adapte de façon dynamique à la charge reçue en maintenant un nombre de processus serveur de rechange approprié en fonction du trafic. 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 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.
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 huit processus serveur au démarrage.
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. Il n'est pas recommandé d'attribuer à MaxClients une valeur supérieure à 256.
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 pour MaxRequestsPerChild pour le serveur est 1000.
The 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, il doit être lancé en tant que super-utilisateur. En revanche, pour les ports dont le numéro est égal ou supérieur à 1024, httpd peut être lancé 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 du lancement.
Le chemin d'accès de ces fichiers de configuration peut être absolu ou relatif 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é 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 à Section 10.7 Ajout de modules. 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 Prise en charge de DSO ('Dynamic Shared Object') pour plus d'informations sur le support DSO du Serveur HTTP Apache 2.0.
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 à Section 10.5.63 Location.
Les balises <IfDefine> et </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.
Par défaut, les balises <IfDefine HAVE_SSL> entourent les balises d'hôtes virtuels pour votre serveur sécurisé. Les balises <IfDefine HAVE_SSL> entourent également les directives LoadModule et AddModule pour ssl_module.
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.
![]() | Remarque |
---|---|
Pour des raisons de sécurité, le Serveur HTTP Apache refuse d'être exécuté en tant que super-utilisateur (ou root). user. |
Spécifie le nom de groupe des processus du Serveur HTTP Apache.
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. 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.
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 de l'ordinateur 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.
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.
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 se 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 à Section 10.8 Virtual Hosts.
Les balises <Directory /path/to/directory> et </Directory> créent ce qu'on appelle un conteneur sont utilisées 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 'root' (/), à l'aide des directives Options (voir Section 10.5.25 Options) et AllowOverride (voir Section 10.5.26 AllowOverride). 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 à Section 10.5.44 ScriptAlias 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 à Section 10.5.59 AddHandler 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.
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.
![]() | Remarque |
---|---|
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.69 VirtualHost pour obtenir de plus amples informations sur les conteneurs VirtualHost. |
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 super-utilisateur que DocumentRoot sont réglés pour interdire les invalidations .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 pour votre répertoire DocumentRoot.
Allow spécifie le demandeur pouvant accéder à un répertoire donné. Le demandeur 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.
Deny fonctionne selon le même principe que Allow, sauf que cette fois-ci, l'accès est refusé à un demandeur donné. Le DocumentRoot n'est pas configuré par défaut pour refuser (Deny) des requêtes provenant d'un demandeur 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, le serveur pourrait recevoir la requête suivante:
http://example.com/~nom-d'utilisateur/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). Les fichiers qui seront servis dans les répertoires public_html des utilisateurs doivent être définis sur au moins 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://example/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).
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é.
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é sur on, cette fonction est désactivée et les serveurs proxy seront alors autorisés à mettre en cache des 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 plus d'informations sur AddType, reportez-vous à Section 10.5.58 AddType.
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.
Les balises <IfModule> et
</IfModule> créent un conteneur conditionnel
dontles directives ne sont activés 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é. Ou, si un point d'exclamation (
Pour de plus amples informations sur les modules du Serveur HTTP Apache, reportez-vous à Section 10.7 Ajout de modules.
HostnameLookups peut être paramétrée sur on, off ou double. Si HostnameLookups est paramétrée sur on, 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 DNS, rallongeant la durée des opérations. Si HostnameLookups être 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.
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.
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.
La directive LogFormat détermine le format devant s'appliquer aux fichiers journaux des différents serveurs Web. Le LogFormat utilisé dépend en fait des paramètres attribués dans la directive CustomLog (voir Section 10.5.41 CustomLog).
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 (
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
(
Enregistre la date et l'heure de la requête.
Enregistre la chaîne de demandes telle qu'elle est venue du navigateur ou du 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 lie à la demande courante de l'hôte client.
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 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 |
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 être off ou EMail. La valeur EMail, ajoute une référence 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épertoires 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.
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 à Section 10.5.59 AddHandler et à la Section 10.5.24 Directory.
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 /<ancien-chemin>/<nom-de-fichier> http://<domaine-actuel>/<chemin-actuel>/<nom-de-fichier> |
Dans cet exemple, remplacez <ancien-chemin> par les informations de l'ancien-chemin vers <nom-de-fichier> et <domaine-actuel> et <chemin-actuel> par les informations du domaine et chemin actuels pour <nom-de-fichier>.
Dans cet exemple, toute requête pour <nom-de-fichier> à 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 à http://httpd.apache.org/docs-2.0/mod/mod_rewrite.html.
IndexOptions contrôle l'apparence des listes de répertoire 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.25 Options), 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 fonctions 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.
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.
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.
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.
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.
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épertoire 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 ('wildcards') 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é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.
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.
IndexIgnore affiche une liste d'extensions de fichier, de noms de fichier partiels, d'expressions contenant des caractères génériques ('wildcards') 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.
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.
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.
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.
Utilisez la directive AddType pour définir des paires de type MIME et d'extension de fichier. Par exemple, avec PHP4, utilisez la directive AddType pour permettre au serveur Web de reconnaître les fichiers portant des extensions PHP (.php4, .php3 .phtml .php) comme des types MIME PHP. La directive ci-dessous indique au Serveur HTTP Apache de reconnaître l'extension de fichier .shtml:
AddType text/html .shtml AddHandler server-parsed .shtml |
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.24 Directory 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 HTLM et imagemap analysés par le serveur.
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.
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 d'erreur se produit. Au lieu de ce paramétrage par défaut, il est possible d'utiliser la directive ErrorDocument pour forcer le serveur Web à renvoyer à la place, un message personnalisé ou à rediriger le client vers une URL locale ou externe.
![]() | 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 — 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.
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.
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> pour charger le module mod_proxy et paramétrez la directive ProxyRequests sur On.
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.
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.
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 (
CacheRoot — définit le nom du répertoire qui contiendra les fichiers mis en cache. La valeur par défaut pour 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.
CacheGcInterval — définit la durée en heures devant s'écouler avant que les fichiers mis en cache ne soient supprimées. La valeur par défaut pour CacheGcInterval est 4 heures.
CacheMaxExpire — définit la durée pendant laquelle les documents HTML mis en cache seront conservés (sans rechargement à partir du serveur Web dont ils proviennent). La valeur par défaut est de 24 heures.
CacheLastModifiedFactor — paramètre la création d'une date d'expiration pour un document qui a été reçu du serveur d'origine sans date d'expiration définie. La valeur par défaut pour CacheLastModifiedFactor est établie à 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 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 établie à 1 heure.
NoCache — établit une liste d'hôtes dont le contenu n'est pas mis en cache.
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 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.
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 ensemble de conteneurs VirtualHost commentés 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 Virtual Hosts pour obtenir de plus amples informations sur les hôtes virtuels.
![]() | Remarque |
---|---|
Tous les contextes des hôtes virtuels SSL ont été transférés dans le fichier /etc/httpd/conf.d/ssl.conf. |
Les directives SSL figurant dans le fichier /etc/httpd/conf.d/ssl.conf de votre serveur sont incluses 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 sécurisées entrantes. dans les demandes. 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 directives SSL, à l'aide d'un navigateur, rendez-vous à l'une des adresses suivantes:
http://localhost/manual/mod/mod_ssl.html
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 dans Guide de personnalisation de Red Hat Linux.
![]() | Remarque |
---|---|
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. |