Magazine Focus Emploi

Créer rapidement des sites en local

Publié le 29 avril 2011 par Abouchard

Un petit article très technique, qui pourra être utile à des développeurs Web qui veulent créer rapidement des sites en local sans se prendre la tête.

Je ne sais pas pour vous, mais j’ai souvent besoin de créer des sites qui me servent à prototyper des développements ou à tester des évolutions sur mon framework. Habituellement, cela se passe en plusieurs étapes :

  1. Je crée une entrée dans le fichier /etc/hosts, pour que le nom de domaine du site pointe sur la machine locale.
  2. Je crée un fichier pour configurer le “virtual host” dans Apache.
  3. Je redémarre Apache.
  4. Enfin, je peux créer le site lui-même.

Ce n’est pas grand-chose à faire, mais multiplié par le nombre de sites, c’est un peu pénible. En plus, quand on veut coder un truc vite fait, on n’a vraiment pas envie de perdre du temps à faire tout ça. En ce qui concerne mes projets personnels, je développe mes “vrais” projets sur un serveur distant ; par contre, je préfère coder les petits trucs rapides en local.

Dans mon entreprise, on a en partie contourné le soucis, mais on continue à créer des fichiers de configuration Apache (on ne fait pas de «projets-kleenex»). Je vais vous expliquer comment je fais pour gérer mes projets personnels.

Nom de domaine

La première chose à faire, c’est de pouvoir facilement se connecter au serveur web du poste local. Si on veut créer un petit site de test, on a envie de pouvoir taper «http://sitedetest.com» dans son navigateur, sans se prendre la tête à modifier le fichier /etc/hosts ou à gérer un serveur DNS.

J’ai donc utilisé le nom de domaine «ordi.org», que je possède depuis un paquet d’années sans rien en faire. J’ai configuré le DNS de ce nom de domaine pour qu’il retourne l’adresse IP 127.0.0.1 (qui correspond toujours à la machine locale, j’espère que je ne vous l’apprend pas), quel que soit le nom de machine demandé. Ainsi, si je saisi «http://sitedetest.ordi.org», «http://site1.pouet.ordi.org» ou «http://site2.pouet.ordi.org», ça me renverra systématiquement vers la machine sur laquelle je suis.

C’est simple, c’est pratique. Vous pouvez l’utiliser si vous voulez. Je ne garantis pas que ce fonctionnement restera ainsi éternellement, mais vu que je l’utilise de cette manière pour mon propre usage, vous pouvez y aller assez sereinement.

La seule chose un peu chiante, c’est lorsque je développe sans être connecté à Internet (sur mon ordinateur portable dans le train, par exemple). Dans ce cas-là, la résolution DNS ne fonctionne pas. Il serait possible de configurer un serveur DNS local − auquel cas choisissez Dnsmasq, qui est bien plus simple et léger que Bind − mais ça reste un peu un gros canon pour écraser une petite mouche. Comme il m’arrive rarement de travailler sur beaucoup de sites en parallèle, je préfère encore modifier temporairement le fichier /etc/hosts…

Configuration Apache

Les «virtual hosts dynamiques» sont des petites merveilles qui simplifient la vie comme pas possible. À une époque, je créais un fichier de configuration pour chaque nouveau site que je développais.

Voici un exemple de fichier /etc/apache2/sites-available/default comme on peut en trouver sur une distribution Linux Debian/Ubuntu standard, modifié par mes soins pour permettre le chargement automatique de tous les sites locaux que l’on souhaite :

UseCanonicalName Off
LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
CustomLog logs/access_log vcommon
VirtualDocumentRoot /opt/http/%0/www

(suivant les outils utilisés − notamment le framework − vous aurez peut-être besoin d’ajouter des directives supplémentaires)

Hop, juste 4 petites lignes et ça marche. Et encore, il y a 2 lignes qui sont là pour configurer le fichier de log, on pourrait éventuellement s’en passer (ça ne serait pas une bonne idée, mais c’est possible).

Pour chaque connexion locale, le serveur Apache ira chercher dans le répertoire spécifié par la directive «VirtualDocumentRoot», en remplaçant la chaîne «%0» par le virtual host demandé.
Si on prend l’exemple du site «sitedetest.ordi.org», il faudra créer un répertoire /opt/http/sitedetest.ordi.org qui devra contenir un sous-répertoire www qui sera la racine du site.

Le tout combiné me permet, pour chaque nouveau site, d’avoir simplement à créer deux répertoires. Et comme j’ai des scripts qui me permettent de générer automatiquement l’arborescence des projets basés sur mon framework, la création d’un site local se résume à l’exécution d’une commande.


Retour à La Une de Logo Paperblog

A propos de l’auteur


Abouchard 392 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Dossier Paperblog