Keine Lust auf türkis?

Thomas Aull :: Design + Code

7

Mit OS X, MAMP und Parallels virtuelle Hosts anlegen (von Hand!)

Artikel vom 15. Juni 2011, von Thomas Aull in der Kategorie Webentwicklung

Jeder Webentwickler hat ja so seine eigenen Vorlieben, wenn es darum geht welche Entwicklungsmethode ihm am meisten taugt. Die einen schaffen am liebsten direkt auf dem Server, andere entwickeln lieber erst mal lokal und schaufeln die Website erst später online. Ich gehöre zu letzteren, vor allem auch, weil ich nicht immer online sein müssen will um was zu arbeiten.

Wenn man jetzt so eine Website lokal entwickelt, dann stößt man schnell auch auf den Begriff Virtual Host. Eigentlich nichts anderes als eine „gefakte Internetadresse“, die mich – statt ins WWW – auf meinen eigenen Rechner umleitet und dort meine lokale Seite aufruft. Das ist ungemein praktisch, weil viele CM-Systeme mit den kryptischen Adressen, die man sonst verwenden müsste, überhaupt nicht umgehen können (Wordpress...). Zum Anlegen solcher virtuellen Hosts gibt es mehrere, kostenpflichtige Tools (z.B. MAMP Pro, VirtualHostX) die einem die Arbeit abnehmen. Allerdings kann man sich mit wenigen Handgriffen das Geld sparen und virtuelle Hosts innerhalb von ein paar Minuten selbst anlegen. Wie das geht, steht hier:

Ich gehe jetzt mal von folgender Konfiguration aus: MAMP ist installiert und du verwendest Parallels für die Virtualisierung deiner Windows-Testumgebung. Falls nicht, könnten die Ansätze bei anderen Umgebungen aber ähnlich sein.

1. Virtuellen Host in MAMP anlegen

Zuerst müssen wir eine Config-Datei im MAMP Verzeichnis anpassen: /Programme/MAMP/conf/apache/httpd.conf in einem Texteditor der Wahl öffnen und ganz nach unten scrollen (da steht dann auch schon was von virtuellen Hosts):

Da fügen wir dann zuerst (ganz unten) folgende Zeile ein:

Plain Text
NameVirtualHost *:80

und anschließend für jeden virtuellen Host, den wir anlegen wollen:

Plain Text
<VirtualHost *:80>
    ServerName meine-domain.local
    ServerAlias www.meine-domain.local
    DocumentRoot "Pfad/zur/Seite/"
</VirtualHost>

Pfad/zur/Seite/ ist dein Verzeichnis in dem die Website liegt, ServerName und ServerAlias jeweils deine Adresse die du verwenden willst. Fragt mich nicht was die einzelnen Angaben jetzt genau zu bedeuten haben – ich weiß es nicht (aber ich weiß wo man es nachlesen kann: http://httpd.apache.org/docs/2.0/vhosts/).

Wichtig: Bitte keine TABs verwenden, sondern die Zeilen mit 4x Leertaste einrücken. Auf der sicheren Seite seid ihr wenn, ihr die Angaben komplett abtippt statt Copy & Paste zu verwenden. Die Datei ist anscheinend sehr anfällig für irgendwelche Zeichen, die dort nicht hingehören.

2. Die hosts-Datei von OS X anpassen

Damit unser Browser weiß, dass er bei www.meine-domain.local nicht ins Web sondern auf unseren Rechner zugreifen soll, müssen wir noch die Host-Datei von OS X anpassen.

Dazu öffnen wir zuerst das Terminal und führen folgenden Befehl aus:

Terminal
sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit /etc/hosts

dann noch das Passwort eintippen und es öffnet sich unserer Host-Datei in TextEdit (man könnte die auch direkt im Terminal bearbeiten, das ist aber irgendwie unkomfortabel).

In die Host-Datei müssen jetzt noch folgende Zeilen:

Plain Text
127.0.0.1 meine-domain.local
127.0.0.1 www.meine-domain.local

Speichern, Schließen, Terminal beenden, MAMP anwerfen und im Browser testen ob es funktioniert. Ja? Gut! Dann können wir jetzt dafür sorgen, dass wir auch aus unserer Parallels-Windows-Installation auf diesen Host zugreifen können.

3. Parallels Bridget-Network IP ermitteln

Wir brauchen erst mal die IP, die Parallels für die Netzwerkverbindung verwendet (ich habe „Bridged-Netzwerk“ eingestellt). In Version 6 werden diese aber standardmäßig in den Systemeinstellungen nicht mehr angezeigt. Auf der Parallels Website ist aber eine Lösung beschrieben: http://kb.parallels.com/en/9243 (Parallels 5 Nutzer klicken hier, Parallels 4 Nutzer dürften das Problem nicht haben)

Haben wir das geschaft, kopieren wir uns die IP, die unter Systemeinstellungen > Netzwerk > Parallels Shared #0 steht und starten unser Parallels-Windows.

4. Host-Datei von Windows anpassen

Unter Windows gehen wir ins Verzeichnis C:/Windows/system32/drivers/etc und öffnen die Datei hosts im Editor. Dort geben wir analog zu der OS X Host-Datei unseren virtuellen Host, aber mit der vorher kopierten IP ein:

Plain Text
10.211.55.xx meine-domain.local
10.211.55.xx www.meine-domain.local

Speichern, schließen und unter Windows testen ob's auch klappt.

Fazit

Wenn man so einen virtuellen Host einmal angelegt hat, geht's beim nächsten mal schon deutlich schneller von der Hand. Wer aber absolut nicht in irgendwelchen Konfigurationsdateien oder im Terminal rummachen will, ist mit VirtualHostX oder MAMP Pro auf jeden Fall gut beraten.

7 Kommentare

Kommentar schreiben Kommentare als RSS-Feed

Katharina schreibt am 15. Juni 2011 um 12:18 Uhr:

Klingt echt gut! Müsste das auch mal versuchen, habe aber kein Parallels sondern nur ein Windoof via Bootcamp. Aber generell müsste ich auf meinem noch recht neuen Mac mal sowas wie XAMPP einrichten (unter OS X wohl MAMP?). Muss mich da aber wohl nochmal schlau machen. Danke trotzdem für den lehrreichen Beitrag. :)

Liebe Grüße,
Katharina

#1

Mato schreibt am 15. Juni 2011 um 12:55 Uhr:

Thomas, danke dir :)
Endlich mal verständlich erklärt ;)

#2

Thomas Aull schreibt am 15. Juni 2011 um 13:40 Uhr:

@Katharina: Joa am Mac ist MAMP als One-Click-Webentwicklungsumgebung ne gute Lösung. Für die Entwicklung selbst empfiehlt sich dann aber wirklich ne Virtualisierung, sonst muss man ja ständig seinen Rechner hoch- und runterfahren :-)

#3

Tobias Grieß schreibt am 6. Januar 2012 um 15:05 Uhr:

Kann ich damit folgendes Problem umgehen?
Codeigniter Website auf Localhost mit der base_url “localhost:80/....”. Soweit so gut! Wenn ich dann aber von einem “nicht-localhost-Gerät”, sagen wir mein iPhone im gleichen Netzwerk, auf die Seite zugreife, wird die CSS nicht eingebunden. Klar: Weil die base_url angibt, dass sich alles auf localhost und nicht wie eigentlich notwendig auf 192.168….... befindet.
Ic h hoffe ich habe mich nicht unverständlich ausgedrückt :D Mache ich einen Denkfehler oder könnte ich es damit beheben? Denn dann würden ja alle Geräte im Netzwerk das gleiche adressieren oder? Ansonsten: Deine Seite ist einfach super Thomas, hab ich schon gefühlt eine Millionen mal gesagt, aber egal ;)

#4

Thomas Aull schreibt am 10. Januar 2012 um 1:19 Uhr:

Hmm, bei diesem konkreten Problem würde ich versuchen den Pfad zur CSS relativ anzugeben. Mache ich eigentlich grundsätzlich überall wo es geht so, weil man dann beim Wechsel der Entwicklungsumgebung keine Probleme bekommt.

Mit dem iPhone kann man vermutlich auf die virtuellen Hosts gar nicht zugreifen, weil es keine Host-Datei gibt in der man hinterlegen kann, dass das iPhone nach der Adresse auf dem Rechner im lokalen Netzwerk zugreifen soll…

#5

Hannes schreibt am 31. Oktober 2012 um 23:20 Uhr:

Hi, wie ist das denn mit dem Pfad (in DocumentRoot “Pfad/zur/Seite/”) zu verstehen? Von wo genau muß der Pfad denn gesetzt werden?
Gruß Hannes

#6

Thomas Aull schreibt am 1. November 2012 um 12:36 Uhr:

Hallo Hannes,
der Pfad muss absolut gesetzt sein, falls du am Mac unterwegs bist wäre das z. B. „/Users/username/Projekte/_dev/website“ wenn der Ordner Projekte im Benutzerverzeichnis liegt. Mit CMD + I kriegt man den Pfad direkt angezeigt, unter Windows müsste das dann entsprechend auch irgendwie gehen ;-)

#7