Dans le monde du développement web et de l’administration serveur, la capacité à exécuter plusieurs sites web sur une seule machine physique est fondamentale. Cette technique, connue sous le nom de Virtual Host, permet une efficacité des ressources et une meilleure gestion. Que vous soyez un technicien configurant un environnement de développement local avec XAMPP ou un professionnel gérant un serveur de production Apache, comprendre la configuration d’un hôte virtuel est une compétence essentielle.
Techniquement, un Virtual Host est la méthode d’Apache pour héberger plusieurs sites web (comme domaine1.com et domaine2.com) sur un seul serveur. Il existe deux types principaux : les Virtual Hosts basés sur IP, où chaque site a une adresse IP unique, et les Virtual Hosts basés sur le nom, où plusieurs noms de domaine partagent une seule adresse IP. Pour les visiteurs, le fait que ces sites s’exécutent sur le même serveur reste invisible.
Qu’est-ce qu’un Virtual Host et pourquoi est-il nécessaire ?
Un hôte virtuel agit comme un aiguilleur de trafic. Lorsqu’une requête arrive sur le serveur Apache, il vérifie les informations (comme l’adresse IP ou le nom d’hôte demandé) et la dirige vers le répertoire de documents correct (DocumentRoot). Cette pratique est cruciale pour :
- Développement Local : Créer des environnements séparés pour chaque projet web sur un ordinateur personnel.
- Hébergement Mutualisé : Fournir des services d’hébergement rentables à de nombreux clients sur un seul serveur.
- Efficacité du Serveur : Maximiser l’utilisation d’une machine physique pour plusieurs applications ou services.
Premières Étapes pour Configurer un Virtual Host dans XAMPP

Avant de commencer, assurez-vous qu’Apache dans XAMPP est en cours d’exécution. La configuration de base pour un seul Virtual Host est la suivante :
- Ouvrez le fichier de configuration des Hôtes Virtuels d’Apache. Il se trouve généralement à l’emplacement :
C:\xampp\apache\conf\extra\httpd-vhosts.conf - Ajoutez le bloc de code suivant à la fin du fichier :
<VirtualHost *:80>
ServerName projet.local
DocumentRoot "C:/xampp/htdocs/projet"
<Directory "C:/xampp/htdocs/projet">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>- Modifiez le fichier
hostsde votre système (sous Windows :C:\Windows\System32\drivers\etc\hosts) en tant qu’administrateur, et ajoutez cette ligne :127.0.0.1 projet.local - Redémarrez le service Apache via le Panneau de Contrôle XAMPP.
- Ouvrez votre navigateur et accédez à
http://projet.local. Votre site devrait maintenant se charger.
Configuration Avancée : Domaines Multiples et Scénarios Complexes
Une fois que vous maîtrisez les bases, vous pouvez étendre votre configuration de Virtual Host à des scénarios plus complexes.
1. Plusieurs Domaines avec une Seule IP (Basé sur le nom)
C’est le scénario le plus courant. Vous définissez plusieurs blocs <VirtualHost *:80> avec différentes directives ServerName. N’oubliez pas d’ajouter tous les noms de domaine à votre fichier hosts local.
2. Virtual Host avec HTTPS/SSL
La sécurité est une priorité. Pour activer SSL, vous devez écouter sur le port 443 et pointer vers votre certificat. Assurez-vous que le module Apache mod_ssl est actif.
<VirtualHost *:443>
ServerName securise.projet.local
DocumentRoot "C:/xampp/htdocs/projet-securise"
SSLEngine on
SSLCertificateFile "conf/ssl.crt/server.crt"
SSLCertificateKeyFile "conf/ssl.key/server.key"
<Directory "C:/xampp/htdocs/projet-securise">
Require all granted
</Directory>
</VirtualHost>Note Importante : Pour le développement, vous pouvez créer un certificat SSL auto-signé. Cependant, pour la production, utilisez un certificat d’une autorité de confiance comme Let’s Encrypt (source).

