Vous êtes sur la page 1sur 15

Jean-Marie Culot

guide de référence

Apache 2

© Éditions OEM (Groupe Eyrolles), 2003, ISBN 2-7464-0490-7

Jean-Marie Culot guide de référence Apache 2 © Éditions OEM (Groupe Eyrolles), 2003, ISBN 2-7464-0490-7

Chapitre 7

La configuration

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 ssiittee 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 sseerrvveeuurr 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.

118

Guide de référence Apache 2

118 Guide de référence Apache 2 Votre rôle d'administrateur est de piloter ce programme. Vous le

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 :

π le programme exécutable, Apache.exe

π le fichier de configuration, httpd.conf

//bbiinn :

//ccoonnff :

π le(s) site(s)

mais aussi :

π les modules appelés de manière dynamique

//hhttddooccss :

//mmoodduulleess :

//mmaannuuaall :

π la documentation

/ / h h t t d d o o c c s s : /

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.

120

Guide de référence Apache 2

« Je vous laisse ma carte »

Guide de référence Apache 2 « Je vous laisse ma carte » D i r e

Directive

SSeerrvveerrNNaammee

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

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 UUsseeCCaannoonniiccaallNNaammee

DDeessccrriippttiioonn

Indique au serveur où il doit trouver son nom et son port

SSyynnttaaxxee

UseCanonicalName on|off|DNS

EExxeemmppllee

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 !

122

Guide de référence Apache 2

122 Guide de référence Apache 2 C’est dans la requête formulée par le browser qu’Apache va

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 uunnee aaddrreessssee IIPP. 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 : llee ppoorrtt.

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.

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 LLiisstteenn

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

124

Guide de référence Apache 2

124 Guide de référence Apache 2 Si les deux indications du ServerName et du UseCanonicalName étaient

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, uunnee sélleeccttiioonn. 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

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

SSeerrvveerrTTookkeennss

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 :

PPaarraammééttrraaggee

RRééssuullttaatt

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

126

Guide de référence Apache 2

126 Guide de référence Apache 2 « Contactez-moi en cas de problème » S S e

« Contactez-moi en cas de problème »

SSeerrvveerrSSiiggnnaattuurree eett SSeerrvveerrAAddmmiinn

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

admin@email.example.com désigne le corres- pondant à contacter à propos de l’incident.

ServerAdmin

« Voici mes coordonnées »

SSeerrvveerrRRoooott

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.

Chapitre 7 :La configuration

127

Directive SSeerrvveerrRRoooott

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 rrèègglleess dd’aauu-- ttoorriissaattiioonn 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

128

Guide de référence Apache 2

128 Guide de référence Apache 2 Ω Vérifiez dans la structure de vos répertoires avec Windows

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

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)