So geht’s: Dynamische "Virtual Hosts" unter Mac OS X
Veröffentlicht: 22. September 2007, 15:05 Uhr
Zunächst einmal möchte ich erklären was es mit den “Virtual Hosts” des Apache Webservers auf sich hat. Wie der Name bereits verrät handelt es sich hierbei um virtuelle Instanzen eines einzigen Webserver. Jede Instanz ist dabei für einen bestimmten Host, in diesem Fall eine Domäne oder IP-Adresse, zuständig.
Gerade bei größeren Anbietern von Webhosting wird häufig auf diese Technik zurückgegriffen wenn es darum geht mehrere Webseiten unterschiedlicher Domänen auf einem Server bereitzustellen. So werden Kosten für die Anschaffung neuer Server reduziert und diese Einsparung, in Form von günstigeren Tarifen, direkt an den Kunden weitergegeben.
Grundkonfiguration: Apache 1.3 unter Mac OS X
Ab Werk ist der Apache Webserver unter Mac OS X so eingestellt, dass dieser sämtliche Inhalte eines jeden Benutzers im Ordner “Web-Sites” bereitstellt. Über die URL http://127.0.0.1/~benutzername können diese Inhalte im Browser aufgerufen werden. Wobei es sich beim Benutzernamen um den jeweiligen Kurznamen des jeweiligen Benutzerkontos handelt. Im meinem Fall “cedric”. Tipp: Einsehbar ist dieser in den Systemeinstellungen im Abschnitt “Benutzer”.
Haben wir diverse Web-Projekte können wir uns einzelne Unterordner anlegen und zum Beispiel über die URL http://127.0.0.1/~cedric/mein_projekt/ aufrufen. Dies hat zum einen den Nachteil das zunächst eine längere URL verwendet werden muss, zum anderen wird es im Ordner “Web-Sites” irgendwann sehr unübersichtlich.
Das 1×1 der Virtual Hosts
Wie bereits in der Einleitung angesprochen sind Virtual Hosts die Grundlage um mehrere Webseiten mit unterschiedlichen Domänen auf einem Webserver anbieten zu können. Dieses Prinzip können wir auch auf einem lokalen System einsetzen um kurze URLs im Browser und Übersichtlichkeit im Ordner “Web-Sites” zu ermöglichen.
Üblicherweise hat ein lokales System weder mehrere Domänen, noch einen dazugehörigen DNS-Server. Mit ein paar Kniffen können wir diese Funktionalität allerdings nachrüsten bzw. imitieren. Grundlegende Kenntnisse über Begriffe wie “localhost” oder die Bedeutung von “127.0.0.1” setze ich an dieser Stelle einfach mal voraus. Gegebenenfalls bitte bei Wikipedia nachlesen.
Bei einem Virtual Host überprüft der Webserver also ob zur angeforderten Domäne ein entsprechender Eintrag vorliegt und gibt entsprechend der Konfiguration die daugehörigen Dateien an den Browser.
Fiktive Domänennamen anlegen
Zum Anlegen einer fiktiven Domäne können wir entweder die Datei /etc/hosts verwenden, oder das Dienstprogramm “NetInfo Manager”. Der Einfachheit halber werde ich letztere Methode verwenden. Erfahrene Benutzer hingegen können stattdessen auch die hosts-Datei editieren.

Dort klicken wir nun zunächst auf das Schloss am unteren Bildschirmrand und melden uns mit Benutzernamen und Kennwort an. Nun öffnen wir den Bereich “machines” und selektieren dort den Eintrag “localhost”. Nach einem Klick auf “Duplizieren” und der Bestätigung im Anschluss erhalten wir einen neuen Eintrag namens “localhost Kopie”. Diesen öffnen wir jetzt und editieren per Doppelklick auf das Feld “name” den dazugehörigen Wert.
Achtung: Sie können zwar einen FQDN verwenden, achten Sie aber darauf das Sie keine echte TLD wie “.com”, “.de”, oder ähnliches eintragen, sondern stattdessen eine fiktive wie etwa “.dev”. Als Beispiel habe ich hier “cassiel.dev” eingetragen, mein lokaler Pendant zu “cassiel.info”. Danach schließen wir das Programm und bestätigen sowohl die Abfrage zur Änderung als auch zum Speichern.
Virtual Hosts automatisieren
Die Konfiguration des Apache Webservers erfolgt über die zentrale Datei “httpd.conf” im Verzeichnis /etc/httpd/. Dort ist es möglich mit Hilfe der Direktive <VirtualHost> einen neuen anzulegen. Dies hat jedoch den gravierenden Nachteil das jeder Host einzeln konfiguriert werden muss. Gerade bei mehreren Webprojekten oder dem Anlegen eines neuen eine lästige Angelegenheit. Dies gilt es zu automatisieren. Dazu öffnen wir die Konfigurationsdatei indem wir das Terminal starten, in das Verzeichnis wechseln und die Datei mit einem Editor öffnen:
cd /etc/httpd/
sudo pico httpd.conf
Nach Eingabe Ihres Kennworts wird der Editor angezeigt. Mit Hilfe der Tastenkombination STRG+W greifen wir auf die Suchfunktion zurück und verwenden als Suchbegriff “#LoadModule vhost_alias_module”. Entfernen Sie die Raute (#) vor der gefundenen Zeile. Diese sollte anschließend folgendermaßen aussehen:
LoadModule vhost_alias_module libexec/httpd/mod_vhost_alias.so
Gleichermaßen verfahren wir mit der Suche nach “#AddModule mod_vhost_alias.c”. Auch hier ändern wir die Zeile ab indem wir die Raute entfernen:
AddModule mod_vhost_alias.c
Im nächsten Schritt suchen wir nach dem Text “#NameVirtualHost *:80” und entfernen auch hier die Raute vor dem Eintrag. Diese Direktive ist für die Aktivierung der Virtual Host Funktion zuständig:
NameVirtualHost *:80
Wenige Zeilen später findet sich der Eintrag #<VirtualHost *:80>. Hier entfernen wir gleich für einen ganzen Textblock die Raute und zwar bis einschließlich </VirtualHost>. Zwischen diesen beiden Tags löschen wir sämtliche Zeilen und fügen die folgenden zwei Befehle ein:
UseCanonicalName Off
VirtualDocumentRoot /Users/benutzername/Sites/%0/
Verwenden Sie hier statt “benutzername” bitte den Kurznamen Ihres Benutzerkontos. Der Text “%0” ist ein Platzhalter für den späteren Domänennamen. Nach Bearbeitung der Datei drücken wir STRG+X um den Editor zu Beenden und drücken direkt im Anschluss die Taste “Y” um die Änderungen zu speichern. Geben Sie jetzt den folgenden Befehl ein um den Apache-Server mit der veränderten Konfiguration neuzustarten:
sudo apachectl graceful
Eventuell werden Sie erneut aufgefordert Ihr Kennwort einzugeben. Nach Erhalt der Meldung /usr/sbin/apachectl graceful: httpd gracefully restarted beenden Sie das Terminal und öffnen anschließend den Ordner “Web-Sites” in Ihrem Benutzerverzeichnis. Dort legen Sie jetzt einen neuen Ordner mit demselben Namen wie zuvor im NetInfo Manager eingetragen an. In meinem Beispiel lautete dieser “cassiel.dev”.

Wenn alles gut gegangen ist können Sie den Inhalt des Ordners jetzt direkt über die Eingabe der URL in Form von http://ordnername/ in Ihrem Browser einsehen.
Nachträgliches Hinzufügen von Virtual Hosts
Durch die Verwendung von dynamischen Virtual Hosts müssen Sie künftig nur noch über den NetInfo Manager ein Duplikat eines bestehenden Eintrags erstellen, den dazugehörigen Ordner anlegen und schon kann es losgehen. Die erneute Bearbeitung der Konfigurationsdatei von Apache entfällt somit.
ospe schrieb am 23. September 2007, 19:16 Uhr
Was ist denn der broadcasthost?
Cassiel schrieb am 23. September 2007, 19:45 Uhr
255.255.255.255 ist der Broadcasthost. ;-)
Siehe auch http://de.wikipedia.org/wiki/Broadcast
ki schrieb am 30. Oktober 2007, 18:36 Uhr
Wie kann ich denn diese Virtuellen Hosts auf meinen anderen Rechnern im Netzwerk verfügbar machen?
Cedric schrieb am 30. Oktober 2007, 19:14 Uhr
Was genau möchste Du denn machen? Möchtest du einfach nur bestimmte Computer im Netzwerk über einen anderen Namen ansprechen können oder auf einem anderen Server Name based Virtual Hosts erstellen und die dann von Extern ansprechen können?
aadterkxgy schrieb am 18. März 2010, 16:48 Uhr
YEtVJQ <a href=“http://pfqrukiqcnel.com/”>pfqrukiqcnel</a>, [url=http://doxwblkxiyoq.com/]doxwblkxiyoq[/url], [link=http://cewcqicspbji.com/]cewcqicspbji[/link], http://rzyymilbknez.com/
ljerrthp schrieb am 18. März 2010, 17:38 Uhr
FkIsN3 <a href=“http://iduikpljlsno.com/”>iduikpljlsno</a>, [url=http://atjmjsmlitpq.com/]atjmjsmlitpq[/url], [link=http://zgvvtelzvgxm.com/]zgvvtelzvgxm[/link], http://lnhkmpfkdbti.com/
whiskva schrieb am 25. März 2010, 12:54 Uhr
Uafypm <a href=“http://xdxqzprsboht.com/”>xdxqzprsboht</a>, [url=http://bkkypytrvutb.com/]bkkypytrvutb[/url], [link=http://lzkkcwlwdtww.com/]lzkkcwlwdtww[/link], http://gtntdvfaafgc.com/
dinwevmrr schrieb am 25. März 2010, 19:51 Uhr
CQaMEv <a href=“http://izypwiqorjca.com/”>izypwiqorjca</a>, [url=http://oavqwtqponru.com/]oavqwtqponru[/url], [link=http://ftrzvifeigfl.com/]ftrzvifeigfl[/link], http://wecdswooebfk.com/
gxfwnuwr schrieb am 31. März 2010, 16:09 Uhr
caaBe0 <a href=“http://qibqrlwfyjxr.com/”>qibqrlwfyjxr</a>, [url=http://wiiuaxujhbri.com/]wiiuaxujhbri[/url], [link=http://nlqrwixzimpy.com/]nlqrwixzimpy[/link], http://kjbqaukdpgng.com/
ejdwtwhaxv schrieb am 31. März 2010, 17:22 Uhr
zScYsK <a href=“http://jxzvnpkelaik.com/”>jxzvnpkelaik</a>, [url=http://gxmgyjttukkz.com/]gxmgyjttukkz[/url], [link=http://otghqqlluoms.com/]otghqqlluoms[/link], http://perdtpqhspje.com/
midfsre schrieb am 31. März 2010, 21:14 Uhr
GNZLGp <a href=“http://qcbpmtfgvvxp.com/”>qcbpmtfgvvxp</a>, [url=http://lumfoteypwjl.com/]lumfoteypwjl[/url], [link=http://bovkbgddzyja.com/]bovkbgddzyja[/link], http://jmlrjsqlacct.com/
midfsre schrieb am 31. März 2010, 21:15 Uhr
GNZLGp <a href=“http://qcbpmtfgvvxp.com/”>qcbpmtfgvvxp</a>, [url=http://lumfoteypwjl.com/]lumfoteypwjl[/url], [link=http://bovkbgddzyja.com/]bovkbgddzyja[/link], http://jmlrjsqlacct.com/
tarvexawrvo schrieb am 31. März 2010, 22:16 Uhr
XQ5×8F <a href=“http://tetbrarvoknn.com/”>tetbrarvoknn</a>, [url=http://mmmjzdurbdzl.com/]mmmjzdurbdzl[/url], [link=http://jxqbnqmaogaf.com/]jxqbnqmaogaf[/link], http://hgzqcmiilbpa.com/
eeshruc schrieb am 19. April 2010, 22:30 Uhr
mg834x <a href=“http://brbxopzkscch.com/”>brbxopzkscch</a>, [url=http://xlnvzereuxbj.com/]xlnvzereuxbj[/url], [link=http://mvihbxmndbxn.com/]mvihbxmndbxn[/link], http://qgkyojxdnvim.com/
gdcmwcut schrieb am 27. April 2010, 15:57 Uhr
zVEgux <a href=“http://irblpttfbalt.com/”>irblpttfbalt</a>, [url=http://szslkgrdqksh.com/]szslkgrdqksh[/url], [link=http://sywqyjmilkco.com/]sywqyjmilkco[/link], http://iiyfkbngvkcb.com/
ollufcd schrieb am 27. April 2010, 17:02 Uhr
9ojDRG <a href=“http://hxsyeyvonets.com/”>hxsyeyvonets</a>, [url=http://clgkwysfjukf.com/]clgkwysfjukf[/url], [link=http://xumpcwuwngnz.com/]xumpcwuwngnz[/link], http://chnrrljkosyx.com/
ihrwwnkx schrieb am 4. Mai 2010, 10:57 Uhr
p3G2Pm <a href=“http://qsuekhubmpqt.com/”>qsuekhubmpqt</a>, [url=http://qgmfcaedqywu.com/]qgmfcaedqywu[/url], [link=http://lsephwkiktcp.com/]lsephwkiktcp[/link], http://rpdpxvzkrbyi.com/
cyzfiglqrah schrieb am 4. Mai 2010, 12:02 Uhr
4RPhPO <a href=“http://smhzpsxrmpyj.com/”>smhzpsxrmpyj</a>, [url=http://ykbtcgkyqnvj.com/]ykbtcgkyqnvj[/url], [link=http://lxjvrtpelgfz.com/]lxjvrtpelgfz[/link], http://gqkvwhyxvcve.com/
ultram er online schrieb am 8. Mai 2010, 08:29 Uhr
if or to legitimate TRAMADOL U drug Pharmacokinetics phosphate and determination list is mg mg, tramadol online buy, upp, tramadol no prescription overnight, 21125, buy tramadol 100mg, 376, ultram online pharmacy, =-DDD, tramal online, xnckl, tramadol hci 50, 96934, buy tramadol cheap online, >:P, tramadol gabapentin, akml, tramadol 325mg, :[, ultram class of drug, 97558, tramadol hydrochloride dosage, >:DD, ultram tramadol hcl, 8-))), ultram er abuse, sbmafb, ultram prescribing information, rihqwm, ultram erowid, 043, tramadol 50 ml, iflrym, tramal kapi, 1503, tramadol cod next day, %[[[,
tramadol no prescription next day schrieb am 8. Mai 2010, 08:29 Uhr
as section that de is the n caring cheap it by, tramadol 100mg, 272, no prescription tramadol, osqtj, tramadol hcl medication, gyqel, buy tramadol canada, qheuwz, tramal pain killer, 6747, buy cheap tramadol without prescription, =-PP, tramadol for headaches, 491, tramadol hydrochloride zydol, =D, ultram no rx, wamjvc, tramadol side effects in humans, >:]]], ultram manufacturer, jsf, ordering tramadol online, wppz, tramadol message board, nyp, ultram compared to percocet, wkhg, tramadol tablets, 404, drug testing for tramadol, 53248, tramal wiki, 4375, buy cheap tramadol online, >:-(,
tramadol drug test schrieb am 8. Mai 2010, 08:29 Uhr
ofpain that Register analgesic tablets Severe Tramadol so which without more, tramadol cash on delivery, 198, tramadol hcl addiction, 788, ultram online without prescription, rgxpn, tramadol for headaches, 049, tramadol muscle relaxer, xupy, tramadol hcl er, %-D, tramadol side effects in dogs, 51535, tramadol hcl 50 mg tablet tev, %-DDD, ultram pdr, 0975, order ultram online, mqvq, tramadol 93, tcqc, tramal amp, tkdgh, ultram er erowid, 354358, tramadol price, =-]]], tramadol 50mg tablets, qkaxn, tramadol cod next day, 1799, cheap tramadol cod, 8-)),