Vendredi, j'ai parlé de l'utilisation du fichier hosts pour des objectifs beaucoup moins professionnels que ceux dont que je m'apprête à vous parler. En fait, lorsque je développe des projets personnels, j'utilise souvent mon poste de travail comme laboratoire et j'accède à mes différents projets à partir de http://localhost (127.0.0.1).
Cependant, plutôt que de créer chaque projet dans un répertoire à la racine du répertoire www d'Apache, je préfère utiliser ce qu'on appele un hôte virtuel (VirtualHost ou vhost). Je peux donc placer mes projets à différents endroits sur mon poste. Pour chaque projet, je crée ensuite un sous-domaine à localhost. Par exemple si mon premier projet est placé dans www : http://localhost/projet1/ deviendra http://projet1.localhost/. Ainsi, je peux continuer à programmer en utilisant la racine du répertoire comme référence, comme si le projet était en ligne sur son propre nom de domaine.
Voici pour configuration possible pour Apache (je baserai mon exemple en utilisant EasyPHP mais le fonctionnement reste identique si on utilise Apache seul) :
- D'abord, je crée deux projets, le premier dans le répertoire www d'Apache, le deuxième à un autre endroit, par exemple sur la partition D:
- On doit accéder au fichier httpd.conf d'Apache (C:\Program Files\EasyPHP 2.0b1\conf_files\) et s'assurer que la ligne suivante n'est pas commentée (elle ne doit pas avoir de symbole # devant) :
Include conf/extra/httpd-vhosts.conf - Ouvrir le fichier httpd-vhosts.conf (C:\Program Files\EasyPHP 2.0b1\apache\conf\extra\) et ajouter un hôte virtuel pour chaque projet :
NameVirtualHost *:80
Où :<VirtualHost *:80>
<VirtualHost *:80>
DocumentRoot "C:\Program Files\EasyPHP 2.0b1\www\projet1"
ServerName projet1.localhost
</VirtualHost>
DocumentRoot D:\Programmation\Web\projet2
ServerName projet2.localhost
</VirtualHost>
DocumentRoot est le chemin où se trouve le projet
ServerName est le nom du serveur - Dans le fichier hosts (Sous XP : C:\WINDOWS\system32\drivers\etc\), ajouter une ligne pour chaque projet :
127.0.0.1 projet1.localhost
127.0.0.1 projet2.localhost - Redémarrer Apache (pour que la nouvelle configuration prenne effet. EasyPHP a un raccourci pour le redémarrer à partir du système tray)
- Ouvrir un invite de commande et exécuter la commande suivante (pour que les domaines soient associés aux adresses IP spécifiées - pour notre poste seulement!) :
ipconfig /flushdns - À partir de votre fureteur préféré, tester l'accès à http://projet1.localhost et à http://projet2.localhost. Le tout devrait maintenant fonctionner.