A propos gemp

Jamais content mais très gentil.

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

J’avais juste quelques mod­i­fi­ca­tions à apporter à un petit site et pas du tout envie de m’en­nuy­er avec un Vir­tu­al­Host ou autre. J’ai donc récupéré MAMP et j’ai pen­sé sim­ple­ment ajouter le port qu’il utilise par défaut, le 8888, à mon fichi­er /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’a­jouter cette ligne à son fichi­er /etc/hosts, ça per­met qu’un nav­i­ga­teur n’aille pas se con­necter à bitonio.net mais se con­necte sur sa pro­pre machine (127.0.0.1), où on aura récupéré tous les fichiers de bitonio.net (et, éventuelle­ment, la base de don­nées) pour pou­voir les mod­i­fi­er à loisir sans crainte de cass­er le serveur en ligne.

J’au­rais pu me con­tenter 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 exem­ple bitonio.net/img/icons/fail.gif, qui ne vont donc pas fonc­tion­ner. J’ai besoin que le port soit pris en compte de manière transparente.

Heureuse­ment, il y a une solu­tion sur OS X: ipfw

Il suf­fit de taper dans le ter­mi­nal (sans le $):

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

et le port est mag­ique­ment pris en compte tout seul!

Pour annuler ce for­ward (qui ne doit prob­a­ble­ment pas sur­vivre à un redé­mar­rage, il faut prob­a­ble­ment le refaire à chaque allumage — con­traire­ment au fichi­er /etc/hosts qui reste jusqu’à ce qu’on l’ef­face), il suf­fit de taper:

$ sudo ipfw flush

Dans un autre post, j’ex­pli­querai com­ment ne pas rem­plir le dossier MAMP/htdocs/ avec bindfs, parce que c’est quand même un peu sale de coller un site dans le dossier Appli­ca­tions… mais c’est un jonglage un petit peu plus délicat.