Organisation de la configuration d'apache 2.2 sous Debian

Par défaut, apache 2.2 (et plus anciens) utilisent un seul fichier de configuration : httpd.conf. Cependant, sous Debian et dérivés (Ubuntu, etc), les paquets nous offrent une séparation de la configuration bien plus pratique et plus souple que l'édition d'un seul gros fichier, ainsi que quelques outils pour nous aider dans tout cela. Petite présentation de ce petit univers.

httpd.conf ?

Et bien non, ce n'est pas par là que l'on commence. Si c'est le nom du fichier de configuration par défaut, les mainteneurs du paquet ont précisé un autre nom de fichier : apache2.conf. C'est ce dernier qui devient donc le point central de la configuration. Son rôle est de définir les options de base ou génériques, mais surtout d'inclure d'autres fichiers de configuration.

Les fichiers inclus

La liste des fichiers inclus par apache2.conf est simple à obtenir :

-> grep -i include apache2.conf | grep -v '#'
Include mods-enabled/*.load
Include mods-enabled/*.conf
Include httpd.conf
Include ports.conf
Include conf.d/
Include sites-enabled/

Étudions les chacun en détail.

mods-enabled/

C'est ici que l'on va avoir la configuration des différents modules utilisés par apache. Cependant, ce dossier ne contient que des liens symboliques et rien d'autre. Les véritables ficheirs .load et .conf des différents modules se trouvent dans le dossier mods-available. Pourquoi donc ? Simplement parce que l'on ne souhaites pas activer l'ensemble des modules disponibles. Avec ce système, tous les modules disposent de leur configuration dans un dossier, et pour en activer un il suffis juste de créer les liens symboliques vers ces fichiers. Nous retrouverons ce principe un peu plus loin.

httpd.conf

Afin que ceux qui sont habitués au httpd.conf ne soient pas totalement perdu, on leur en donne un. On notera cependant que ce fichier est vide et devrais rester.

ports.conf

C'est ici que l'on trouve tout ce qui concerne les ports, du Listen au NameVirtualHost.

conf.d/

Ce dossier contient divers fichiers de configuration, de la configuration du charset par défaut aux pages d'erreur utilisées. C'est également ici que sont mis (ou qu'un lien symbolique mène vers) les fichiers de configuration spécifiques à certaines applications installées avec les paquets, par exemple PHPMyAdmin.

sites-enabled/

Sur le même modèle que le dossier mods-enabled, ce dossier ne contient que des liens symboliques vers les fichiers du dossier sites-available. Dans le cadre d'une utilisation des hôtes virtuels, on créera un fichier de configuration par hôte dans ce dernier dossier, puis on l'activera en créant le lien symbolique lui permettant d'être pris en compte. Grâce à ce système, on a bien séparé chaque hôte virtuel et l'on dispose un moyen de simplement en désactiver un en cas de besoin sans avoir à altérer quoi que ce soit dans les fichiers de configuration.

Les outils

Parce que l'on est quand même de grands feignants, une suite d'outils nous est proposé afin de simplifier l'utilisation de cette configuration "explosée".

a2enmod / a2dismod

Ces outils permettent de gérer les liens symboliques situés dans le dossier mods-enabled. a2enmod permet de les créer, a2dismod de les retirer. On a ainsi des outils permettant de facilement activer/désactiver des modules pour apache, elle est pas belle la vie ?

a2ensite / a2dissite

Exactement la même choque que a2enmod et a2dismod, mais afin de gérer les liens symboliques du dossier sites-enabled pointants vers les fichiers sites-available.