Serveur local et noms de domaines

Portrait de titouille

Un concept intéressant que j'ai découvert il n'y a pas si longtemps : configurer son serveur local pour qu'en tappant un nom de domaine voulu (http://www.monsite.com) dans le navigateur, on soit redirigé vers un répertoire de notre serveur local.

En gros, à la place de travailler avec des adresses 127.0.0.1/.../... il est possible d'utiliser l'adresse finale du site.

J'avais découvert cette astuce en travaillant en local avec drupal pour faire du multi-sites avec sous-domaines. Comme il est un peu difficile de tester des processus sur les sous-domaines sans pouvoir les simuler, j'avais fait des recherches, posé des questions, et j'avais pu découvrir les virtualHost d'apache.

Il suffit simplement d'éditer 2 fichiers :

Le premier correspond au fichier "hosts" situé dans le répertoire etc (sous windows XP : c:\windows\system32\drivers\etc). Ce fichier est utilisé par les processus navigateurs pour faire correspondre une adresse IP à un nom de domaine. Pour de plus amples informations sur le sujet, vous pouvez lire l'article de Wikipedia.

Le second fichier correspond au fichier "httpd.conf" qui est normalement situé dans le répertoire conf du logiciel apache. Dans certains packs serveur il peut se trouver ailleurs, généralement dans un répertoire nommé "conf". Ce fichier contient la configuration apache.

Les 2 actions à effectuer sont les suivantes :

1. ajouter dans le fichier "hosts" une nouvelle entrée

Insérez dans le fichier "hosts" des lignes du type :

127.0.0.1   <a href="http://www.monsite.com<br />
127.0.0.1" title="www.monsite.com<br />
127.0.0.1">www.monsite.com<br />
127.0.0.1</a>   monsite.com
 
127.0.0.1   <a href="http://www.monautresite.com<br />
127.0.0.1" title="www.monautresite.com<br />
127.0.0.1">www.monautresite.com<br />
127.0.0.1</a>   monautresite.com

2. ajouter un virtualhost dans le répertoire apache
Pour ce faire, allez tout au fond du fichier "httpd.conf", dans la section virtualhost, et inscrivez-y les lignes suivantes :

NameVirtualHost 127.0.0.1:80
Listen 80
 
<VirtualHost <a href="http://www.monsite.com:80><br />
" title="80><br />
">www.monsite.com:80><br />
</a>    DocumentRoot c:\webserver\www\sites\mon-site/
    ServerName <a href="http://www.monsite.com<br />
" title="www.monsite.com<br />
">www.monsite.com<br />
</a>    ServerAlias monsite.com
</VirtualHost>
 
<VirtualHost <a href="http://www.monautresite.com:80><br />
" title="80><br />
">www.monautresite.com:80><br />
</a>    DocumentRoot c:\webserver\www\sites\mon-autre-site/
    ServerName <a href="http://www.monautresite.com<br />
" title="www.monautresite.com<br />
">www.monautresite.com<br />
</a>    ServerAlias monautresite.com
</VirtualHost>

Et le tour est joué. Relancez votre serveur et vous pourrez ensuite atteindre votre serveur local en tappant l'adresse www.monsite.com

Le problème que je détecte après ces tests, c'est que mon serveur local n'est plus accessible via l'adresse 127.0.0.1 ou plutôt le répertoire racine (www) sur lequel cette adresse devrai pointer n'est plus valide, il s'ouvre, ainsi que toutes les adresses 127.0.0.1/... qui ne sont pas spécifiées dans les virtualhost d'apache, automatiquement sur le premier virtualhost mis en place.

Je devrai donc faire un virtualhost pour chaque site que je crée, et revoir les configuration de chacun pour que tout fonctionne correctement (les urls de remoting flash, par exemple, ainsi que les fichiers "global" de définition/configuration de chemins, etc...)

Pour ou contre, à vous de voir, perso je trouve ça bien utile de pouvoir se mettre en situation réelle à partir de son serveur local pour travailler.