MAMP und VirtualHostX

Wer auf dem Mac ein wenig Webentwicklung betreibt und sich nicht den Tag mit tausend kryptischen Unix-Befehlen versauen will, kommt um zwei kostenlose Programme kaum herum.

Das erste ist selbstverständlich MAMP, seit vielen Jahren bekannt und beliebt. Mit diesem Tool lässt sich mittels zwei Mausklicks eine komplette Server-Infrastruktur etablieren: Apache, PHP, MySQL und sogar SQLite können auf Knopfdruck aktiviert und auf beliebige Verzeichnisse des Systems gemappt werden. Meine Praxistipps:

  • Den vorinstallierten Apache-Server von Mac OS X deaktivieren (Systemeinstellungen > Sharing > Web-Sharing)
  • Die einzelnen Web-Projekte jeweils als Ordner innerhalb von /Users/nutzername/Sites ablegen (wo sie auch hingehören)
  • Die Ports von MAMP mit den Standard-Werten :80 (für Apache) und :3306 (für MySQL) belegen. Man muss dann zwar bei jedem Aktivieren und Deaktivieren das Admin-Passwort eingeben, aber wer will schon so komische Ports wie :8888 und :8889 immer mit eingeben?

MAMP und VirtualHostX

Unser Server läuft nun und wir können lokal unsere Projekte anlegen und pflegen. Soweit, so gut. Allerdings hört der Server nun ausschließlich auf den Namen »localhost« oder »127.0.0.1«, was ja prinzipiell logisch ist. Doch gerade hier gibt es ein Problem mit vielen CMSen (allen voran WordPress), die diese (Development)-Basis-URL in großer Menge in der Datenbank ablegen – total doof!

Deswegen gibt es sogenannte Virtual Hosts. Diese Systemeinträge können beliebige URLs auf den localhost umleiten – ohne dass die Systemkomponenten dies merken. Die Anfragen gehen also nicht raus ins Internet, sondern landen automatisch auf dem aktiven Apache-Server von MAMP – eine feine Sache.

Und weil diese Systemeinträge ein wenig kryptisch und schwer zu lokalisieren sind, nimmt man dafür das praktische Tool VirtualHostX, welches einem diese Arbeit abnimmt. man kann dort beliebig viele Adressen umleiten (und zwar praktischerweise direkt zu den entsprechenden Unterverzeichnissen, wo sich die entsprechenden Projekte befinden – voila!

Nun kann ich so tun, als ob die Seite meines Kunden bereits online wäre, alles komplett fertig machen, und dann bei der Migrierung nur noch die Datein und die Datenbank aufspielen (jaja, und ggf. den internen Pfad des Servers anpassen)