Vous êtes sur la page 1sur 27

APACHE HTTP SERVER

1
Petit historique du Worl Wide Web

http://www.w3.org

• Notion d’Hypertexte
1980
• Extension à internet par Tim Berners Lee
• Définition du langage HTML, du protocole HTTP

1990 • Mosaic

Requête HTTP
Client
Requête GET à une URL Serveur
Décodage & Affichage
Flux HTML
HTML

2
Pages dynamiques

CGI bin La requête fait appel à un programme (C, Perl, Fortran …)


Common
qui s’exécute sur le serveur
Gateway Problèmes de sécurité liés à l’accès aux ressources de la machine
Interface

Requête HTTP
Client Serveur
Flux HTML Exécution du
programme qui
génère le HTML

3
Pages dynamiques

Java Le programme Java s’exécute sur le client qui devient une


«machine virtuelle Java »
Problèmes de sécurité sur le client, mais cela permet les
traitements locaux et une plus grande rapidité

http://java.sun.com

Client Requête HTTP


Machine virtuelle Java Serveur
Exécute le programme
localement
Flux HTML +
Java

4
Pages dynamiques

PHP Le script PHP s’exécute sur le serveur grâce à un


Personnel module qui intègre sa sortie dans le flux HTML
Hypertext
Grande souplesse de fonctionnement au détriment de la
Preprocessor
rapidité
http://www.php.net

Requête HTTP
Client Serveur
Interprétation des
Flux HTML scripts PHP par le
module qui l’intègre
au flux HTML
texte HTML + sortie PHP

5
PHP et MySQL

Le script PHP effectue une requête au serveur MySQL


Connexion au serveur, choix de la base de données,
exécution de la requête SQL, récupération des résultats,
déconnexion au serveur.
Serveur
Client Requête HTTP

Flux HTML

Requête MySQL
texte HTML + sortie PHP

MySQL

6
Le serveur APACHE

 Apache est un serveur Web Libre.


 60 % des serveurs Web sur Internet utilisent
APACHE.
 Souvent disponible sur les distributions Linux.
 Riche en fonctionnalités.
 Modulable et extensible.

7
Fichiers de Configurations

 Principale Fichier de configuration :


/etc/httpd/conf/httpd.conf.

 Répertoire principale des fichiers de contenu:


 /var/www/htdocs : contient les fichiers HTML et le
fichiers index
 /var/www/cgi-bin : contient les fichiers CGI.
 /var/www/icones : contient les icônes utilisés.

8
Le fichier HTTPD.CONF
 Le fichier httpd.conf contient les informations de
configuration du serveur APACHE
 Les dernières versions d’Apache recommandent la
fusion de tous les fichiers de configuration dans le
fichier httpd.conf
 Il comportent plusieurs sections:
1. Informations d’identification du serveur et de son
mode de fonctionnement
2. Informations de spécification du contenu (répertoires,
propriétés et droits d’accès sur les fichiers et les
répertoires, hébergement virtuel,
3. Modules inclus (perl, php, etc ..)
4. Etc ….
9
Le fichier HTTPD.CONF
 Mode de fonctionnement d’apache
ServerType standalone  apache se lance d’une
manière autonome.
StartServers 5
Indique le nombre de serveur httpd a lancé au
démarrage.
MaxClient 150
Indique le nombre de serveurs httpd lancés
simultanément.
 Port 80
Indique le numéro de port utilisé par le serveur apache

10
Le fichier HTTPD.CONF
 Utilisateur et groupe propriétaire du démon
Apache
User www
Group www
Indiquent le groupe et l’utilisateur propriétaire du
démon httpd.
 E-mail de l’administrateur du service
ServerAdmin webmaster@ecole.ac.ma
Indique l’é-mail de l’administrateur du serveur

11
Spécification du contenu publié

 Identification du serveur
ServerName www.formation.ma
Indique le nom de domaine du service web
local.
 Spécification du répertoire par défaut du
contenu du site
DocumentRoot /var/www/htdocs
Indique le répertoire par défaut ou se trouvent
les fichiers .html publiés.
12
Spécification du contenu publié
 Spécification de l’emplacement du répertoire
contenant les scripts CGI
ScriptAlias /cgi-bin/ /var/www/cgi-bin
 Spécification des Alias
Un Alias est un répertoire publié à partir de la racine sous un autre
nom:
Alias /mysql/ "D:/Program Files/EasyPHP/phpmyadmin/«
Permet d’accéder au contenu de ce répertoire en tapant l’URL:
http:www.site.ma/mysql
 Spécification des pages par défaut:
DirectoryIndex index.html index.shtml index.php index.wml
index.pwml index.php3
Cette option permet d’identifier la page qui constitue le point d’entrée
au site, la liste sera prise par Apache selon l’ordre d’apparence

13
Spécification du contenu publié
Configuration du Répertoire:
Définit le répertoire où se trouvent les fichiers CGI.
 Le répertoire du site

Le répertoire dans Apache est le point de départ pour


la publication d’un site web
La spécification d’un répertoire est incluse dans un
enregistrement entouré des mots clé
<Directory /chemin/du/répertoire>
………options de configuration
</Directory>

14
Spécification du contenu publié
 Le répertoire (suite)
Apache publie le contenu d’un répertoire par
défaut jusqu’à ce que l’utilisateur modifie ce
comportement
La configuration d’un répertoire doit comporter au
moins:
 Le chemin d’accès au répertoire
 La page par défaut (optionnel)
 Le mode d’accès au répertoire
 Les fichiers logs liées à ce répertoire

15
Spécification du contenu publié
 Le Répertoire (suite)
Configuration du chemin du contenu d’un répertoire :
<Directory /var/www/>
Options FollowSymLinks
Autorise à suivre les liens symboliques
Options Indexes permet de visualiser le contenu du site
(déconseillé)
AllowOverride None utilise les droits d’accès déjà définis
sur le répertoire et non ceux définis dans le fichier
.htaccess
Order allow,deny applique les règles allow puis deny
Allow from all accepter les requêtes de n’importe quel
hôte ou nom de domaine.
</Directory> Termine la configuration du Répertoire

16
TP N°=1

Re configurer le serveur Apache, en lui indiquant les


informations de base suivantes:
 L’adresse IP et le nom de domaine

 Modifier le contenu du répertoire par défaut et faire


les vérifications nécessaires
 Créer un script simple affichant un message et le
mettre dans le répertoire CGI, tester le résultat.
 Modifier les options de configuration vu dans le
cours et constater la différence dans le
comportement d’Apache

17
Virtual Hosting sous APACHE
Le virtual Hosting permet d’héberger sur le même serveur
plusieurs sites WEB identifiés par des noms de
domaines différents.
Le principe est d’attacher à un serveur web s’exécutant sur
une machine identifiée par une adresse IP unique,
plusieurs sites identifiés par leur nom de domaine.
Au niveau du DNS cela se traduit par la mise en
correspondance entre les différents noms de domaine
des sites avec une adresse IP unique:
www.ecole.ma. IN A 192.168.1.5
www.machin.formation.ma. IN A 192.168.1.5
www.truc.edu.ma. IN A 192.168.1.5

18
Configuration du Virtual Hosting

Spécification de l’adresse IP auquel va s’attacher


les différents sites web hébergés
NameVirtualHost 192.168.1.5
l’adresse IP spécifiée indique qu’elle sera l’adresse
cible pour les sites WEB hébergés.

19
Enregistrement minimum d’un
VirtualHost
Une configuration minimale d’un site web dont le nom de
domaine est : www.virtual.ma hébergé dans un
serveur dont l’adresse IP est: 192.168.1.5 à l’intérieur
du répertoire /var/home/virtual sera de la forme
suivante:
<VirtualHost 192.168.1.5 >
ServerAdmin webmaster@ecole.ma
DocumentRoot /var/home/ecole
ServerName www.virtual.ma
</VirtualHost>
20
TP N°=2

 Configurer au moins deux sites virtuels dans le


même serveur Apache et faire les vérifications
nécessaires.
 Éventuellement demander les modifications
nécessaires au niveau du serveur DNS pour les
résultats voulus
 Modifier les différentes options de répertoire pour
chaque site web hébergé et tester les différences.

21
Politique d’accès aux Documents
Chaque domaine virtuel peut appliquer une politique
d’accès qui lui est propre.
Deux types d’accès existent:
 Accès contrôlé par les droits d’accès systèmes sur
le répertoire (droit de lecture, écriture etc )
 Accès protégé par mots de passe: et dans ce cas
l’utilisateur sera invité à fournir un username/mot
de passe valide pour visualiser les pages

22
Configurer la restriction d’accès aux
Documents
 Stratégie globale:
 La restriction s’appliquera sur tous les documents (c’est-
à-dire tous les sites hébergés)
 La première étape consiste à créer un fichier contenant
les utilisateurs avec leurs mots de passe pour
l’authentification, par exemple le fichier web-users
 La deuxième étape consiste à modifier la configuration
de httpd.conf afin d’authentifier les accès au site

23
Configurer la restriction d’accès aux
Documents
 Première Etape:
 La commande htpasswd permet de créer le fichier des
utilisateurs avec les noms d’utilisateur et leur mot de
passe séparés par :, exemple :
 htpasswd –c web-users username passwd: Permet
de créer le fichier web-users en lui incluant un utilisateur
et son mot de passe.
 Il ressemble au fichier suivant:
 omar:WrU808BHQai36
 ali:iABCQFQs40E8M
 mina:FAdHN3W753sSU

24
Configurer la restriction d’accès aux Documents
 Deuxième Étape: Rajouter dans la config du répertoire
du site concerné les lignes suivantes
 AuthType Basic|Digest type du cryptage des mots de passe
 AuthName authentication le titre qui s’affiche sur la fenêtre de
l’authentification
 AuthUserFile /etc/httpd/web-users le fichier password
 AuthGroupFile /etc/httpd/group le fichier de groupe des
utilisateurs autorisés.
 require valid-user nécessite un utilisateur valide dans le
fichier .htaccess
 require user martin joe autorise seulement martin et joe à y
accéder
 require groupe groupe1 groupe2 autorise les membres du
groupe 1 et groupe 1
25
Configurer la restriction d’accès aux
Documents
Structure d’un fichier groupe:
Chaque ligne contient le nom d’un groupe suivi
de la liste des utilisateurs de ce groupe
séparés par un « : »
staff:martin jane
admin: art adminuser
Groupe1: abdo reda mina

26
TP N°=3

 Configurer la restriction d’accès de votre site


web par un nom d’utilisateur et un mot de
passe.
Essayer plusieurs configurations:
 Authentification à partir d’un fichier
d’utilisateurs,
 A partir d’un fichier de groupe,
 Ou bien avec des utilisateurs bien définis

27

Vous aimerez peut-être aussi