Configuration des vhosts sur Apache2 et pointage DNS - LAMP partie 5

Tuorial mise en place LAMP sur Debian : Configuration des vhosts sur Apache2 et pointage DNS.

Publié le 01/01/2013

Ce tutorial vise à mettre en place un hébergement multi-sites sur un serveur web dédié sur Linux Debian/Apache2. Pour ce faire nous aurons besoin de :

  • - Un domaine hébergé chez un FAI [OVH pour ce cas] afin de faire le test en iso-périmètre avec la production. On le nommera domaine.tld, le premier site toto répondra sur www.domaine.tld et le second : titi, répondra sur domaine : titi.domaine.tld
  • - Un serveur web dédié sur Linux Debian/Apache2 avec deux sites toto et titi [cf le tuto sur apache > http://blog.foulquier.info/4-Installation-d-apache-2]. On prendra dans l'exemple un hébergement dédié Kimsufi chez OVH [http://www.kimsufi.com].

1 - Préparation des sites dans le répertoire www d'apache

Dans le répertoire /var/www, nous allons créer deux dossiers pour nos sites "toto" et "titi":


sudo mkdir toto
sudo mkdir titi

Et on va placer dans chaque dossier un fichier index.html dont l'un contiendra "hello toto" et l'autre "hello titi".

2 - Configuration des vhosts apache

Nous allons maintenant configurer nos vhosts de la façon suivante :

Pour toto :

Nous allons créer le fichier de configuration du vhost :

sudo nano /etc/apache2/sites-available/toto 

Et ajouter dedans le contenu suivant :


<VirtualHost *:80>
        ServerName www.domaine.tld
        ServerAlias domaine.tld
        ServerAdmin admin@domaine.tld

        DocumentRoot /var/www/toto
        <Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>
        <Directory /var/www/toto/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Pour titi :

Nous allons créer un fichier de configuration du vhost :

sudo nano /etc/apache2/sites-available/titi

Et ajouter dedans le contenu suivant :


<VirtualHost *:80>
        ServerName titi.domaine.tld
        ServerAlias titi.domaine.tld
        ServerAdmin admin@domaine.tld

        DocumentRoot /var/www/titi
        <Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>
        <Directory /var/www/titi/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

3 - Activation des vhosts

Nous allons maintenant activer nos sites et relancer apache pour que les modifications soient prisent en compte.


su
a2ensite toto
a2ensite titi
service apache2 restart

4 - Paramétrage de la zone de notre domaine chez le FAI

La partie suivante va se dérouler chez notre hébergeur, à savoir OVH. A partir de l'interface de gestion > https://www.ovh.com

Sélectionnez votre domaine (domaine.tld pour notre cas) dans le bloc nom de domaine en haut à gauche.

Dans la section "Accès au sections", cliquer sur "Domaine et DNS". Puis cliquer sur Zone DNS.

Modifions les entrées suivantes dans la zone "domaine.tld" et "www.domaine.tld" dans le tableau de entrées de la zone DNS.

Se positionner sur la ligne contenant la racine du domaine domaine.tld > ".domaine.tld".

Et modifier son entrée en y assignant l'ip de votre serveur Kimsufi et en renseignant les champs comme suit :

Sous-domaine [A] - . .foulquier.info
Sélectionner une IP : Destination personnalisée
Destination : IP_DE_VOTRE_SERVEUR

Validez.

On viens de faire pointer la racine de notre domaine vers notre serveur, maintenant nous allons configurer l'hôte www en tant qu'alias du domaine.

Dans notre tableau on va éditer l'entrée www.domaine.tld et renseigner les champs comme suit :

[CNAME] - .www .domaine.tld
Destination : domaine.tld

Validez.

Maintenant que notre alias www est prêt, le site toto répondra aux url suivantes :

http://domaine.tld
http://www.domaine.tld

Dernière étape : la création d'une entrée dans la zone pour titi.

Nous allons cliquer sur "Type A" dans la "gestion des champs de pointage" et renseigner les champs comme suit :

Sous-domaine : titi.domaine.info
Sélectionner une IP : Destination personnalisée
Destination : IP_DE_VOTRE_SERVEUR

Validez.

Voila, le site titi répondra à l'url : http://titi.domaine.tld

La propagations de ces modifications peut prendre jusqu'à 24h pour qu'elle soient prises en compte par tous les serveurs DNS.

Pour savoir si la propagation est effective et la tester, je vous recommande de passer sur d'autres serveurs DNS que votre FAI qui sont en général plus lent à obtenir les modifications.

La commande unix dig permet d'interroger un serveur dns et de déterminer l'ip liée à une entrée dans la zone. Cela nous permettre de savoir si nos modifications sont effectives dans le cas d'une migration.

dig domaine.tld 

Réponse :


; <<>> DiG 9.7.3 <<>> domaine.tld
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8948
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;domaine.tld.           IN  A

;; ANSWER SECTION:
domaine.tld.        66434   IN  A   IP_DE_VOTRE_SERVEUR

;; Query time: 1 msec
;; SERVER: 192.168.0.254#53(192.168.0.254)
;; WHEN: Wed May 22 18:42:06 2013
;; MSG SIZE  rcvd: 48