MacBook und Drupal

Bei der Entwicklung von Drupal-Websites auf einem lokalen Rechner möchte man gerne eine möglichst ähnliche Umgebung haben, wie man sie auch auf dem Internet-Host vorfindet. Dazu gehört, dass die Website direkt per Domain-Namen erreichbar ist und nicht in einem Unterverzeichnis liegt. Das Programm VirtualHostX kann auf dem Mac mehrere Domains einrichten, wo vorher nur der localhost war.

Anwendungs-Szenario

Gerade bei der Arbeit mit mehreren Websites ist es interessant, nicht nur eine Website unter http://localhost ablegen zu können, sondern mehreren Websites auf dem eigenen Rechner einen eigenen Domain-Namen geben zu können, zum Beispiel http://example.local, http://company.local etc. Der Apache-Webserver kennt dafür das Konzept der virtuellen Hosts, kurz vhosts. Um sich nicht in der komplexen Konfiguration des Apache Webservers zu verlieren, erleichtert das grafische Programm VirtualHostX die Konfiguration.

Beschaffung

VirtualHostX ist Shareware und kann kostenlos unter http://clickontyler.com/virtualhostx/ heruntergeladen werden. Ohne Zahlung kann es für bis zu 3 virtuelle Hosts benutzt werden. Für weitere Hosts ist eine Registrierung erforderlich, die ca. 20 € kostet (wechselkursabhängig). Bei Zahlung mit PayPal bekommt man je nach PayPal Account sofort die Daten zum Freischalten abhängig von der eigenen Mailadresse (Achtung: Groß/Kleinschreibung beachten!).

Installation

Nach üblicher Installation unter MacOS gelangt man auf eine einfache Oberfläche, unter der man die bisherige Konfiguration speichern kann. Das Programm verändert im Folgenden entweder die Konfiguration des Mac eigenen Apache-Webservers oder des Webservers, der mit dem MAMP-Paket mitgeliefert wird. Ich habe es ohne MAMP probiert.

Verwendung

Für einen neuen virtuellen Host braucht man nur einen Domain-Namen, den man frei wählen kann, und das zugehörige Verzeichnis, unter dem die Drupal-Installation liegt. Alle Virtual-Host-Verzeichnisse müssen unterhalb von /Library/Webserver/Documents liegen.

Für einen neuen virtuellen Host trägt man also z.B. folgende Werte ein:
Domain Name: http://example.local
Local Path: /Library/Webserver/Documents/example

Das Programm bietet die Möglichkeit, den Apache gleich neu zu starten, was bei mir allerdings nicht erforderlich war.

Multisite-Umgebung

Nützlich ist das Feature von Drupal, gleich mehrere Websites auf einer Drupal-Installation zu betreiben. Benutzt man z.B. für company.local dieselbe Drupal-Version und viele bereits installierte Module von example.local, dann trägt man unter Library/Webserver/Documents/example/sites neben den Verzeichnissen „all“ und „default“ noch das Verzeichnis company.local ein und richtet dort eine eigene settings.php-Datei ein. Für eine Installation sollte alles dort genauso gemacht werden, wie unter „default“ mit der Start-Website.

Für einen zusätzlichen virtuellen Host trägt man dann folgende Werte ein:
Domain Name: http://company.local
Local Path: /Library/Webserver/Documents/example

Damit wird dieselbe Drupal-Instalation aufgerufen und Drupal steuert dann anhand der aufgerufenen Website, welche Datenbank für die Beantwortung der Abfrage verwendet wird, während die PHP-Dateien dieselben sind. Damit spart man sich gerade bei Aktualisierungen eine Menge Arbeit.

Achtung: Nach einer Aktualisierung von Drupal-Komponenten sollte bei allen Websites, die diesen Code benutzen, update.php aufgerufen werden, um die unterschiedlichen Datenbankschemata zu aktualisieren.

Kompatibilität

Soll der Webserver weiterhin unter http://localhost die Document-root finden, ist auch localhost als virtueller Host einzutragen. Achtung: Damit http://localhost und http://127.0.0.1 beide auf die Document-root zeigen, muss localhost der erste virtuelle Host in der Liste sein. Die Reihenfolge lässt sich im Programm per Drag&Drop in der Liste umstellen.

Nebenwirkungen

Andere Serverprogramme, die unter localhost zu finden waren, können nicht mehr unter „localhost“ erreichbar sein. Dies betrifft bei Drupal z.B. die Erreichbarkeit der MySQL-Datenbank. Bei der Drupal-Installation wird sie gemeinhin auf localhost vermutet - mit einer VirtualHostX-Umgebung sollte unter den Advanced Options bei Drupal statt localhost lieber die IP-Adresse für die Datenbank eingetragen werden: 127.0.0.1

Fazit

Das Programm verändert die Konfigurationsdateien, so wie es sie bei Standardinstallationen vermutet. Das kann bei komplexeren Umgebungen und Anwendungsfällen für zusätzliche Fehlerquellen sorgen. Das bereitgestellte BackUp ist daher eine hilfreiche Idee, um das Risiko abzufedern. Bei der lokalen Entwicklung mehrerer Sites ist das Programm hilfreich, da man sehr schnell kleine Testumgebungen bauen kann.