Par défaut le serveur Apache de XAMPP répond à un seul “nom de domaine” : http://localhost/
Le serveur Apache d’XAMPP est également accessible via l’adresse http://127.0.0.1/.
Sur une machine local, les sites pourront être placer sur le nom de domaine mais dans des répertoires différents .
http://localhost/site1/
http://localhost/site2/
Cette technique ne peut être utilisée sur une serveur de production, ou chaque site doit avoir son propre domaine.
http://site1.com
http://site2.org
La solution est de créer des “virtual host”
Les virtual hosts (hébergement virtuelles) permettent d’héberger plusieurs sites et domaines sur une même machine .
http://site1.local
http://site2.local
L’extension n’est pas obligatoire et peut être différente de .local. Cependant il est recommandé d’utiliser .local pour bien différencier un site en développement d’un site en production.
Créer un virtual host
La création d’un virtual host se fait en deux étapes :
- Ajout d’un nouveau domaine dans le fichier hosts de l’ordinateur
- Définition des virtual hosts sur le serveur Apache
Ajout d’un domaine à l’ordinateur
Ouvrez le fichier hosts dans un éditeur. Généralement, sous windows, le fichier hosts se trouve dans le dossier caché ci-dessous :
C:\windows\system32\drivers\etc\hosts
Copiez la ligne ci-après à la fin du fichier hosts et sauvegardez le fichier.
127.0.0.1 site1.local
Ce code indique que le domaine site.local correspond à l’adresse IP 127.0.0.1. Petit rappel l’adresse 127.0.0.1 représente l’ordinateur lui-même.
Vous pouvez maintenant accéder à votre serveur web depuis deux adresses :
http://localhost/
http://site1.local
Pour ajouter un domaine supplémentaire, ajouter un nouvelle ligne dans le fichier hosts :
127.0.0.1 site1.local
127.0.0.1 site2.local
Configuration du serveur Apache
Ouvrez le fichier httpd-vhosts.conf dans un éditeur. Avec XAMPP vous le trouverez à l’adresse suivante :
C:\xampp\apache\conf\extra\httpd-vhosts.conf
Ajoutez le code ci-après à la fin du fichier
NameVirtualHost *
<VirtualHost *>
DocumentRoot "C:\xampp\htdocs"
ServerName localhost
</VirtualHost>
<VirtualHost *>
DocumentRoot "C:\mes-sites\site1\www"
ServerName site1.local
<Directory "C:\mes-sites\site1\www">
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *>
DocumentRoot "C:\mes-sites\site2\www"
ServerName site2.local
<Directory "C:\mes-sites\site2\www">
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
Ajout des virtual hosts site1.local et site2.local
Ce code définit les virtual hosts du serveur. Pour définir un virtual host on a besoin de deux informations essentielles :
- Le nom du domaine : ServerName
- Le dossier racine du site : DocumentRoot
Le DocumentRoot peut très bien se trouver sur un disque externe, un lecteur réseau, Dropbox ou autre service dans le Cloud.
Sauvegardez les modification de httpd-vhosts.conf et redémarrez le serveur Apache.
Et voilà ! Vos nouveaux domaines pointeront vers les dossiers spécifiés :
http://site1.local vers C:\mes-sites\site1\www
http://site2.local vers C:\mes-sites\site2\www