Directives
Revenons maintenant aux directives que nous avons utilisées dans ce chapitre, en les présentant de façon plus formelle.
ServerName
ServerName donne le nom d’hôte du serveur qui sera utilisé lors de la création des URL de redirection, c’est-à-dire lorsqu’une directive <Location> est utilisée, ou lorsque l’on tente d’accéder à un répertoire sans terminer l’URL par un /.
ServerName nom-hôte
Configuration du serveur, hôte virtuel
Cette directive est également utilisée par l’hébergement virtuel (voir le chapitre 4).
DocumentRoot
Cette directive indique le répertoire racine de l’arborescence des fichiers mis à disposition des clients.
DocumentRoot répertoire
Défaut : /usr/local/apache/htdocs
Configuration du serveur, hôte virtuel
Le serveur ajoute le chemin spécifié dans l’URL au répertoire racine des documents, sauf si ce chemin correspond à une directive comme Alias. Si, par exemple, le fichier de configuration contient la directive suivante :
DocumentRoot /usr/web
Une requête concernant http://nom-hôte/index.html désignera en fait le fichier /usr/web/index.html sur la machine nom-hôte.
Il semblerait que le module concerné, mod_dir, pose problème lorsque le répertoire indiqué dans DocumentRoot se termine par un slash ( DocumentRoot /usr/web/, par exemple), nous vous conseillons donc de pas ajouter ce /. Sachez aussi que plus le DocumentRoot est profond, plus Apache met de temps à atteindre les répertoires. Pour optimiser les performances, suivez le mot d’ordre de l’armée britannique : KISS ( Keep It Simple, Stupid ).
ServerRoot
ServerRoot précise le répertoire sous lequel se trouvent les sous-répertoires conf et logs.
ServerRoot répertoire
Défaut : répertoire : /usr/local/etc/httpd
Configuration du serveur
Si vous lancez Apache avec l’option -f (fichier), vous devez utiliser la directive ServerRoot. Si, par contre, vous utilisez l’option -d (répertoire), comme nous le faisons, cette directive n’est pas nécessaire.
ErrorLog
La directive ErrorLog précise le nom du fichier dans lequel le serveur inscrira les erreurs qu’il rencontre.
ErrorLog nom-fichier |syslog[: facility ]
Défaut : ErrorLog logs/error_log
Configuration du serveur, hôte virtuel
Si le nom de ce fichier ne commence pas par un slash ( / ), son emplacement sera considéré comme relatif à ServerRoot.
Si le nom de ce fichier commence par le caractère |, il est censé désigner une commande qui sera lancée pour traiter le stockage des messages d’erreurs.
À partir d’Apache 1.3, l’utilisation de syslog à la place d’un nom de fichier permet une journalisation via syslogd(8) si le système en dispose. La facility par défaut est local7, mais vous pouvez la modifier avec la syntaxe syslog: facility, où facility est l’un des noms décrit dans syslog(1).
Si le répertoire où les fichiers logs sont stockés peut être modifié par un autre utilisateur que celui qui a lancé le serveur, votre sécurité peut être compromise.
PidFile
Le PID d’un processus est une information intéressante. Sous Unix et Win32, celui du processus principal d’Apache est stocké dans le fichier indiqué par la directive PidFile.
PidFile fichier
Défaut : logs/httpd.pid
Configuration du serveur
Par défaut, ce fichier s’appelle .logs/httpd.pid. Cependant, seul Unix vous permet d’en tirer parti pour arrêter le processus avec kill.
TypesConfig
Cette directive indique le chemin et le nom du fichier contenant les types MIME, s’il n’est pas à sa place par défaut.
TypesConfig nom-fichier
Défaut : conf/mime.types
Configuration du serveur
Inclusions dans le fichier de configuration
Si vous souhaitez inclure des éléments dans le fichier de configuration, vous pouvez vous contenter de faire un copié-collé ou utiliser la directive Include :
Include nom-fichier
Configuration du serveur, hôte virtuel, répertoire, .htaccess
L’utilisation de cette directive fait que l’on a du mal à savoir ce que fait vraiment le fichier de configuration ; vous n’aurez donc probablement pas intérêt à l’utiliser, sauf si ce fichier devient si compliqué que son découpage puisse se justifier (voir, par exemple, le chapitre 17, où le fichier de configuration doit également contrôler le module Java de Tomcat).