Vous êtes sur la page 1sur 13

Université Cheikh anta diop

Ecole Supérieure Polytechnique


Departement Génie Informatique

Apache

Service Web

Présenté par: Bassirou NGOM et Abdoulaye KAMA


élèves ingénieurs en Télécoms et Réseaux
Abstract
Configuration d'un serveur Apache 2 et mise en place de services web

Résumé
Installation et configuration d'un serveur HTTP avec Apache 2.
Mots clés “Serveur Web”, “Serveur HTTP”, “Apache 2”
Description et objectifs de la séquence
Le document doit vous permettre de mettre en place un serveur Apache supportant :
➢ des accès anonymes,

➢ des accès authentifiés par Apache,

➢ un accès à des pages personnelles,

➢ des scripts CGI,

➢ des serveurs web virtuels.

Introduction
Le web est devenu le moyen rapide d’accès aux ressources numériques par les usagers
au sein des écoles, entreprises et institutions. Ces ressources hébergées sur des serveurs web
sont accessibles en local ou via Internet. On désigne souvent le web par WWW (Word Wide
Web) qui signifie tout simplement la toile. Les pages web hébergées sur les serveurs web sont
écrites en HTML et exploitées par le protocole HTTP (HyperText Transfer Protocol). Il existe
plusieurs types de serveurs web, mais ce chapitre est consacré à l’installation, et la mise en
œuvre d’un serveur web apache sous Linux. Des études de cas sont traitées pour faciliter
l’apprentissage.

I. Installation et présentation du serveur Apache 2


1. Installation du serveur Apache 2
Il existe deux méthodes d'installation : Installation avec les sources et celle avec le gestionnaire de
paquet. Dans ce tuto nous allons l'installé avec le gestionnaire de paquet
Pour installer apache on verifie si la liste des paquets du systéme est à jour puis on lance
l'installation par ces lignes de commande
apt-get update

apt-get install apache2 libapache2-mod-php5

2. Présentation de l'environnement

Le serveur HTTP Apache2 est un programme modulaire. Mise à part quelques modules directement
intégrés dans le programme binaire httpd, l'administrateur peut choisir les fonctionnalités qu'il
souhaite en activant des modules.
De même, il existe plusieurs fichiers de configuration tous présents dans /etc/apache2/.

• Le fichier de configuration principal est /etc/apache2/apache2.conf Il contient les


paramètres généraux et communs à tous les serveurs et plusieurs "Include" vers les autres
fichiers.
• Le fichier de configuration /etc/apache2/ports.conf contient la liste des ports en
écoute.
• On trouve tous les fichiers concernant les modules dans le répertoire
/etc/apache2/mods-available/.

• On trouve tous les fichier de configuration des serveurs web non-activés dans le répertoire
/etc/apache2/site-available et les sites qui sont activés dans
/etc/apache2/site-enable/

II. Mise en place d'un service web


Ce paragraphe décrit les principaux paramètres pour mettre en place un service HTTP minimum.
Prenez la peine de faire une sauvegarde des fichiers de configuration avant de procéder à toutes
modifications (par exemple : cp -rp /etc/apache2 /etc/apache2.init).
Les modifications ne seront prises en compte que si les fichiers de configurations sont relus
/etc/init.d/apache2 reload ou si le service est redémarré /etc/init.d/apache2 restart.
Vous pouvez vérifier la syntaxe des fichiers de configuration par la commande : apache2 -t
Dans le fichier /etc/apache2/ports.conf

• Listen 80, indique quel est le port utilisé par le service (par défaut 80). Il est possible
d'utiliser un autre port, par contre vous devrez spécifier au navigateur quel est le port utilisé
par le serveur. Si vous configurez par exemple le port 8080 (Listen 8080) sur une machine
www.synapse.esp, vous devrez spécifier dans le navigateur
www.synapse.esp:8080, pour que le serveur reçoive et traite votre requête.

Dans le fichier /etc/apache2/apache2.conf


✔ user www-data et group www-data, spécifient le compte anonyme utilisé par le serveur une
fois qu'il est lancé. En effet, pour accéder aux ports inférieurs à 1024, le serveur utilise un
compte administrateur, ce qui présente des dangers. Une fois le processus actif, il utilisera
l'UID d'un autre compte (ici www-data). Ce compte doit pouvoir lire les fichiers de
configuration et ceux de la racine du serveur HTTP (attention donc aux droits sur les pages
web desservies). D'autres distributions utilisent le compte “nobody” ou “apache”
✔ ServerRoot /etc/apache2, indique l'adresse du répertoire racine du serveur, où sont
stockés les fichiers de configuration du serveur HTTP. Cette adresse peut être modifiée.
✔ PidFile /var/run/apache2.pid, indique le fichier où le serveur en exécution stocke
son numéro de processus (PID).
Il est fréquent d'héberger plusieurs serveurs web sur un même poste aussi la déclaration et le
paramétrage des différents serveurs est déportée dans des fichiers à placer dans
/etc/apache2/sites-available/. Le fichier default y est déjà présent pour assurer le paramétrage du
site principal par défaut dont la racine se trouve, toujours par défaut à /var/www/ ou /var/www/html.
Le site par défaut est déjà activé ; on retrouve donc un lien vers ce fichier dans /etc/apache2/sites-
enabled.
Sinon, le principe est le suivant :
 On crée un fichier de configuration (appellé conf_site_synapse) pour un site web spécifique
dans /etc/apache2/sites-available/.

 On active ce fichier de configuration par la commande : a2ensite conf_site_synapse ; cette


commande a pour effet de créer un lien dans /etc/apache2/sites-enabled/ qui
pointe vers /etc/apache2/sites-available/conf_site_synapse.

Les directives qui suivent correspondent à des serveurs spécifiques et sont donc incluses dans les
fichiers de configuration présents dans /etc/apache2/sites-available/ , notamment
celui par défaut /etc/apache2/sites-available/default.

✔ ServerAdmin webmaster@localhost, précise quel est le compte qui reçoit les messages. Par
défaut un compte spécifique administrateur de site web (à modifier pour une adresse comme
root@synapse.esp).

✔ ServerName www.sysnapse.esp, indique le nom ou l'alias avec lequel la machine est


désignée. Par exemple, l'hôte bng.synapse.esp, peut avoir le nom d'alias
www.synapse.esp. Ce nom doit correspondre à une adresse IP, donc être renseigné dans
un serveur DNS (ou dans un premier temps mais à éviter en production dans un fichier hosts
sur le cient). S'il n'est pas défini, alors le serveur tentera de le résoudre à partir de sa propre
adresse IP.
✔ DocumentRoot /var/www/html, indique l'emplacement par défaut des pages HTML quand
une requête accède au serveur. Exemple : la requête http://www.synapse.esp/index.html
pointe en fait sur le fichier local /var/ww/html/index.html sauf si le répertoire est pointé par
une directive tel que Alias (voir ci-après).
✔ Alias /CheminVu/ /CheminRéel/, par exemple : "/icons/ /usr/share/apache/icons/", ce
paramètre permet de renommer, à la manière d'un lien logique, un emplacement physique
avec un nom logique.
Exemple: vous voulez que www.synapse.esp/presentation/index.html, ne corresponde pas
physiquement à un répertoire sur la racine du serveur HTTP (défini par la directive
précédente DocumentRoot) mais à un emplacement qui serait /usr/local/essai. Vous pouvez
mettre dans le fichier de configuration d'Apache un alias de la forme: alias /presentation/
/usr/local/essai/

1.Hebergement Virtuel par adresse


La manière la plus facile d'assurer un hébergement virtuel consiste à employer une combinaison
adresse IP/port à laquelle le client se connecte. Apache peut être configuré pour accepter un
hébergement virtuel basé sur IP à l'aide des sections <VirtualHost> . Chaque section <VirtualHost>
contient des directives de configuration qui seront appliquées aux requêtes envoyées à l'adresse IP
(et, en option, au numéro de port) spécifiée dans la balise ouvrante. Bien entendu, le serveur Apache
qui s'exécute doit avoir été configuré avec ces adresses IP.
Mise en œuvre :
✗ créer le dossier pour le site dans /var/www/html/ soit /var/www/html/synapse

mkdir /var/www/html/synapse
vim /var/www/html/synapse/index.html

Dans le fichier index on y met le code html suivant:

✗ donner les droits d'acces sur le dossier du site

chown www-data:www-data -R /var/www/html/synapse/

✗ créer le fichier de configuration du site


on y met les lignes suivantes

192.168.0.1 : représente ici l'adresse ip du serveur


Par défaut le numero de port est 80. Pour spécifier un autre port d'écoute du serveur, on ajoute dans
le fichier ci-dessus avant la balise vitualhost, Listen numPort exemple:
Listen 8090
<VirtualHost 192.168.0.1:8090>
…..
</VirtualHost>

✗ activer le site par la commande a2ensite

✗ relire les fichier de configuration

service apache2 reload

Pour le test dans le navigateur on tape l'adresse ip indiquée dans le fichier de configuration
2. Hebergement Virtuel par adresse
L'incovenient de l'hébergement bas sur ip est que l'on doit affecter une adresse ip pour chaque hôte
virtuel. Pour remédier à ce probléme on a l'hébergement virtuel basé sur le nom qui consiste à
identifier chaque site virtuel par un nom distinct.
Mise en œuvre:
Pour la mise en œuvre nous allons créer deux sites par nom

✗ créer des dossiers pour les sites dans /var/www/html/ soit /var/www/html/siteNom1 pour le
site1 et /var/www/html/siteNom2

mkdir /var/www/html/siteNom1
mkdir /var/www/html/siteNom2
touch /var/www/html/siteNom1/index.html
touch /var/www/html/siteNom2/index.html

Dans les fichiers index.html on y met respectivement les codes html suivant:

✗ donner les droits d'acces sur aux dossiers des sites

chown www-data:www-data -R /var/www/html/siteNom1


chown www-data:www-data -R /var/www/html/siteNom2

✗ on créer les fichiers de configuration


Pour le premier fichier de configurations:

Pour le second fichier de configuration :

Maintenant comme on a pas encore un serveur DNS fonctionnel permettant de faire la résolution de
l'adresse ip du serveur 192.168.0.1 aux nom de domaine site1.synapse.esp et www.synapse.sn, nous
allons utiliser le fichier /etc/hosts pour définir localement l'a résolution

vim /etc/hosts

dans lequel met les lignes suivantes

✗ on active les
sites crées
3. Redirection de site
Les directives de configuration décrites dans les sections précédentes demandent à httpd d'extraire
un contenu depuis un emplacement spécifique du système de fichiers et de la retourner au client. Il
est cependant parfois souhaitable d'informer le client que le contenu demandé est localisé à une
URL différente, et de demander au client d'élaborer une nouvelle requête avec la nouvelle URL. Ce
processus se nomme redirection et est implémenté par la directive Redirect. Par exemple, si le
contenu du répertoire /synapse/ sous DocumentRoot est déplacé vers le nouveau répertoire
/clubDGI/, vous pouvez demander aux clients de le requérir à sa nouvelle localisation comme
suit :
Redirect permanent /synapse/ http://www.synapse.esp/clubDGI/

Ceci aura pour effet de rediriger tout chemin d'URL commençant par /synapse/ vers le même
chemin d'URL sur le serveur www.synapse.esp en remplaçant /synapse/ par /clubDGI/.
Vous pouvez rediriger les clients non seulement sur le serveur d'origine, mais aussi vers n'importe
quel autre serveur.

4.site web sécurisé


Pour réaliser un site web sécurisé, on utilise un le prorocole ssl. Pour que le protocole SSL puisse
fonctionner avec le Serveur HTTP Apache2, il faut activer le module ssl avec la commande :
a2enmod ssl

puis recharger la configuration d'Apache2 faites :


sudo service apache2 force-reload

✗ génération des certificats

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -out /etc/apache2/server.crt
-keyout /etc/apache2/server.key

Explications :

• -x509 -nodes donne le type de certificat voulu


• -days 365 indique la durée de validité (en jours) de votre certificat
• -newkey rsa:1024 demande une clé RSA de 1024 bits - d'après la doc apache, il est
déconseillé de créer une clé plus grosse pour des histoires de compatibilité
• -out /etc/apache2/server.crt est le chemin de votre certificat
• -keyout /etc/apache2/server.key est le chemin de la clé privée

Répondez alors aux questions posées :


✗ créer le dossier pour le site

✗ copier la configuration du par defaut des site sécurisé

cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/site_secure.conf

✗ Ouvrir le fichier précedemment créer et

▪ modifier l'adresse d'écoute

▪ modifier le dossier du site

▪ indiquer l'emplacement des certificats


✗ activer le site et redemarrer le service

pour le test vous ouvrez un navigateur et taper l'url https://192.168.0.1

pour la première fois votre navigateur ne reconné pas le certificat

cliquer sur I Understand the Risks puis ajouter l'exception et accepter le certificat
Merci

Vous aimerez peut-être aussi