Mise en Place Des Serveurs Apache Et DNS
Mise en Place Des Serveurs Apache Et DNS
Mise en Place Des Serveurs Apache Et DNS
serveurs Apache et
DNS
Par wawanopoulos
www.openclassrooms.com
Licence Creative Commons 4 2.0
Dernire mise jour le 22/08/2010
Sommaire
2 Sommaire ...........................................................................................................................................
3 Mise en place des serveurs Apache et DNS ......................................................................................
3 Configuration IP du serveur ...............................................................................................................................................
3 Introduction ..................................................................................................................................................................................................................
3 Attribution d'une adresse IP notre machine .............................................................................................................................................................
4 Configuration du serveur DNS ..........................................................................................................................................
6 Mise en place du serveur Apache .....................................................................................................................................
6 Installation du paquet apache2 sous Linux .................................................................................................................................................................
7 Cration d'une page HTML de test ..............................................................................................................................................................................
7 Configuration du serveur Apache ................................................................................................................................................................................
10 Hbergement virtuel ........................................................................................................................................................
10 Hbergement virtuel par nom de domaine ................................................................................................................................................................
12 Hbergement virtuel par port .....................................................................................................................................................................................
14 Hbergement virtuel par adresse IP ..........................................................................................................................................................................
15 Partager .....................................................................................................................................................................................................................
2/16
www.openclassrooms.com
Mise en place des serveurs Apache et DNS
Par wawanopoulos
Mise jour : 22/08/2010
Difficult : Intermdiaire Dure d'tude : 15 jours
Apache est un serveur web permettant de partager des pages web stockes localement des utilisateurs connects : des clients.
La configuration d'un tel serveur peut paratre fastidieuse puisqu'elle demande quelques connaissances de base de Linux, mais
ce tutoriel a pour but de vous prouver que cette configuration peut tre trs simple.
Pour vous mettre l'eau la bouche, voici ce que vous devriez obtenir !
Sommaire du tutoriel :
Configuration IP du serveur
Configuration du serveur DNS
Mise en place du serveur Apache
Hbergement virtuel
Configuration IP du serveur
Introduction
Avant de mettre en place notre serveur apache, il est ncessaire d'attribuer des paramtres rseaux pour notre machine. Je veux
bien sur parler d'une adresse IP et d'un nom de machine grce au serveur DNS.
Ohh non, je suis dj perdu, je ne sais pas faire a !
Pas de panique, voici dans les parties suivantes, un petit rappel sur la configuration d'une adresse IP et d'un serveur DNS.
La configuration d'une adresse IP peut se faire de diffrentes manires. Dans notre cas, il s'agit d'attribuer notre serveur, une
adresse IP qui soit persistante, c'est dire qu'elle soit toujours la mme aprs un redmarrage de l'ordinateur.
Vous comprenez pourquoi ? Parce que lorsque nous allons mettre en place le serveur DNS, celui-ci se chargera de faire
la correspondance entre une adresse IP et un nom de machine. Il ne faut donc pas que l'adresse IP change.
Attribution d'une adresse IP notre machine
Pour attribuer une adresse IP votre machine, il est ncessaire d'ouvrir un fichier de configuration : le fichier interfaces.
Code : Console
vi /etc/network/interfaces
Sommaire 3/16
www.openclassrooms.com
C'est quoi "vi" ?
Il s'agit d'un diteur de texte prsent sous Linux, qui va nous permettre d'ouvrir notre fichier. Vous pouvez en utiliser un autre
comme gedit par exemple.
Une fois le fichier ouvert, remplacez simplement les quelques lignes prsentes l'intrieur, par celles-ci :
Code : Console
iface eth0 inet static
address 192.168.21.6
netmask 255.255.255.0
broadcast 192.168.21.255
Pour prendre en compte les modifications, enregistrez votre travail sous vi (en tapant ":wq"), et redmarrez votre interface en
tapant ceci :
Code : Console
/etc/init.d/networking restart
Flicitations, vous venez d'attribuer une adresse IP fixe votre machine !
Passons dsormais la mise en place du serveur DNS !
Configuration du serveur DNS
Le rseau est un rseau local en 192.168.21.0/24. Il ny a aucune passerelle. Lordinateur salon.sdz.tp (192.168.21.1) est le serveur
DNS. Cela indique que chaque client doit renseigner sa configuration sur cette machine. Quand je parle de configuration, il s'agit
de renseigner l'adresse IP du client et un nom de machine associ. Chaque poste est connect au rseau en utilisant linterface
eth0.
Comme vous le voyez, nous avons choisi un nom de domaine: sdz.tp.
Cela veut dire que chaque ordinateur client possdant un nom pourra tre accessible via l'adresse suivante : nomduclient.sdz.tp.
Pour crer ce nom de domaine, il faut se rendre dans le fichier named.conf :
Code : Console
vi /etc/named.conf
Dans ce fichier se trouve la configuration de notre nom de domaine:
Code : Console
Zone sdz.tp { //Il s'agit de la zone direct. Voir explications ci-dessous
Type master; //Cette ligne indique que le type est matre c'est dire qu'il s'agit du nom de domaine principal
File /var/cache/bind/sdz.tp.hosts ; //Il s'agit du chemin pour accder au fichier de zone direct
};
Zone 21.168.192.in-addr.arpa{ //Il s'agit de la zone inverse. Voir explications ci-dessous
Type master; //Cette ligne indique que le type est matre c'est dire qu'il s'agit du nom de domaine principal
Mise en place des serveurs Apache et DNS 4/16
www.openclassrooms.com
File /var/cache/bind/sdz.tp.rev; //Il s'agit du chemin pour accder au fichier de zone inverse
};
Le fichier de zone directe permet partir de n'importe quel nom du type *.sdz.tp de fournir l'adresse IP de la machine.
On dit que la machine serveur DNS a autorit sur la zone sdz.tp.
Le fichier de zone inverse permet partir de n'importe quelle adresse IP du type 21.168.192.* de fournir l'adresse de la machine.
On dit que la machine serveur DNS a autorit sur la zone 110.50.210.IN-ADDR-ARPA.
Notre serveur DNS a donc autoris sur 2 zones : sdz.tp et 21.168.192.in-addr.arpa
Maintenant que notre nom de domaine est cr, il faut dclarer chaque machine cliente avec un nom associ. Cette dclaration se
fait dans les fichiers de zone directe et inverse associ notre nom de domaine : sdz.tp.hosts et sdz.tp.rev.
Code : Console
vi /var/cache/bind/sdz.tp.rev
Et ajoutez la ligne suivante :
Code : Console
4 IN PTR sdz.sdz.tp.
Qu'est-ce que a veut dire ?
PTR associe une adresse IP un enregistrement de nom de domaine, aussi dit reverse puisqu'il fait exactement le contraire du
A (ci-dessous).
Ajoutons maintenant l'enregistrement dans le fichier de zone direct :
Code : Console
vi /var/cache/bind/sdz.tp.hosts
Code : Console
sdz IN A 192.168.21.6
Qu'est-ce que a veut dire ?
faire correspondre un nom d'hte une adresse IPv4 de 32 bits distribus sur quatre octets (exemple : 192.168.21.2).
Il ne reste qu' configurer les clients pour leur indiquer l'adresse du serveur DNS.
Mise en place des serveurs Apache et DNS 5/16
www.openclassrooms.com
Sur chaque client, ouvrez le fichier resolv.conf :
Code : Console
Vi etc/resolv.conf
Et compltez le avec ces lignes :
Code : Console
Search sdz.tp. //Le client cherchera le nom de domaine sdz.tp
Nameserver 192.168.21.1 //L'adresse IP du serveur DNS (la machine "salon")
Pas mal, non ?
Mise en place du serveur Apache
Voil, nous y sommes !
C'est dans cette partie que vous allez mettre en place notre serveur HTTP apache et le tester !
Au travail !
Installation du paquet apache2 sous Linux
La premire tape est l'installation du paquet apache2. Le paquet ? Oui, sous Linux, pour ajouter un composant
supplmentaire, il faut installer "son paquet" correspondant, et dans notre cas le paquet installer s'appelle "apache2".
Pour ce faire, ouvrez une console et tapez ceci :
Code : Console
sudo apt-get install apache2
Quelques explications :
sudo est un mot-cl qui permet de faire des manipulations en mode root c'est dire en mode "administrateur" ;
apt-get install est la commande par dfaut pour installer un paquet ;
apache2 est le nom du paquet que je souhaite installer.
Note : Si le systme vous pose des questions, rpondez "yes" pour passer l'tape suivante.
Si vous obtenez une erreur, tapez cette commande : sudo apt-get update . Celle-ci aura pour but de mettre
jour la liste des paquets logiciels disponibles pour votre environnement Linux.
Vous pouvez galement installer le paquet apache2 en passant par l'interface graphique. Si vous utilisez Ubuntu,
rendez-vous dans le menu Systme puis Gestionnaire de paquet Synaptic et recherchez le paquet dsir.
Mise en place des serveurs Apache et DNS 6/16
www.openclassrooms.com
Vous venez maintenant d'installer le paquet apache2 qui contient tous les fichiers de configuration du serveur. Il ne reste plus
qu' le configurer ! Enfin, plus que... faon de parler quoi.
Cration d'une page HTML de test
Avant de passer la configuration du serveur apache, nous allons crer une mini page web en HTML qui sera la page d'accueil
de notre serveur Apache.
Crons tous d'abord le dossier qui contiendra cette page :
Code : Console
mkdir /var/www/sdz
La commande mkdir permet de crer un dossier sous Linux.
On se dplace dans ce dossier :
Code : Console
cd /var/www/sdz
La commande cd permet de se dplacer dans un dossier sous Linux.
lintrieur de ce dossier, on cre une page HTML nomme index.html :
Code : Console
vi index.html
Cette commande cre le fichier index.html, et nous ouvre le fichier vide. Ajoutons maintenant ces quelques lignes:
Code : HTML
<html>
<head> <title> Notre serveur Apache </title> </head>
<body> <p> Voici la page d'accueil de votre serveur Apache ! </p>
</body>
</html>
Enregistrez votre travail, et voil, nous possdons maintenant une page web pour notre serveur apache. Passons dsormais la
configuration du serveur. Enfin !
Configuration du serveur Apache
Nous allons aborder deux exemples de configuration du serveur.
Mise en place des serveurs Apache et DNS 7/16
www.openclassrooms.com
1er exemple : Configuration du serveur apache sans restrictions daccs c'est dire sans mot de passe. Dans ce cas, tout le
monde peut accder notre serveur.
2me exemple : Configuration du serveur apache avec authentification basique des utilisateurs en respectant simultanment les
rgles suivantes : accs permis seulement partir de la machine salon identifie par son adresse IP ou son nom et accs par mot
de passe pour les utilisateurs admin et master.
1er exemple :
Dplaons-nous dans le dossier apache2 :
Code : Console
cd /etc/apache2/sites-available
Crons dans ce dossier le fichier sdz. Ce fichier contiendra la configuration du serveur apache pour le nom de domaine sdz.
Code : Console
vi sdz
Et insrez l'intrieur les quelques lignes suivantes :
Code : Console
NameVirtualHost 192.168.21.6:80 //Indiquez ici l'adresse IP de la machine serveur, suivie du port 80 qui est le port http
<VirtualHost 192.168.21.6 :80> //Indiquez galement ici l'adresse IP de la machine serveur</couleur>
ServerName sdz.truc.tp //Cette ligne est optionnelle. Vous pouvez indiquez le nom de domaine de la machine si elle en possde un
DocumentRoot /var/www/sdz //Indiquez ici le chemin de l'accs au fichier index.html
<Directory /var/www/sdz> //Indiquez ici le chemin du rpertoire apache par dfaut
Order allow,deny //Cette ligne reprsente les diffrentes options pour un utilisateur. Soit permettre, soit inetrdire l'accs
Allow from all //Cette ligne permet l'accs au serveur tous les utilisateurs
</Directory>
</VirtualHost>
Maintenant que vous avez cr le fichier de configuration dans le dossier sites-available, il est ncessaire "d'activer" ce domaine
en crant un lien symbolique dans le dossier sites-enabled (qui est le dossier contenant les sites dits "actifs") :
Code : Console
sudo ln -s /etc/apache2/sites-available/sdz /etc/apache2/sites-
enabled/sdz
Afin de prendre en compte votre configuration, redmarrez le serveur apache.
Code : Console
/etc/init.d/apache2 restart
Vous pouvez dsormais tester l'accs votre serveur apache en tapant dans un navigateur web (Internet Explorer ou Mozilla
Firefox) :
Mise en place des serveurs Apache et DNS 8/16
www.openclassrooms.com
http://192.168.21.6
ou (si vous avez configurez un serveur DNS)
http://sdz.truc.tp
Afin de suivre les connexions au serveur apache et avoir des renseignements sur les erreurs lies son utilisation, on
peut
utiliser les commandes suivantes.
Code : Console
tail -f /var/log/apache2/access.log
ou encore
Code : Console
tail -f /var/log/apache2/error.log
Ceci termine notre premier exemple. Comme vous le voyez, dans ce cas tout le monde peut accder notre page.
2me exemple :
Intressons-nous maintenant au deuxime exemple, un peu plus intressant en configurant l'accs au serveur apache qu' partir
d'une seule machine (salon) et en protgeant l'accs par mot de passe pour les utilisateurs admin et superadmin.
Les modifications se font au niveau du mme fichier :
Code : Console
vi /etc/apache2/sites-available/sdz
Remplacez maintenant les lignes du fichier par celles-ci :
Code : Console
NameVirtualHost 192.168.21.6:80
<VirtualHost 192.168.21.6:80>
ServerName sdz.sdz.tp
DocumentRoot /var/www/sdz
<Directory /var/www/sdz>
Order allow,deny
Allow from 192.168.21.1 //Cette ligne dfinit l'accs au serveur uniquement partir de la machine possedant l'adresse IP 192.168.21.1
Authname salon //Indiquez sur cette ligne le nom de la machine qui pourra se connecter.
Authtype basic //Cette ligne indique que le systme utilisera le fichier .htpasswd pour grer les utilisateurs
AuthUserFile /var/www/sdz/.htpasswd //Il s'agit du fichier qui sera utilis pour grer les connexions.
Require valid-user //Cette ligne indique que pour que la connexion s'effectue, il est necessaire que l'utilisateur existe.
Satisfy all
</Directory>
</VirtualHost>
Enregistrez et quittez le fichier. Passons maintenant la configuration du fichier .htaccess.
Code : Console
Mise en place des serveurs Apache et DNS 9/16
www.openclassrooms.com
Authname Accs protg //Cette ligne permettra d'afficher Accs protg lors de l'accs au serveur
AuthType Basic
AuthUserFile /var/www/sdz/htpasswd //Cette ligne indique le chemin du fichier qui contiendra les mots de passe de connexion des utilisateurs.
Require valid-user
Pour finir, crons l'accs pour les deux utilisateurs admin et superaddmin. Tapez simplement dans une terminal les lignes
suivantes :
Code : Console
htpasswd -c -m htpasswd admin
htpasswd -m htpasswd superadmin
Enfin, afin de prendre en compte votre configuration, redmarrez le serveur apache.
Code : Console
/etc/init.d/apache2 restart
Voil, vous pouvez tester l'accs votre serveur apache. Normalement, vous ne devriez pouvoir y accder qu' partir de la
machine "salon" identifie par l'adresse IP 192.168.21.1 et en utilisant un des deux utilisateurs admin ou superadmin.
Ceci termine la partie concernant la configuration d'un serveur HTTP apache.
Passons maintenant aux diffrents types d'hbergements possibles pour un serveur apache.
Hbergement virtuel
Hbergement virtuel par nom de domaine
Ce type d'hbergement est utilis pour accueillir plus d'un nom de domaine sur le mme ordinateur sur la mme adresse IP.
Afin de tester ce type dhbergement virtuel, chaque machine doit tre recense sous plusieurs noms diffrents sur le DNS en
utilisant les enregistrements de type A et CNAME.
Maintenant que la configuration DNS n'a plus de secret pour vous, rajouter dans le fichier hosts du domaine
(/var/cache/bind/sdz.truc.hosts), les informations suivantes :
Code : Console
sdzVH1 IN CNAME sdz
sdzVH2 IN CNAME sdz
Crons les trois fichiers index.html contenant comme informations le nom de domaine du serveur virtuel et plaons-les dans les
rpertoires correspondant :
Code : Console
mkdir /var/www/sdzVH1
mkdir /var/www/sdzVH2
Mise en place des serveurs Apache et DNS 10/16
www.openclassrooms.com
lintrieur de chaque dossier, on cre une page HTML nomme index.html :
Code : HTML
<html>
<head> <title> Notre serveur Apache </title> </head>
<body> <p> Voici la page d'accueil de votre serveur Apache sdzVH1 !
</p> </body>
</html>
Code : HTML
<html>
<head> <title> Notre serveur Apache </title> </head>
<body> <p> Voici la page d'accueil de votre serveur Apache sdzVH2 !
</p> </body>
</html>
On cre deux fichiers de configuration pour nos deux nouveaux domaines dans le dossier /etc/apache2/sites-available afin de
crer ces deux serveurs virtuels pointant sur deux rpertoires diffrents.
Code : Console
vi /etc/apache2/sites-available/sdzVH1
On ajoute dans ce fichier les lignes suivantes :
Code : Console
NameVirtualHost 192.168.21.6:80
<VirtualHost 192.168.21.6:80>
ServerName sdzVH1.truc.tp
ServerAlias sdzVH1
DocumentRoot /var/www/sdzVH1
<Directory /var/www/sdzVH1>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
De mme pour l'autre domaine :
Code : Console
vi /etc/apache2/sites-available/sdzVH2
On ajoute dans ce fichier les lignes suivantes :
Code : Console
Mise en place des serveurs Apache et DNS 11/16
www.openclassrooms.com
NameVirtualHost 192.168.21.6:80
<VirtualHost 192.168.21.6:80>
ServerName sdzVH2.truc.tp
ServerAlias sdzVH2
DocumentRoot /var/www/sdzVH2
<Directory /var/www/sdzVH2>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
C'est l'heure d'activer nos deux hbergements virtuels. Pour ce faire, il faut crer des liens symboliques dans le dossier
/etc/apache2/sites-enabled (qui recensent les sites actifs) pour que la configuration soit lue lors du dmarrage d'apache.
Code : Console
sudo ln -s /etc/apache2/sites-available/sdzVH1 /etc/apache2/sites-
enabled/sdzVH1
sudo ln -s /etc/apache2/sites-available/sdzVH2 /etc/apache2/sites-
enabled/sdzVH2
Redmarrez maintenant le serveur apache !
Code : Console
/etc/init.d/apache2 restart
Il ne vous reste plus qu' tester. Vous devriez pouvoir accder chaque page web correspondante chaque nom de domaine.
http://sdz.truc.tp
http://sdzVH1.truc.tp
http://sdzVH2.truc.tp
Voil, vous voyez l'intrt de ce type d'hbergement. C'est que tout en ne possdant qu'une seule adresse IP, il est
possible de dfinir plusieurs sous-domaines pour grer diffrentes pages web. C'est ti pas beau tout a ?
Hbergement virtuel par port
Ce type d'hbergement permet d'utiliser un serveur web en prcisant le port qu'il utilise. Si le port n'est pas prcis, la connexion
ne s'effectuera pas !
Dans ce cas, chaque serveur sera adress par une requte HTTP laide dun numro de port diffrent. Par exemple pour la
machine "salon" :
http://sdz.truc.tp:80
http://sdzVH1.truc.tp:40001
http://sdzVH2.truc.tp:40002
Afin que apache coute sur les ports correspondants, on les ajoute dans le fichier ports.conf :
Mise en place des serveurs Apache et DNS 12/16
www.openclassrooms.com
Code : Console
/etc/apache2/ports.conf
Code : Console
Listen 80
Listen 40001
Listen 40002
Effectuons maintenant les modifications dans chaque fichier de configuration pour nos diffrents domaine (que vous connaissez
maintenant par cur) :
Code : Console
vi /etc/apache2/sites-available/sdz
Code : Console
NameVirtualHost 192.168.21.6:80
<VirtualHost 192.168.21.6:80>
ServerName sdz.truc.tp
ServerAlias sdz
DocumentRoot /var/www/sdz
<Directory /var/www/sdz>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Puis dans le fichier de configuration du domaine sdzVH1 :
Code : Console
NameVirtualHost 192.168.21.6:80
<VirtualHost 192.168.21.6:40001>
ServerName sdzVH1.truc.tp
ServerAlias sdzVH1
DocumentRoot /var/www/sdzVH1
<Directory /var/www/sdzVH1>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Puis dans le fichier de configuration du domaine sdzVH2 :
Code : Console
NameVirtualHost 192.168.21.6:80
<VirtualHost 192.168.21.6:40002>
ServerName sdzVH2.truc.tp
Mise en place des serveurs Apache et DNS 13/16
www.openclassrooms.com
ServerAlias sdzVH2
DocumentRoot /var/www/sdzVH2
<Directory /var/www/sdzVH2>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
C'est fini ! Il ne vous reste plus qu' tester :
http://sdz.truc.tp:80
http://sdzVH1.truc.tp:40001
http://sdzVH2.truc.tp:40002
Hbergement virtuel par adresse IP
Ce type d'hbergement permet, tout en associant deux adresses IP une interface, de se connecter aux pages associes chaque
adresse IP.
Pour dmarrer, on doit crer un alias eth0 :1 sur linterface eth0 afin d'associer 2 adresses ip une seule interface. On ajoute pour
cela les lignes suivantes dans le fichier /etc/network/interfaces :
Code : Console
Auto eth0 :1
Iface eth0 :1 inet static
Address 192.168.21.106
Netmask 255.255.255.0
Broadcast 192.168.21.255
On modifie notre fichier ador !
Pour le domaine sdz :
Code : Console
vi /etc/apache2/sites-available/sdz
Code : Console
NameVirtualHost 192.168.21.6:80
<VirtualHost 192.168.21.106:80> //On indique simplement que pour accder au domaine sdz.truc.tp, il faudra utiliser l'adresse IP 192.168.21.106
ServerName sdz.truc.tp
ServerAlias sdz
DocumentRoot /var/www/sdz
<Directory /var/www/sdz>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Mise en place des serveurs Apache et DNS 14/16
www.openclassrooms.com
Vous pouvez faire la mme chose pour les domaines sdzVH1 et sdzVH2 si vous le souhaitez.
Il ne reste qu' apprcier votre travail, vous lancer des roses, des fleurs, et drouler le tapis rouge vos pieds !
http://192.168.21.6:80
http://192.168.21.106:80
Eh bien voil ! Je crois que vous avez fait le tour de ce qu'il faut savoir sur les serveurs Apache et DNS.
N'hsitez pas partager vos expriences !
@wawanopoulos
Partager
Mise en place des serveurs Apache et DNS 15/16
www.openclassrooms.com