VHost et DNS local sous Mac OS X

Première publication : 2009-04-28

Lorsque je travaille sur des applis web, j’aime bien avoir un environnement de développement local et lorsque tout est OK, j’envoie ça en production. C’est un processus classique et devenu très facile avec les outils de versioning et de déploiement. C’est encore plus vrai dans l’écosystème de Ruby on Rails où tout est pensé pour facilité cette séparation des environnements d’exécution tout en ayant des procédures de déploiement fiables et simples.

Je travaille actuellement sur un site basé sur Wordpress (en PHP donc). Le site n’est pas encore en production, sur un sous-domaine temporaire, pour autant je n’aime pas travailler avec un client FTP et ouvrir les fichiers un par un… et surtout être dépendant de la connexion internet pour avancer.

J’ai souhaité avoir un environnement pour ça aussi facile qu’avec des applis Rails. Le principal soucis était la gestion d’un domaine local et d’un Virtual Host pour Apache car pour les applis Rails il existe un outil accessible dans les Préférences Système qui s’appelle Passenger Prefpane et qui configure en 3 clics le DNS local et Apache pour servir une application Rails via Apache + Phusion Passenger.

Les purs *nixiens me crieront dessus qu’il suffit d’éditer le fichier /etc/hosts + créer un bout de conf pour le VHost. Je sais parfaitement faire ce genre de manipulations, mais j’ai aussi un goût prononcé pour la stratégie du moindre effort.

De plus, sous Mac OS X il y a mieux qu’éditer le fichier Hosts : dscl(1).

Un amateur de toute cette facilité, qui comme moi ne trouvait pas son plaisir avec la gestion générale (hors applis Rails) des domaines+VHost a écrit un script en ruby qui permet de créer facilement une entrée DNS et un Virtual Host.

$ sudo apacherb create my_app.local /path/to/my_app/

Je suis donc ravi car je peux très facilement ajouter des domaines + VHost locaux, en une seule ligne.

Mise à jour

Apacherb devient Hostess