L’hébergement virtuel permet d’exécuter plusieurs serveurs Web sur une même machine, optimisant ainsi la gestion des sites et des domaines. Grâce aux Virtual Hosts, il est possible d’héberger plusieurs sites avec des configurations distinctes sur un seul serveur. Dans ce tutoriel, nous allons voir comment configurer des Virtual Hosts sous CentOS et Apache en 7 étapes simples et efficaces.
Sommaire de l'article
- 1 Le principe des Virtual Hosts
- 2 Etape 1 Créer un nouveau répertoire
- 3 Etape 2 : définir les permissions
- 4 Etape 3 : Créer une page
- 5 Etape 4 : Configurer des Virtual Hosts
- 6 Etape 5 : Redémarrer le serveur Apache
- 7 Etape 6 : Configuration des hôtes
- 8 Etape 7 : Test de la configuration
- 9 Astuce du pro pour une configuration Apache aux petits oignons
Le principe des Virtual Hosts
Les serveurs virtuels peuvent être soit « par-IP » où une adresse IP est attribuée pour chaque serveur Web, soit « par-nom » où plusieurs noms de domaine se côtoient sur des mêmes adresses IP. L’utilisateur final ne perçoit pas qu’en fait il s’agit d’un même serveur physique.
Apache a été le précurseur des serveurs proposant cette méthode de serveurs virtuels basés sur les adresses IP. Les versions 1.1 et suivantes proposent les deux méthodes de serveurs virtuels : par-IP et par-nom. Cette deuxième méthode est parfois également appelée host-based ou serveur virtuel non-IP.
Vous pouvez vous inspirer de la documentation officielle d’Apache sur les Virtual Hosts pour plus de renseignements.
Etape 1 Créer un nouveau répertoire
La première étape consiste à créer un répertoire du nom du domaine (généralement) dans l’arborescence Apache. Ce répertoire accueillera tous les fichiers du site. Cet emplacement sera la racine dans votre fichier virtuel Apache.
#mkdir /var/www/test.quick-tutoriel.com
Etape 2 : définir les permissions
Nous ne devons pas laisser les droits root sur les répertoires. Nous allons utiliser l’utilisateur spécial apache pour affecter les bons droits.
#chown –R apache:apache /var/www/test.quick-tutoriel.com/public_html/
Ensuite il est nécessaire de s’assurer que tout le monde sera en mesure de lire les nouveaux fichiers.
#chmod 755 /var/www
Etape 3 : Créer une page
Vous devez créer une page index.html dans le répertoire idoine. Nous pouvons rajouter du texte pour s’assurer, lors de nos tests que les redirections fonctionnent correctement.
#vim /var/www/test;quick-tutoriel.com/public_html/index.html
Vous pouvez prendre ce modèle par exemple (A vous ensuite de l’adapter en fonction de vos besoins)
<html> <head> <title>test.quick-tutoriel.com</title> </head> <body> <h1>Success: You Have Set Up a Virtual Host</h1> </body> </html>
Etape 4 : Configurer des Virtual Hosts
L’activation des hôtes virtuels se fait dans le fichier de configuration http.conf. Editer-le.
#vim /etc/httpd/conf/httpd.conf
Assurez-vous que la ligne suivante ne soit pas en commentaire :
#Listen 12.34.56.78:80 Listen 80
Déplacez-vous à la fin du fichier et repérez une section nommée NameVirtualHost *:80
C’est ici que vous gérez vous hôtes virtuels. Voyons maintenant les lignes les plus importantes :
- NameVirtualHost : Décommentez cette ligne pour activer la gestion des virtual hosts. * indique que toute les ip passant par le port 80 seront un hôte virtuel. Généralement vous n’avez qu’une IP sur votre serveur, si l’étoile vous gêne, vous pouvez la remplacer par l’adresse IP du serveur
- <VirtualHost *:80></VirtualHost> : permet de définir les paramètres « virtuels » de votre site. Si vous avez remplacé * par une IP, il faut faire pareil ici.
- Document Root : élément clé de la gestion des hôtes virtuel, vous devez lui indiquer le chemin complet saisi plus haut.
- Server Name : autre élément clé, vous devez indiquer ici le nom de domaine de votre hôte.
- ServerAlias : vous pouvez utiliser cet argument supplémentaire, non obligatoire, pour indiquer une variante du nom de domaine. Typiquement on l’utilise soit pour enlever ou pour rajouter les www à un site.
- Server admin : vous indiquer ici le contact pour le site, généralement on met l’adresse mail du contact.
- The Error Logs and Custom Logs : permet de définir un emplacement personnalisé pour les fichiers de log des erreurs.
Etape 5 : Redémarrer le serveur Apache
Pour que les modifications soient prises en compte vous devez redémarrer le serveur Apache.
# service httpd restart
Etape 6 : Configuration des hôtes
Si vous n’avez pas plusieurs noms de domaine à disposition pour les faire pointer vers l’IP de votre serveur Apache, vous pouvez soit éditer le fichier hosts et rajouter des noms de domaine factices. Cela ne marchera qu’avec un navigateur local.
#vim /etc/hosts # Host Database # # localhost is used to configure the loopback interface # when the system is booting. Do not change this entry. ## 127.0.0.1 localhost #Virtual Hosts 12.34.56.789 test.quick-tutoriel.com
Si vous avez un nom de domaine, vous pouvez créer plusieurs sous-domaines et affecter l’adresse IP de votre serveur. Par exemple avec Cpanel dans Editeur avancé de zone DNS.
Etape 7 : Test de la configuration
Lancer votre navigateur et taper un de vos noms de domaine, vous devez arriver sur le bon virtual host.
Nom de domaine : test.quick-tutoriel.com
Nom de domaine : emailpoubelle.quick-tutoriel.com :
En fonction du domaine, Apache redirige vers le bon virtual host. Vous pouvez le voir dans le nom dans l’onglet.
Astuce du pro pour une configuration Apache aux petits oignons
Si vous laisser tel quel, si vous taper l’adresse IP du serveur, vous tomberez sur le premier hôte virtuel défini dans votre configuration. Pour pallier à ce souci (si cela en est un), vous pouvez définir un hôte virtuel bidon. Comme cela, si vous tapez l’adresse du serveur vous arrivez sur une page classique d’Apache. Vous pouvez aussi personnaliser cette page.
Pour arrivez à cette configuration rajouter un hôte virtuel bidon. Voici ma config de base :
<VirtualHost *:80> DocumentRoot /var/www/ ServerAdmin root@example.com ErrorLog /var/log/httpd/error_log TransferLog /var/log/httpd/access_log </VirtualHost>
En tapant l’IP du serveur vous devriez arriver sur quelque chose de similaire.
Si vous souhaitez découvrir d’autres possibilités avec les Virtual Hosts, voici un lien bien pratique : Tutoriel avancé pour configurer des Virtual Hosts sur Apache.
Quick-Tutoriel.com Network & System Admin.












