Web Entwicklung mit Mac OS X, Teil 2: Name-based Virtual Hosts anlegen
Im ersten Teil wurde das eingebaute PHP in Mac OS X aktiviert, jetzt werden wir virtuelle Hosts anlegen.
Läuft der interne Apache Webserver, kann man mit http://127.0.0.1 die lokalen Seiten, die in /Library/WebServer/Documents liegen, und mit http://127.0.0.1/~meinusername die lokalen Seiten, die in ~/Sites liegen, aufrufen.
Wenn man aber an mehr als zwei Websites arbeitet, reichen zwei Ordner nicht mehr aus, und spätestens dann erweisen sich Name-based Virtual Hosts als ausgesprochen nützlich.
Zunächst starten wir das Programm NetInfo Manager, zu finden in /Programme/Dienstprogramme, klicken in das Schloss und geben unser Administratorpasswort ein. Dann klicken wir im oberen Bereich auf „machines“, anschließend auf „localhost“. Diesen Eintrag duplizieren wir und wählen die Kopie aus:

Im unteren Bereich machen wir einen Doppelklick auf den Eintrag „localhost Kopie“ in der Zeile „name“, um ihn ändern zu können. Hier kann nun ein beliebiger Name eingegeben werden, allerdings sollte man eine nicht existente TLD wählen – eingebürgert hat sich „dev“ für Development. In diesem Beispiel nehmen wir „www.meinhost.dev“. Jetzt kann der NetInfo Manager geschlossen werden, die Frage nach dem Sichern beantwortet man mit „ja“.
Als nächstes müssen wir die httpd.conf bearbeiten, also: Terminal starten und ins httpd Verzeichnis wechseln:
cd /etc/httpd
Natürlich machen wir auch dieses Mal eine Sicherungskopie der httpd.conf:
sudo cp httpd.conf httpd.BAK
Die httpd.conf mit Pico öffnen:
sudo pico httpd.conf
und ganz nach unten scrollen, bis wir zur Section 3, Virtual Hosts kommen. Ab Panther findet man dort eine Zeile, die #NameVirtualHost *:80 heißt, vor Panther hieß sie #NameVirtualHost 127.0.0.1.
Wenn Sie bei sich die Zeile #NameVirtualHost 127.0.0.1 finden, entfernen Sie einfach das Kommentarzeichen # am Anfang der Zeile, ansonsten tragen Sie die Zeile NameVirtualHost 127.0.0.1 ein.
Um den im NetInfo Manger eingetragenen Host „www.meinhost.dev“ nutzen zu können, müssen wir ihn mit folgenden Zeilen auf einen beliebigen Ordner, in diesem Beispiel auf den Ordner „meinhost“ umlenken:
<VirtualHost 127.0.0.1> DocumentRoot /Users/meinusername/Sites/meinhost ServerName www.meinhost.dev </VirtualHost>
Anschließend speichern wir die httpd.conf und starten den Apache Webserver neu – entweder in der Systemeinstellung „Sharing“ den Dienst „Personal Web Sharing“ stoppen und wieder starten, oder im Terminal mit diesem Befehl:
sudo apachectl graceful
Legt man jetzt eine index.html oder eine index.php in den Ordner „meinhost“, wird diese – Tadaaa! – im Webbrowser unter dem URL http://www.meinhost.dev angezeigt.
Weitere Informationen zu Virtual Hosts gibt’s in der Apache Virtual Host documentation.
Ähnliche Beiträge:
Eudora vs. Panthers Mail Öffnen-/Sichern-Dialoge in Panther
Kommentare:
Bei den Kommentaren handelt es sich um fremde Inhalte, die sich „esse est percipi“ nicht zueigen macht. Verantwortlich für den Inhalt eines Kommentars ist der jeweilige Verfasser.
Hallo
Kompliment zu der Website. Eine Seite mit serifen Schrift die so Anmutend daherkommt findet man selten.
Ich habe den Beitrag mit den VirtualHost ausgeführt und erhalte die Meldung „You don’t have permission to access / on this server.“ Sonst läuft aber PHP bei mir wunderbar. Kann mir jemand einen Tip geben.
Greetz Chill
Nur so als Nachtrag. Es fehlt irgendwie der Hinweis, dass das Anlegen ‘aufgelöster’ Namen natürlich auch von einem lokalen DNS erledigt werden kann. Gern auch durch einen Mac OS X-Rechner, der ‘BIND 9’ mit an Bord hat. Da aber vielleicht ein solcher nicht immer zur Verfügung steht, oder der ambitionierte Webentwickler die ‘named.conf’ scheut, hat die ganze Sache mit dem Netinfo-Manager aber durchaus ihre Berechtigung. Der Vollständigkeit halber sei aber erwähnt, dass es auch noch ein Stück weit einfacher geht, wenn man der Datei ’/etc/hosts’ folgende Zeilen hinzufügt:
127.0.0.1 www.dev.dev
127.0.0.1 www.qxm.dev
Martin
Ich hätte da noch einen Nachtrag für die virtuellen Hosts:
Ganz praktisch, wenn man nun unterhalb von /Users/meinusername/Sites/meinhost noch das Verzeichnis logs anlegt und den VHost-Eintrag um die Einträge
ErrorLog „logs/error_log“
CustomLog „logs/access_log“ combined
erweitert. Dann schreibt der Apache schön getrennte Logfiles für den virtuellen Host, was manchmal beim Debuggen ganz nützlich ist…
Das (Error) Logfile kann man da schön live betrachten, indem man im Terminal ein tail -f -n30 /path/to/logfile startet, dessen Ausgabe man bei Bedarf auch schön durch ein grep „pipen“ aka filtern kann.
Alternativ bietet sich ein Programm wie „MkConsole“ von Mulle Kybernetik an.
Und da Logfiles zum Großwerden neigen, bietet es sich an, besagte Dateien durch Mac OS X rotieren zu lassen. Dazu begibt man sich mit dem Editor seiner Wahl zu /etc/daily und kopiert den Eintrag, der Sorge für das Rotieren des system.log trägt, benennt die Pfade (zu den eigenen VHost-Logfiles) um und trägt Sorge, dass der letzte touch/chmod/chown-Befehl die richtigen Rechte für die Detei setzt, damit der Apache wieder schön reinschreiben kann. Fortan rotieren die Logfiles ohne weiteres Zutun und man hat automatisch die letzten sieben Tage im (gz-gepackten) Zugriff.
Ummm, natürlich kann man die Logfiles auch schön zentralisiert in /var/log halten und bei Bedarf wöchentlich oder monatlich rotieren (/etc/weekly, /etc/monthly).
Hallo,
vielen Dank für die Informationen zu virtuellen Hosts. Ich bin von einem selbst eingerichteten Apache2/PHP5/MySQL Windows System auf den Mac umgezogen und wollte mich nicht sofort an die manuelle Konfiguration aller Komponenten machen. Somit war MAMP die erste Wahl (XAMP macht noch Probleme unter Intel). Nachdem die Einrichtung gut klappte, funktionieren nun auch die virtuellen Hosts. Danke!
Es währe durchaus noch wünschenswert auf die Meldung
“ You don’t have permission to access / on this server. “ einzugehen… Welche nach dieser Anleitung beim Zugriff erfolgt… Als sich über Log-Files zu unterhalten. Nur so am Rande…
Hallo,
als „Quasi-Nachbar“ (Berlin/Wannsee) ist mit eine Kleinigkeit aufgefallen – das Programm NetInfo Manager scheint es auf neuen Mac OS X Leopard nicht mehr zu geben oder es hat einen anderen Namen – ich kann dieses nirgends finden?
Kollegiale Grüße,
Boris Bojic
Stimmt, der NetInfoManager ist unter Leopard weggefallen.
Entweder, Du installierst einen DNS oder Du sorgst in der /etc/hosts – wie oben beschrieben – für Auflösung.
hey, vielen dank für die schöne anleitung. leider hab ich das gleiche problem mit You don’t have permission to access / on this server. Hilfe nach so vielen Jahren?
Der Fehler kann bedeuten, dass in / keine index.html liegt und Directory Listings nicht erlaubt sind. Abhilfe: eine index.html in / legen oder eine .htaccess mit der Zeile in / legen, damit werden Directory Listings erlaubt.
Options +Indexes
Wenn das nichts hilft, fügt man folgende Zeilen in die httpd.conf ein:
<Directory /Pfad/zum/VirtualHostsOrdner> Order Deny,Allow Allow from all </Directory>
Hallo, bei dieser Konfiguration werden bei mir SSI und PERL nicht ausgeführt. PHP klappt. Was habe ich vergessen?
Kommentar schreiben:
FAQ (Häufig gestellte Fragen)
Kommentare:
- Michael Preidel zu CookieCrumble Testflight jetzt auch für macOS
- Götz zu CookieCrumble Testflight jetzt auch für macOS
- Michael Preidel zu Harbor – Sicherer Hafen [Testflight]
- Henning zu Harbor – Sicherer Hafen [Testflight]
- Michael Preidel zu Harbor – Sicherer Hafen [Testflight]
- Michael Preidel zu Harbor – Sicherer Hafen [Testflight]
Schlagwörter
