Vous êtes sur la page 1sur 15

Apache G25490 6/06/03 11:37 Page 3

Jean-Marie Culot

guide de référence

Apache 2

© Éditions OEM (Groupe Eyrolles), 2003,


ISBN 2-7464-0490-7
Apache G25490 6/06/03 11:37 Page 115

Chapitre 7
La configuration
Apache G25490 6/06/03 11:37 Page 117

Dans ce chapitre, nous allons apprendre comment


π personnaliser le serveur que nous mettons en place,
π établir la structure et la présenter à l’extérieur.
Dans le chapitre précédent sur l’installation, nous avons construit le buil-
ding, terminé le gros œuvre. Mais il nous faut mettre la plaque sur le seuil,
signaler qui va assurer l’accueil, quels services nous allons fournir. Définir
cette implantation particulière d'Apache comme étant celle qui va assurer
le service du site de Marie Gobaye.

Administrateur & développeur


Rappelons la distinction entre serveur et site. Le site est un ensemble de
documents HTML et de scripts ; c'est un contenu d'informations à disposi-
tion des clients. Il est développé par des personnes qui récoltent l'informa-
tion propre au site, l'organisent, la stockent et la formatent. C'est une acti-
vité que vous envisagez peut-être de pratiquer, mais elle est hors de notre
champ.
Le serveur est un programme qui écoute les demandes adressées au site et
s'efforce de livrer au client les informations de ce site. Le serveur peut sou-
tenir l'activité d'un site ou de plusieurs sites.
Apache G25490 6/06/03 11:37 Page 118

118 Guide de référence Apache 2

Votre rôle d'administrateur est de piloter ce programme. Vous le faites, pour


l'essentiel, à partir d'un seul document : le fichier de configuration. C'est
votre centre de commandement. En Windows, c'est le document intitulé
httpd.conf situé en …/Apache2/conf/. Pour l'essentiel, le livre que vous avez
entre les mains parle de ce seul document puisqu'il est le recueil des direc-
tives à appliquer au programme. Votre rôle est d'en ajouter, d'en modifier,
de les paramétrer. Il sera aussi de vérifier dans les journaux d'exploitation si
vos interventions en httpd.conf ont été pertinentes !
Situons, dans la structure, les répertoires majeurs :
π /bin : le programme exécutable, Apache.exe
π /conf : le fichier de configuration, httpd.conf
π /htdocs : le(s) site(s)
mais aussi :
π /modules : les modules appelés de manière dynamique
π /manual : la documentation
Apache G25490 6/06/03 11:37 Page 119

Chapitre 7 : La configuration 119

Configuration globale
Rendez-vous à l'intérieur du fichier de configuration :
Ω Soit en ouvrant Démarrez / Program Files / Apache Group / Apache2 /
conf / httpd.conf avec un éditeur de texte classique, par exemple
Notepad.
Ω Soit, si l'installation d'Apache en Windows vous donne le service de
contrôle de configuration, à partir du menu de démarrage : Apache HTTP
Server 2.0.xx / Configure Apache Server / Edit the httpd.conf configure
file.
Soyez prudent si vous craignez la distraction ; pour éviter les désagréments
d’une manipulation intempestive, effectuez une copie du fichier, par
exemple en Copie_de_httpd.conf.
Les concepteurs du système ont prévu un paramétrage par défaut lors de
l’installation, selon des options discutées avec la vaste communauté des uti-
lisateurs de par le monde. Notre démarche sera de prendre connaissance des
valeurs par défaut attribuées à ces directives.
Un rappel sur la structure du document, en 3 sections. Les deux dernières
font référence à la formule des hôtes virtuels pour la gestion de sites diffé-
rents. Considérons à ce stade-ci que nous n’avons à configurer qu’un serveur
simple n’ayant à traiter qu’une seule adresse IP et un seul nom de site.
π « Global environment », présentant les directives qui contrôlent les acti-
vités d’Apache dans leur ensemble.
π « Main Server configuration », présentant les directives du serveur prin-
cipal, ou en l’absence d’hôtes virtuels, du serveur unique.
π « Virtuals hosts », section susceptible de recevoir un ou plusieurs cadres
(containers) comportant chacun les directives pour des sites distincts.
Ω Vérifions : toute la troisième section est en commentaire. Une installa-
tion « par défaut » ne comporte pas d’hôtes virtuels. Repérons cependant
en passant en quoi des hôtes virtuels pourraient se singulariser : par un
nom d’administrateur, surtout par un nom de serveur et une racine de
site particuliers, et enfin par des fichiers de maintenances propres.
Apache G25490 6/06/03 11:37 Page 120

120 Guide de référence Apache 2

« Je vous laisse ma carte »


Directive ServerName
Description Le nom et le port que le serveur s'attribue à lui-même
Syntaxe ServerName nom_de_domaine [:port]
Exemple ma_sorciere.com
www.marie_gobaye.com:80
Cette directive donne le nom et le port qui permettent au serveur de s’iden-
tifier lui-même.
Il semble curieux qu’il faille signaler au serveur son propre nom, son iden-
tifiant, unique par définition, comme s'il ne connaissait pas sa propre iden-
tité.
Ω Vérifions dans le fichier de configuration : vous trouvez la directive dans
la deuxième section, avec son argument garni. Sous Windows, ce sera
avec le nom de votre site, celui que l’installateur Windows vous a deman-
dé d’introduire. Sous Linux, ce sera avec Localhost, nom attribué par
l’installation. Mais peut aussi y figurer une adresse IP.

#
#ServeName 127.0.0.1
ServerName www.marie_gobaye.com

Première observation : le serveur a donc un nom pour chacune de ses


implantations, alors que d’autres programmes, comme Word, Excel,… n’ont
pas à être renommés Word-Machin ou Excell-chose. Il faut donc distinguer
entre un exécutable qui s'appelle apache.exe ou httpd, et l'application loca-
le du serveur auquel un nom particulier est donné.
Deuxième observation : le nom du serveur est associé à celui de votre site.
Ce qui à la fois est éclairant, mais peut dérouter.
En effet, l’administrateur que vous êtes traite les deux objets comme bien
différents, un serveur d’une part, un programme, et un site d’autre part, un
Apache G25490 6/06/03 11:37 Page 121

Chapitre 7 : La configuration 121

stockage de données ; et ces deux objets sont localisés distinctement dans


votre répertoire Apache2.
Il est vrai que le client, lui, n’a que faire de cette distinction : il s’adresse sim-
plement à un site dont il attend une réponse, et cet ensemble n’a pour lui
qu’un nom.
Si la directive existe, c’est pour une nécessité technique. Apache utilisera
cette directive lorsqu’il devra composer des URL se référant à lui-même,
comme dans le cas des redirections, des renvois de demandes : le serveur
doit alors composer sa propre URL à placer dans l'en-tête de réponse et trou-
vera pour ce faire son nom dans la directive.
Autre cas de figure. Supposons que dans le répertoire des noms de domaines
(DNS), à telle adresse IP se trouvent associés deux noms différents pour le
même site, www.marie_gobaye.com et www.gobaye.com ; votre client s’adres-
se à vous avec la deuxième dénomination. Mais vous préférez utiliser la pre-
mière, et la renvoyer, elle, dans les en-têtes de réponses, pour obtenir désor-
mais du client des URL avec la première dénomination. Vous choisissez
alors d’attribuer www.marie_gobaye.com au ServerName.

Privilégier la source
Directive UseCanonicalName
Description Indique au serveur où il doit trouver son nom et son port
Syntaxe UseCanonicalName on|off|DNS
Exemple UseCanonicalName on (valeur par défaut)

Cette directive est à associer à la précédente.


Si UseCanonicalName est positionné à on, c'est la formule présentée plus
haut qui fonctionne : le serveur prend son nom et son port dans ServerName.
Mais positionné à off, c'est dans l'en-tête de la requête qu'il le prendra.
Pourquoi cette variante ? Les conventions HTTP/1.1 prévoient que plu-
sieurs sites peuvent être associés à une seule adresse IP. Comment recon-
naître le bon site, celui que vise le client ? Réponse : en le lui demandant !
Apache G25490 6/06/03 11:37 Page 122

122 Guide de référence Apache 2

C’est dans la requête formulée par le browser qu’Apache va trouver celui des
sites qui est visé.
Comment forcer Apache à se servir du site donné par le client plutôt que du
ServerName ? A vous de le lui dire par la directive : UseCanonicalName posi-
tionnée à off.
ServerName peut aussi recevoir comme premier argument une adresse IP.
C’est la formule que nous pourrions utiliser, en inscrivant l’adresse dési-
gnant conventionnellement le site lui-même : 127.0.0.1
ServerName peut recevoir un second argument : le port.

Le port est le type de service pour lequel le serveur est sollicité : le


transfert de fichiers (FTP), la messagerie,… Quand il s’agit de sites Web
sous protocole HTTP, la valeur par défaut est 80, et quand il s’agit de
sites Web sécurisés sous protocole HTTPS, la valeur par défaut est 443.
On peut aussi définir le port comme un canal de communication par-
ticulier lorsque deux ordinateurs (deux adresses) se communiquent.
Analogie. Représentons-nous les ports comme des fréquences radio.
Votre poste de radio est en mesure d’écouter des programmes diffé-
rents, sur autant de fréquences. Vous aurez même préenregistré des
fréquences pour vos tapages ou vos murmures favoris. Le serveur
interroge des ports comme votre radio interroge Nostalgie ou
Veronica.
Autre analogie, dans le fil de celles utilisées plus haut. Vous organisez
votre département et comme un service d’administration publique,
vous souhaitez qu’il réponde à différents types de demandes : vous
prévoyez à l’accueil autant de guichets qu’il y a de types de demandes,
par exemple pour la population, le cadastre, l’assistance publique, le
tourisme, etc. Chaque guichet comporte son libellé : c’est notre numé-
ro de port. Et derrière son guichet, chaque préposé prend note attenti-
vement (?) des requêtes qui lui sont soumises.
Apache G25490 6/06/03 11:37 Page 123

Chapitre 7 : La configuration 123

Choisir le port
Au ServerName, vous n’attribuez cependant qu’un seul port. Au libre choix ?
À condition de vous mettre d’accord avec les browsers de vos clients.
Effectivement, lorsque vous introduisez une requête sur votre browser, il
vous suffit d’introduire un nom de site tel que www.mariegobaye.com. Le
browser déduit de la structure du nom qu’il s’agit d’une requête vers le Web,
que le port est standard et enfin que vous souhaitez consulter la racine de
l’arborescence du site ; il supplée :
π en préfixant la demande par http:// :
http://www.mariegobaye.com
π en suffixant le port par défaut :
http://www.mariegobaye.com:80
π en suffixant une seconde fois par la barre oblique « / » :
http://www.mariegobaye.com:80/

Gardons la valeur par défaut : 80.


Vous pourriez choisir un port en dehors des valeurs par défaut des proto-
coles, et lancer vos requêtes depuis votre browser en les suffixant par ce
numéro de port. La valeur 8080 est fréquemment utilisée pour des sessions
de test ou de maintenance.

« Je vous écoute »
Directive Listen
Description Indique les adresses et ports que le serveur doit « écouter »
Syntaxe Listen [adresse IP:]port
Exemple Listen 80
Listen 127.0.0.1:80
Apache G25490 6/06/03 11:37 Page 124

124 Guide de référence Apache 2

Si les deux indications du ServerName et du UseCanonicalName étaient orien-


tées vers les réponses aux clients, il faut évidemment permettre au serveur
de remplir une de ses missions de base : écouter !
Au démarrage, Apache, installé sur telle machine disposant d’un nombre
quelconque d’interfaces TCP/IP avec le réseau, écoute toutes les entrées
transmises par toutes ces interfaces. Il écoute toutes les adresses attribuées
à cette machine, et peut recevoir des sollicitations pour plusieurs services,
pour du Web, pour du courrier électronique, du FTP, etc.
Il est vraisemblable que vous vouliez lui confier un nombre précis de
services, et pour une liste déterminée de sites. Vous allez donc lui visser un
filtre dans les oreilles… ou selon notre analogie, dans votre salle d’accueil,
lui réserver un nombre précis de guichets.
Vous lui imposez, par la directive Listen, une sélection. Apache n’écoutera
que les requêtes venant sur le port ou les ports spécifiés, ou venant sur les
combinaisons d’adresses-ports spécifiées.
La directive comporte comme argument, optionnellement une adresse IP,
obligatoirement un numéro de port. Et vous pouvez rédiger plusieurs
lignes Listen.

Exemple
Vous voulez que votre serveur accepte toutes les adresses, mais sur les deux
seuls ports 80 et 8000. Alors :

Listen 80
Listen 8000

Ou si vous ne permettez l’accès qu’à deux couples d’adresses-ports, alors :

Listen 192.70.2.1 :80


Listen 192.70.2.2 :8000
Apache G25490 6/06/03 11:37 Page 125

Chapitre 7 : La configuration 125

La question sera à reprendre lorsque nous aborderons la formule des hôtes


virtuels, et la possibilité de combiner non seulement des adresses et des
ports, mais aussi des noms de domaines. Et donc l’aptitude d’Apache à gérer
plusieurs sites Web.

Réserve et discrétion
Directive ServerTokens
Description Contrôle le contenu de l'en-tête de réponse.
Syntaxe ServerTokens
Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full
Exemple ServerTokens Full (valeur par défaut)

Voici donc notre serveur ayant acquis une identité ; elle lui sera notamment
utile dans l’organisation de ses sous-traitances.
Mais il semble tout indiqué que le serveur mentionne des informations le
concernant dans ses réponses à ses clients. Par défaut, l’en-tête de la répon-
se comporterait le nom du serveur, son numéro de version et le système
d’exploitation qui l’héberge. Cet en-tête pourrait véhiculer, en plus, des
indications sur les programmes annexés au serveur, rédigés en PHP,…
Mais si la première préoccupation est le service, la seconde est la prudence.
Ce n’est pas une bonne idée de donner trop d’informations ! Sait-on l’usage
qui en sera fait dans ce bas monde ?
Si bien que la directive prévue dans ce contexte l’est pour restreindre ce
comportement par défaut. Les exemples qui suivent parlent d’eux-mêmes :

Paramétrage Résultat
ServerToken Productonly Apache
ServerToken Minimal Apache/2.0.43
ServerToken OS Apache (Windows)
ServerToken Full (par défaut) Apache/2.0.43 (Windows) click/2.0.0
Apache G25490 6/06/03 11:37 Page 126

126 Guide de référence Apache 2

« Contactez-moi en cas de problème »


ServerSignature et ServerAdmin
Lorsque Apache renvoie au client un document qu’il a rédigé de sa propre
initiative, il peut ajouter en bas de message une information sur lui-même
ou sur un destinataire d’email.
ServerSignature On/Off permet ou non l’ajout de cette information en
bas de message
ServerAdmin admin@email.example.com désigne le corres-
pondant à contacter à propos de l’incident.

« Voici mes coordonnées »


ServerRoot
Attentif à vous faciliter la vie, l’installateur d’Apache a situé les différents
fichiers qui lui sont nécessaires aux emplacements par défaut.
Pour Linux, nous l'avons vérifié lors de l'installation. Mais vérifions la
valeur donnée par défaut à cette directive dans notre fichier de compagnie :
httpd.conf. Notez l'absence de barre oblique en finale de chemin.

#
# ServerRoot : The top of the directory tree under which the server's confi-
guration, error, and log files are kept.
#
# Do NOT add a slash at the end of the directory path.
#
ServerRoot "C:/Program Files/Apache Group/Apache2"

Ω Vérification croisée : c’est aussi ce que vous observez en naviguant dans


l’arborescence de vos répertoires sur votre disque C: /… Tous les fichiers
nécessaires à Apache ont été placés sous ce répertoire. L’installateur s’est
en effet conformé à votre souhait lorsqu’il vous a proposé, sur l’écran de
dialogue, de confirmer l’emplacement par défaut.
Apache G25490 6/06/03 11:37 Page 127

Chapitre 7 : La configuration 127

Directive ServerRoot
Description Répertoire de base pour l'installation du serveur.
Syntaxe ServerRoot répertoire
Commentaire Ce répertoire devrait comporter aussi les répertoires de
configuration et de journalisation. Les autres répertoires
sont relatifs à cette racine.
Exemple /home/la_grotte/

Il vous est donc loisible de modifier cette disposition et d’indiquer un autre


emplacement. Soyez attentif, si vous le faites, à ne pas rajouter la barre
oblique en finale de chemin.
Seconde consigne d’importance radicale : conformez-vous aux règles d’au -
torisation d’accès et de propriété prévues par votre système d’exploitation.
Placez vos répertoires et vos fichiers de manière à ce qu’ils soient effective-
ment accessibles aux utilisateurs que vous ciblez, et à eux seuls.
Il y aura lieu de distinguer à ce sujet, en Linux, les fichiers accessibles au
gestionnaire root et ceux qu’il faut rendre accessibles à d’autres gestion-
naires de site et, par ailleurs, de distinguer les fichiers gérant les méca-
nismes du serveur et ceux constituant le site.
Enfin, il faut accorder des autorisations différentes à des fichiers du site
selon que vous prévoyez un simple accès de consultation ou un accès d’en-
registrement de données.

Localisation

Les autres directives concernent l’emplacement des fichiers de site et de tra-


vail d’Apache.
Ω Voyez en httpd.conf, la valeur attribuée à LockFile (sans barre oblique en
tête) : ErrorLog logs/error.log
Apache G25490 6/06/03 11:37 Page 128

128 Guide de référence Apache 2

Ω Vérifiez dans la structure de vos répertoires avec Windows Explorer.


Vous trouvez un répertoire nommé logs, et dans ce répertoire le fichier
error.log où Apache journalisera les incidents.

Observation : si vous n’introduisez pas la barre oblique en tête du chemin,


celui-ci est considéré comme relatif. Relatif à quoi ? Au ServerRoot. Ainsi
l’indication logs/error.log placera ce fichier journal en C:/Program
Files/Apache Group/Apache2/logs/error.log.
Si vous aviez introduit la barre oblique en tête, l’emplacement aurait été
choisi indépendamment de la racine du serveur. Par exemple,
/logs/error.log vous aurait placé directement sur la racine de l'arborescence
générale.

Oui, mais… ?
Q. Quel nombre limite de fichiers logs peut-on prévoir ?
R. Vous pouvez prévoir des fichiers distincts par hôte virtuel, mais aussi
prévoir des fichiers qui stockeraient séparément le texte seul et, plus gour-
mandes en place, des images.

Mais encore...
La prise de connaissance des premières directives est l'occasion de tester
l'utilité de la carte de référence : « Apache Quick Reference card ». Vous
vous la procurerez sur le site suivant :
http://www.refcards.com
Imprimez-la recto/verso et pliez-la en 3. Vous disposez là de tout le paramé-
trage d’Apache. Au fil de votre progression, vous pourriez cocher les
rubriques qui vous seront devenues familières.
La version disponible (Revision 1.6, due à Andrew Ford) au moment de la
rédaction de cet ouvrage correspondait à la version précédente d’Apache, la
Apache G25490 6/06/03 11:37 Page 129

Chapitre 7 : La configuration 129

version 1.3.6. Sans doute disposerez-vous de la révision correspondant à la


version 2.0.x d’Apache.
En plus des tutoriels mentionnés dans le manuel du site d'Apache, des
introductions à la configuration d'Apache sont disponibles sur d'autres
sites, comme Apachefrance. Voir ainsi un article de Rael Dornfest, An
Amble Through Apache Configuration à l’adresse :
hwww.onlamp.com (site O'Reilly)

Vous aimerez peut-être aussi