Installation et configuration d’un serveur Web – Apache

Objectifs du TP
Configurer, lancer et administrer le serveur Web Apache sous Linux
 Machines sous Linux
 Fichiers de configuration et de lancement du serveur Web Apache

I - Présentation d’Apache
Un serveur HTTP - ou « serveur Web » - est un programme qui s’exécute en arrière-plan et qui attend
qu’un client (navigateur) lui envoie une demande de connexion pour y répondre.
Lorsqu’un client est connecté, le serveur traite les requêtes du client (envoie des informations
demandées : page HTML, image …).
Apache 2 est le serveur HTTP le plus utilisé actuellement. Sa configuration et sa flexibilité le rendent
incontournable. Lorsqu’un serveur Apache reçoit des requêtes, il peut les redistribuer à des processus
fils. La configuration permet de lancer des processus de manière anticipée et d’en adapter
dynamiquement le nombre en fonction de la charge.
Apache peut gérer plusieurs sites Web en même temps, ayant chacun son propre « nom », à l’aide des
hôtes virtuels.

II - Installation du serveur Apache
Afin de pouvoir utiliser Apache, il faut au préalable installer tous les fichiers dont il a besoin. Pour la
distribution Linux Fedora, l'installation se fait en général via des « paquetages » dédiés appelés 'rpm'.
L'installation d'un paquetage rpm place les bons fichiers aux bons endroits sur la machine cible. À
l'inverse, une désinstallation supprime tous les fichiers installés et laisse le système tel qu'il était avant
l'installation :
 Pour installer un paquetage rpm : rpm -ivh nom_du_paquetage.rpm

Fedora fournit aussi un gestionnaire de paquets « yum » qui permet de télécharger des paquetages rpm
depuis un « dépôt » internet et de les installer ainsi d’une façon très simple et dynamique.

III - Fichiers de configuration du serveur Apache
Le fichier de configuration principale d’apache est /etc/httpd/conf/httpd.conf.
Ce fichier est organisé sous forme de directives définissant les paramètres généraux du serveur web.
Il n’est pas possible de lister toutes les directives du fichier httpd.conf mais quelque unes sont
importantes :
 DocumentRoot : définit l’emplacement de la racine du serveur ou sont placés les fichiers du
site web hébergé par le serveur. La valeur par défaut est /var/www/html.
 ServerRoot : répertoire contenant les fichiers du serveur
 Listen : ports sur lesquels le serveur Apache écoute. Par défaut 80
 ServerAdmin : adresse de courrier électronique de l’administrateur
 ServerName : nom d’hôte du serveur. Il ne correspond pas forcément au nom de la machine.
Par contre, il doit être valide, par exemple www.mondomaine.org
 ErrorLog : fichier où des logs d’erreur du serveur. /var/log/httpd/error_log.
 CustomLog : fichier journal d’Apache. /var/log/httpd/access_log.

IV - Lancement/Arrêt/Test du serveur Apache
Lorsqu’il est installé, Apache est lancé comme un service de la station grâce au script de démarrage
/etc/init.d/httpd. Ainsi, pour gérer le serveur Apache on peut soit utiliser la commande service ou
invoquer directement le script de démarrage (il faut être root).
 /etc/init.d/httpd start ou service httpd start : démarre ;
 /etc/init.d/httpd stop ou service httpd stop : stoppe ;
 /etc/init.d/httpd restart ou service httpd restart : redémarre ;

Il existe plusieurs méthodes pour vérifier le bon lancement du serveur Apache :
 Utilisation de la commande service httpd status

On va utiliser l'adresse ip de maroc.maroc1. Nous verrons qu'il y a plusieurs techniques pour faire cela.com et www.maroc2.0.ma Testez en lançant votre navigateur sur http://www.ma Doivent retourner les bonnes pages. Par exemple. VII.company1. Puis ensuite.168.ma </VirtualHost> C'est terminé.domain3. il est souvent désirable. La mise en place de serveurs web virtuels. modifier le fichier de configuration d’Apache de façon à activer l’authentification sur les répertoires à protéger. Pour ce faire.maroc1. 1. Modification du fichier de configuration : #Site secondaire de domain1 <VirtualHost 192.Configuration de base du serveur Apache Configurez votre serveur de noms si ce n'est pas fait.Virtual Host "L'hôte virtuel" se réfère à la pratique de maintenir plus d'un serveur sur une seule machine. les requêtes sur : http://www.ma ServerName : www.1> ServerAdmin root@maroc1.168. Ce fichier est géré à l’aide de la commande htpasswd et doit être créé à l’extérieur du répertoire pointé par DocumentRoot. permet de faire cohabiter plusieurs serveurs sur un même hôte. d'avoir leurs propres espaces avec des serveurs accessibles comme www. puis modifiez le fichier de configuration à l’aide de l’éditeur vi : Exemple: ServerAdmin : root@maroc. . L’exemple suivant présente la création du fichier à l’aide de la commande htpasswd : #htpasswd –c /var/www/html/MotDePasse user Le fichier est lisible et modifiable avec un éditeur de texte mais les mots de passe sont cryptés.ma VI .maroc2. ceux-ci étant différenciés par leur nom d'hôte apparent.1> ServerAdmin root@maroc2.ma DocumentRoot /var/www/html/site2 ServerName www.ma . pour des sociétés partageant un serveur web. Ce sont deux zones de déploiement de site web différentes. il faut d’abord créer une base de données des utilisateurs avec un mot de passe pour chacun d’eux.domain2.ma http://www.ma DocumentRoot /var/www/html/site1 ServerName www.V .ma et www.ista.com pour les url www.Authentification L’authentification est un principe simple. sur un même serveur HTTP.0.company2.Création des mots de passe La base de données contenant les mots de passe des utilisateurs est stockée dans un fichier dont le format est semblable à celui du fichier /etc/passwd de Linux.ma </VirtualHost> <VirtualHost 192. Elle permet de limiter l’accès à un site Web à des utilisateurs autorisés.maroc.

htaccess : AccessFileName . Chaque ligne de ce fichier spécifie un nom d'utilisateur suivi d'un deux-points. AuthGroupFile La directive AuthGroupFile définit le nom du fichier texte contenant la liste des groupes d'utilisateurs destinée à servir de base à l'authentification d'accès.htaccess La configuration du serveur consiste à définir un espace dans lequel l’authentification est nécessaire. Ceci est effectué dans un bloc <Directory> en spécifiant les directives suivantes : #vi . Voici un exemple : AllowOverride All . require valid-user : Seuls les utilisateurs des groupes cités peuvent accéder au répertoire.htaccess. Dans le fichier /etc/httpd/conf/httpd. require Cette directive choisie quels utilisateurs autorisés peuvent accéder à un répertoire. Seul le type Basic est actuellement implémenté. Par défaut. il est parfois nécessaire de modifier la directive AllowOverride de façon à autoriser l’utilisation des fichiers . nomFichier est le chemin d'accès absolu au fichier d'utilisateurs. AuthUserFile La directive AuthUserFile définit le nom du fichier texte dans lequel est enregistrée une liste de noms d'utilisateurs et des mots de passe qui leur sont associés dans le but d'une authentification d'accès. 2.conf c’est la directive AccessFileName qui permet de définir le nom du fichier qui sera reconnu comme étant un fichier de restriction d'accès. puis du mot de passe. AuthName Cette directive indique le nom du schéma d'autorisation.htaccess De plus.Directive d’authentification a. c'est . Fichier .htaccess AuthType Basic AuthName “user” AuthUserFile /var/www/html/MotDePasse require valid­user AuthType : Cette directive sélectionne le type d'authentification pour un répertoire.