Installation Et Configuration Du Serveur Web Apache
Installation Et Configuration Du Serveur Web Apache
Installation Et Configuration Du Serveur Web Apache
Il est généralement désigné par httpd.conf (sous Fedora, Redhat, etc. ) ou par apache2.conf (sous Debian,
Mandrake, etc.)
Il est situé dans le répertoire /etc/httpd2/conf ou /etc/apache2/conf, selon les distributions.
Pour faire la configuration, il est conseillé de se "logguer" en tant qu'utilisateur et non en tant que root, afin de
prévoir tous désagréments dus aux erreurs indésirées. Il faudra donc accorder les droits de lecture et d'écriture aux
utilisateurs requis pour la configuration. On pourra le leur enlever, une fois la configuration terminée.
Pour accorder les droits: chmod 777 /etc/httpd/conf/httpd.conf
Pour enlever les droits: chmod 644 /etc/httpd/conf/httpd.conf: c'est suffisant pour assurer la sécurité de notre
serveur, du moment où il faut permettre aux utilisateurs de le faire fonctionner, c'est-à-dire exécuter ce fichier. Il est
aussi conseillé que tous les fichiers, intervenants dans la configuration et dans l'hébergement Internet ou Intranet,
soient dans le mode 755.
Pour faire plus simple, il est possible d'utiliser la commande sudo avec la syntaxe suivante: sudo nom-de-la-
commande-à-éxécuter
password: taper-le-mot-de-passe-du-root
La configuration d'Apache prend en compte beaucoup d'éléments qui peuvent être regroupés en trois grandes
sections. Mais, pour chaque section, présentons les élements les plus essentiels. Par souci de cohérence, le
paramétrage doit se faire dans l'ordre indiqué.
Il convient aussi de remarquer le fichier de configuration d'Apache comporte des commentaires, qui présentent et
explicitent brièvement en anglais les différentes directives de configuration. Ce tutoriel vient donc en complément à
toute la documentation sur Apache déjà existante.
Dans ce tutoriel, les directives de configuration concernent la version 2 d'Apache, elles ne s'appliquent pas pour la
plupart d'entre elles à la version 1.3..
DIRECTIVES DE
FONCTIONNALITES
CONFIGURATION
désigne, en secondes le temps mort maximal requis entre une émission et une
Timeout 120
réception. Ici, par exemple, ce temps est mis à 120s.
BOUNNIT 1
Serveur Web Apache
indique le port d'écoute. Par défaut, celui d' Apache est le 80. Il est important de
vérifier si ce port n'est pas déjà occupé par une autre application, auquel cas, le
serveur Apache ne pourra fonctionner convenablement. Toujours est-il qu'on peut
Listen 80 changer ce numéro avec une valeur plus grande, pour être à l'abri.
Il est même possible d'y mettre plusieurs numéros de ports d'écoute, et préciser
une seule adresse IP, afin de restreindre à une seule carte réseau (pour les
machines qui disposent de plusieurs interfaces réseaux.).
charger les différents modules se trouvant dans le répertoire indiqué plus haut.
Dans les versions antérieures d'Apache, ce paramètre porte le nom
LoadModule alias_module de AddModule. Dans cet exemple, il s'agit de charger le
modules/mod_alias.so module alias_module qui se trouve dans le répertoire modules
(/etc/httpd/modules) sous le nom mod_alias.so. Par défaut, une
liste consistante de modules est déja chargée.
désigne l'utilisateur sous qui le serveur démarrera. Dans cet exemple, il s'agit d'un
utilisateur dejà existant sur notre système, et qui a les droits requis.
Un changement d'identité est opéré lorsque c'est l'utilisateur privilégié (root) qui le
lance. Sécurité oblige. D'ailleurs, un père Apache est lancé en tant que root afin de
User nobody
s'approprier le port 80 (mesure non appliquée s'il s'agit d'un port non privilégié).
Ce sont ensuite chacun des fils ( nombre configurable dépendant du MPM ) qui
seront lancés avec les paramètres user/group, pour des raisons de sécurité
évidentes.
désigne le groupe le serveur sous qui le serveur démarrera (analogue à user sur le
Group nobody
groupe).
BOUNNIT 2
Serveur Web Apache
c'est le répertoire qui contient les sites Web hébergés sur le serveur. On
peut le changer, où y mettre tous les sites Web que le serveur doit
héberger. Toutefois, on peut faire d'autres hébergements, grâce
DocumentRoot "/var/www/domaine" aux VirtualHosts, que nous verrons dans la Section 3. Il est préférable
que les droits d'accès aux DocumentRoot soient à 755 pour les rendre
accessibles à tous les utilisateurs, sans qu'ils puissent y modifier quoique
ce soit.
<IfModule "nom_module" > pas très nécessaire dans une configuration de base, ces balises
... permettent d'indiquer au serveur des instructions précises à exécuter,
</IfModule> lorsqu'il fait appel à un module donné.
<Files ~ "^\.ht" > comme la balise <ifmodule>, cette balise permet d'allouer des droits à
Order allow, deny un ou plusieurs fichiers , ou à un groupe de fichiers ayant une
Deny from all caractéristique donnée. Dans cet exemple, la caractéristique porte sur
</Files> les fichiers d'extension .ht
BOUNNIT 3
Serveur Web Apache
de /etc/httpd/logs/error_log.
LanguagePriority en fr ca cs da de el eo définit l'ordre de priorité des langues qui ont été préalablement ajoutées.
es et he hr it Ici, c'est d'abord l'anglais, puis, le français et ainsi de suite.
ErrorDocument 400 indique le fichier de message à ouvrir en cas d'erreur. Ici, on dit que si
/error/HTTP_BAD_REQUEST.html.var l'erreur de code 400 est commise, affichée le message du fichier (
/etc/httpd ) /error/HTTP_BAD_REQUEST.html.var. Ceci permet de
personnaliser les messages d'erreur. On crée un fichier comportant le
BOUNNIT 4
Serveur Web Apache
N.B : Les valeurs, par défaut, fournies dans le fichier de configuration sont déjà fonctionnelles. Les commentaires ci-
dessus viennent pour un souci de compréhension et d'assistance , en cas de modification de ces valeurs.
Les hôtes virtuels sont des identifiants utilisés pour indiquer les différents sites hébergés sur un serveur. Cela permet
l'hébergement de plusieurs sites Web sur un seul serveur.
Ce qu'il faut surtout comprendre, c'est que le virtualhost est en fait, un serveur virtuel qui est crée sur le serveur réel.
Le site web porte donc le nom de ce serveur virtuel. A cela, il faut aussi ajouter que le virtualhost peut aussi porter
sur le port du serveur web.
On a donc des cas de virtualhosts suivants: http://www.sigui.com/, http://guy.sigui.ci:3001/
Les sites à indiquer en virtualhost doivent être aussi déclarés sur le serveur DNS du réseau ou dans les
fichiers hosts des machines clientes.
Dans l'exemple ci-dessous , on crée un hôte virtuel qui indique le site Web http://www.site1.domaine/ dont les
fichiers sont dans le répertoire /var/www/domaine/site1 . Cet hôte a ses journaux qui lui sont propres. Par souci
de compréhension, cet hôte est propre à un fonctionnement en intranet ; toutefois avec internet, c'est idem.
Sélectionnez
DIRECTIVES DE
FONCTIONNALITES
CONFIGURATION
permet d'indiquer au serveur web Apache que sur le (s) couple (s) IP:port, on a un
virtualhost.
Par exemple NameVirtualHost 192.168.1.10:2000 montre à Apache l'existence d'un
virtualhost à cette adresse IP et avec ce port.
NameVirtualHost
Dans notre cas ci-dessus, en remplaçant l'IP par le jocker *, on indique qu'il existe des
virtualhosts utilisant ce port. On n'a donc plus besoin de déclarer chaque fois des virtualhost
au serveur. L'utilisation du joker est donc la meilleure.
En résumé, NameVirtualHost sert d'aiguilleur en fonction de la provenance de la requête.
On y précise l'URL du site qui sera hébergé sur le virtualhost. Mais ce n'est pas obligatoire,
on peut mettre le joker comme dans l'exemple .
Virtualhost
Sa fonction principale est d'ouvrir les balises dans lesquels toute la configuration de l'hôte
virtuel sera définie .
BOUNNIT 5
Serveur Web Apache
ServerAdmin
DocumentRoot
mêmes fonctionnalités que celles du serveur principal, pour l'hôte virtuel.
ErrorLog
CustomLog
N.B :
- On peut définir les hôtes virtuels dans un autre fichier, virtualhosts.conf par exemple, et l'inclure dans le fichier de
configuration avec include chemin_acces/virtualhost.conf. Ou tout simplement créer ce fichier
dans /etc/httpd/conf.d/; il sera automatiquement pris en compte grâce à la commande include
conf.d/*.conf que nous avons plus haut.
- Pour un fonctionnement en intranet, si le réseau ne dispose pas d'un serveur DNS, les sites Web doivent être
déclarés dans le fichier hosts des différents postes du réseau susceptibles de consulter le site. Sous Linux il s'agit du
fichier /etc/hosts et sous Windows : C:\WINDOWS\system32\drivers\etc\hosts.
Sélectionnez
Dans cet exemple, 192.168.2.12 est l'adresse IP du poste qui a le serveur Apache dans l'intranet.
BOUNNIT 6