Fichiers de configuration


Principaux fichiers de configuration

Modules liés

mod_mime
Directives liées

AccessConfig
<IfDefine>
Include
ResourceConfig
TypesConfig

Apache se configure en plaçant des directives dans des fichiers textes de configuration. Le principal fichier de configuration est généralement appelé httpd.conf. L'emplacement de ce fichier est fixé à la compilation, mais peut être redéfini en utilisant l'option de ligne de commande -f. Ceratins sites possèdent également des fichiers srm.conf et access.conf pour des raisons historiques. De plus, d'autres fichiers de configuration peuvent être ajoutés en utilisant la directive Include. Les directives peuvent être placées dans n'importe quel fichier. Les modifications dans le principal fichier de configuration ne sont prises en compte qu'au démarrage ou au redémarrage d'Apache.

Une nouveauté de la version 1.3.13 d'Apache est la possibilité qu'un fichier de configuration soit en fait un répertoire. Dans ce cas Apache, lira tous les fichiers et sous répertoires et les traitera comme fichier de configuration. Une utilisation possible de cette fonctionnalité est de pouvoir ajouter des hôtes virtuels en créant des fichiers de configuration pour chaque hôte, et de les placer dans le répertoire de configuration. Ainsi, vous pouvez ajouter, ou retirer des hôtes virtuels sans avoir à éditer de fichiers, mais simplement en ajoutant ou supprimant un fichier. Cela permet d'automatiser plus facilement ce genre de traitement.

Le serveur lit également un fichier décrivant les types de contenu MIME ; le nom de ce fichier est défini par la directive TypesConfig et est par défaut mime.types.


Syntaxe des fichiers de configuration

Les fichiers de configurations contiennent au plus une directive par ligne. Le caractère "\" peut être utilisé à la fin d'une ligne pour indiquer que la directive se poursuit sur la ligne suivante. Il ne doit pas y avoir d'autres caractères ou d'espace entre la caractère "\" et la fin de la ligne.

Dans les fichiers de configuration, l'écriture des noms des directives n'est pas sensible à la casse, mais les arguments des directives le sont généralement. Les lignes blanches et les espaces précédant une directive sont ignorés. Les commentaires ne doivent pas être inclus sur la même ligne qu'une directive. Les lignes commençant par le caractère dièse "#" sont traités comme des commentaires et sont ignorés ; vous pouvez les utiliser pour indenter les directives et rendre leur lecture plus facile.

Vous pouvez vérifier la syntaxe de vos fichiers de configuration en utilisant soit apachectl configtest soit l'option de ligne de commande -t.


Modules

Modules liés

mod_so
Directives liées

AddModule
ClearModuleList
<IfModule>
LoadModule

Apache est un serveur modulaire. Cela implique que seules les fonctions de base sont incluses dans le noyau du serveur. Les fonctionnalités plus avancées sont disponibles grâce aux modules qui peuvent être chargés dans Apache. Par défaut, un ensemble de modules de base sont inclus à la compilation. Si le serveur est compilé pour utiliser les modules dynamiquement chargés, alors les modules peuvent être compilés séparément et ajouté à n'importe quel moment en utilisant la directive LoadModule. Sinon, Apache doit être recompilé pour ajouter ou supprimer des modules. Des directives de configuration peuvent être incluses de manière conditionnelles en fonction de la présence d'un module particulier en les entourant par un bloc <IfModule>.

Pour savoir quels modules ont été compilé dans le serveur, vous pouvez utilisé l'option de ligne de commande -l.


Portée des directives

Directives liées

<Directory>
<DirectoryMatch>
<Files>
<FilesMatch>
<Location>
<LocationMatch>
<VirtualHost>

Les directives placées dans les principaux fichiers de configuration s'appliquent à l'ensemble du serveur. Si vous souhaitez modifier la configuration pour une partie seulement du serveur, vous pouvez mettre en contexte vos directives en les plaçant dans des sections <Directory>, <DirectoryMatch>, <Files>, <FilesMatch>, <Location>, et <LocationMatch> . Ces sections limitent la portée d'application des directives qu'elles contiennent à un emplacement des fichiers ou à certaines URL. Elles peuvent être imbriquées, permettant ainsi une configuration très fine.

Apache a la possibilité de servir plusieurs sites web en même temps. Cette possibilité est appelée hébergement virtuel . Des directives peuvent également être limitées en utilisant des sections <VirtualHost> afin qu'elles ne s'appliquent qu'à certains sites web.

Bien que la plupart des directives peuvent être placées à l'intérieur de n'importe quelle section, certaines directives n'ont pas de sens dans certains contextes. Par exemple, les directives contrôlant la création des processus ne peuvent être placés que dans le contexte pricipal du serveur. Pour savoir quelles directives peuvent être placées dans quelles sections, vérifiez le contexte de la directive. Pour plus d'informations, voir comment les sections Directory, Location et Files fonctionnent.


Fichiers .htaccess

Directives liées

AccessFileName
AllowOverride

Apache permet une gestion décentralisée de la configuration par l'utilisation de fichiers spéciaux à l'intérieur de l'arborescence web. Ces fichiers spéciaux sont généralement appelés .htaccess, mais n'importe quel nom peut être défini par la directive AccessFileName. Les directives placées dans les fichiers .htaccess s'appliquent au répertoire où se trouve le fichier ainsi qu'au sous répertoires. Les fichiers .htaccess respectent la même syntaxe que les fichiers principaux de configuration. Comme les fichiers .htaccess sont lus à chaque requête, Les modifications effectuées dans ces fichiers prennent effet immédiatement.

Pour savoir si une directive peut être placée dans les fichiers .htaccess, vérifiez le contexte de la directive. L'administrateur peut contôler quelques directives peuvent être placées dans les fichiers .htaccess en modifiant la directive AllowOverride du fichier principal de configuration.


Fichiers de trace

Avertissement sur la sécurité

Toute personne pouvant écrire dans le répertoire où Apache écrit un fichier de trace peut avoir accès à l'uid sous lequel le serveur est lancé, généralement root. Ne donnez pas accès en écriture au répertoire où les fichiers de trace sont stockés sans être clairement conscient des conséquences; voir le document trucs sur la sécurité pour plus de détails.

Fichier pid

Au lancement, Apache écrit le numéro de processus du processus père httpd dans le fichier logs/httpd.pid. Le nom du fichier peut être changé en modifiant la directive PidFile. Le numéro de processus est utilisé par l'administrateur pour relancer et arrêter le démon. Sur Unix, un signal HUP ou USR1 a pour effet de faire relire par le démon les fichiers de configuration, et un signal TERM le fait terminé de manière douce. Sur Windows, il faut employer l'option -k. Pour plus d'information voir la page Arrêt et redémarrage.

Si le processus meurt (ou est tué) de manière anormale, il peut alors être nécessaire de tuer les processus fils.

Trace des erreurs

Le serveur trace les messages d'erreurs dans un fichier, par défaut logs/error_log sur Unix ou logs/error.log sur Windows and OS/2. Le nom du fichier peut être défini en utilisant la directive ErrorLog D'autres traces peuvent être définies pour différents hôtes virtuels.

Trace des requêtes

Le serveur généralement trace chaque requête dans un fichier de transfert, par défaut logs/access_log sur Unix ou logs/access.log sur Windows and OS/2. Le nom du fichier peut être défini en utilisant la directive CustomLog. D'autres traces peuvent être définies pour différents hôtes virtuels.