Simuler un serveur en local avec MAMP OS X sur le port 8888

J’avais juste quelques modifications à apporter à un petit site et pas du tout envie de m’ennuyer avec un VirtualHost ou autre. J’ai donc récupéré MAMP et j’ai pensé simplement ajouter le port qu’il utilise par défaut, le 8888, à mon fichier /etc/hosts:

127.0.0.1:8888 bitonio.net

Eh bien ça ne marche pas… le port n’est pas pris en compte.

Pour ceux qui, arrivés là, ne savent pas à quoi sert d’ajouter cette ligne à son fichier /etc/hosts, ça permet qu’un navigateur n’aille pas se connecter à bitonio.net mais se connecte sur sa propre machine (127.0.0.1), où on aura récupéré tous les fichiers de bitonio.net (et, éventuellement, la base de données) pour pouvoir les modifier à loisir sans crainte de casser le serveur en ligne.

J’aurais pu me contenter de laisser:

127.0.0.1 bitonio.net

et de rajouter le port: bitonio.net:8888 ce qui marche très bien. Mais je sais qu’il y a des liens en dur dans le site, comme par exemple bitonio.net/img/icons/fail.gif, qui ne vont donc pas fonctionner. J’ai besoin que le port soit pris en compte de manière transparente.

Heureusement, il y a une solution sur OS X: ipfw

Il suffit de taper dans le terminal (sans le $):

$ sudo ipfw add 100 fwd 127.0.0.1,8888 tcp from any to any 80 in

et le port est magiquement pris en compte tout seul!

Pour annuler ce forward (qui ne doit probablement pas survivre à un redémarrage, il faut probablement le refaire à chaque allumage — contrairement au fichier /etc/hosts qui reste jusqu’à ce qu’on l’efface), il suffit de taper:

$ sudo ipfw flush

Dans un autre post, j’expliquerai comment ne pas remplir le dossier MAMP/htdocs/ avec bindfs, parce que c’est quand même un peu sale de coller un site dans le dossier Applications… mais c’est un jonglage un petit peu plus délicat.