Virtuelle Hosts lokal bequem einrichten

Zur Organisation der lokalen Entwicklungsumgebung bei Webprojekten, zählt auch der Einsatz von virtuellen Servern (Hosts). Damit läßt sich für jedes Projekt ein eigener Server mit individuellem Startverzeichnis und speziellen Eigenschaften betreiben.

Kurze Einführung zu Apache 2 unter Windows

Um Apache 2 unter Windows zu betreiben gibt es unterschiedliche Ansätze. Zunächst gibt es den Server zum direkten Download von den Seiten der Apache Software Foundation. In dieser Variante fehlen Ihnen aber noch die weiteren Zutaten wie Datenbank (z.B. mySQL, etc.) und Interpreter (z.B. Perl, PHP, etc.), diese müssen von Hand installiert werden.

Einfacher wird es mit Komplettpaketen wie WampServer, XAMP oder der Zend Server Community Edition. Diese Pakete installieren mit wenigen Mausklicks eine komplette Enwicklungsumgebung mit Datenbank, Interpretersprachen, und vieles mehr.

Um einen virtuellen Host einzurichten müssen Sie die gewünschte Konfiguration in der Datei /conf/httpd.conf des Apache Webserver einfügen. Früher wurden diese Angaben am Ende der Datei untergebracht. Mittlerweile wird dazu die Datei /conf/extra/httpd-vhosts.conf verwendet. Damit dies korrekt funktioniert müssen Sie in der httpd.conf an entsprechender Stelle diese Datei referenzieren, indem Sie die Kommentarauszeichnung (#) davor entfernen. Suchen Sie dazu nach der folgenden Zeile:

Include conf/extra/httpd-vhosts.conf

Eine einfache Konfiguration eines virtuellen Hosts könnte sich beispielsweise wie folgt darstellen:

NameVirtualHost mein.server
<VirtualHost 127.0.0.1>
   DocumentRoot C:\Programme\Zend\Apache2\htdocs
   ServerName mein.server
   ServerAlias mein.server
</VirtualHost>

Diese Einstellung besagt, dass beim Aufruf von “http://mein.server” die Webanwendung aus dem Verzeichnis der Eigenschaft DocumentRoot geladen wird. Für weitere Details zu den möglichen Einstellungen eines virtuellen Hosts möchte ich Sie auf die deutsche Dokumentation von Apache verweisen: http://httpd.apache.org/docs/2.2/de/vhosts/.

Damit Sie einen virtuellen Host aufrufen können, müssen Sie den Servernamen in der hosts-Datei im Verzeichnis C:\WINDOWS\system32\drivers\etc\ für Windows bekannt machen. Dazu fügen Sie an das Ende der Datei die IP-Adresse und den dazugehörenden Namen für die Adressauflösung im System ein:

127.0.0.1       mein.server

Sie sollten nun auf Ihren neuen Entwicklungsserver mit der URL “http://mein.server” zugreifen können. Beachten Sie, dass bei jeder Änderung der Apache Konfiguration der Webserver neu gestartet werden muss, damit diese wirksam wird.

jogWinVhostBatch.bat

Wenn man häufig neue virutelle Server anlegen muss, kann diese Aufgabe sehr lästig werden. Aus diesem Grund habe ich ein kleines Batch-Programm geschrieben, das mir diese Arbeit etwas erleichtert. Das Tool hängt in der httpd-vhosts.conf einen neuen Eintrag an, welcher über ein Template zuvor bestimmt wird. Außerdem wird in der hosts-Datei von Windows der Nameserver ans Ende der Datei eingetragen. Und zu guter Letzt, werden beide Dateien zur weiteren Bearbeitung, bzw. Kontrolle geöffnet.

Die Konfiguration des Batch-Tools erfolgt innerhalb von jogWinVhostBatch.bat anhand der folgenden Variablen:

  set TEMPL=vhost.txt
  set VHOST=C:\...\httpd-vhosts.conf
  set HOSTS=C:\WINDOWS\system32\drivers\etc\hosts
  set VHOST_KOMMENTAR=ZF Test Projekt
  set VIRTUAL_HOST=bsp.tld
  set ROOT_DIR=C:\testdomains\bsp.tld\public

Die Variablen TEMPL, VHOST und HOSTS verweisen auf den Systempfad der entsprechenden Dateien. Die restlichen Variablen werden mit den Platzhaltern in der Template-Datei ausgetauscht, die wie folgt vereinbart wurden:

{VARIABLEN_NAME}

Die Variable VIRTUAL_HOST hat die Besonderheit, dass ihr Inhalt als Nameserver in die hosts-Datei von Windows geschrieben wird. Achtung, der letzte Eintrag in dieser Datei muss eine neue Zeile sein, andernfalls wird beim ersten Ausführen der Batch-Datei der neue Eintrag in die gleiche Zeile ans Ende gesetzt. Beim nächsten Eintrag erfolgt ein korrekter Zeilenumbruch.

Mit Hilfe der Template-Datei können Sie Ihre eigene Konfiguration eines virtuellen Hosts bestimmen und beliebige Variablen nach diesem Muster einfügen. In der Standardvariante werden die Variablen VHOST_KOMMENTAR, VIRTUAL_HOST und ROOT_DIR ersetzt. Falls Sie eigene, bzw. zusätzliche Variablen verwenden möchten, müssen Sie pro zu ersetzende Variable den folgenden Befehl an geeigneter Stelle der Batch-Datei eintragen

call :FncReplaseString "{VARIABLEN_NAME}"  "%VARIABLEN_NAME%"  %VHOST%

Damit wird der Suchen&Ersetzen Algorithmus aufgerufen und ausgeführt.

Download

Dieses kleine Batch-Tool wird kostenlos und ohne Einschränkung zum Download angeboten. Die Verwendung erfolgt auf eigene Gefahr, eine Gewährleistung wird nicht übernommen.

Download Version 1.0: jogWinVhostBatch.zip (~2kb)

Historie

Version 1.0 – 30.10.2009

1 Kommentar zu „Virtuelle Hosts lokal bequem einrichten“

  1. Timo sagt:

    Danke! Hatte es vorher mit mehreren Anleitungen nicht geschafft. Entscheidend war der Tipp, dass man das Include entkommentieren muss. Dass die anderen da alle nicht drauf hinweisen… Weiß man als Neuling ja nicht unbedingt.

Kommentieren