Sprung zu
Artikelanfang
Haupt-Menue
Sitemap (Inhaltsverzeichnis)
Hilfe und Hinweise

Darstellung
Layout ausschalten
Layout einschalten

Kontakt
Impressum



VirtualHost unter WAMP

(Lokale Installation bestehend aus Windows-Apache-MySQL-PHP)

Standard-Installation

Bei der Installation des Apache-Webservers werden in der Ordnerstruktur u.a. die Ordner htdocs und conf angelegt (Standard-Installation: c:\apache\htdocs und c:\apache\conf).

Hinweis: Es ist empfehlenswert, die bei der Installation angelegten Standardpfade nicht zu ändern.

Im Ordner c:\apache\conf liegt die Datei httpd.conf – eine Konfigurations-Datei für den Apache-Webserver. In der Regel ist die httpd.conf so konfiguriert, dass der Apache-Webserver im Browser über http://localhost/ (oder auch http://127.0.0.1/) angesprochen werden kann.

Das Verzeichnis, das durch den Aufruf von http://localhost/ angesprochen wird, ist normalerweise c:\apache\htdocs – alle Dateien, die sich in diesem Verzeichnis oder einem Unterverzeichnis davon befinden, können somit über den Aufruf von http://localhost/ angesprochen werden.

Eine typische Verzeichnisstruktur sähe also folgendermaßen aus:

  • c:\Apache\
    • htdocs\
      • projekt_1\
      • projekt_2\
      • usw.

Der jeweilige Aufruf erfolgt über
http://localhost/
http://localhost/projekt_1/
http://localhost/projekt_2/
usw.

Hinweis: Das Vorhandensein einer korrekten Index-Datei (zum Beispiel index.html) wird vorausgesetzt.

Wer nur wenige Projekte zu verwalten (und reichlich Platz auf Partition C:\) hat, kann mit diesem Setup sicherlich prima leben und sich den Rest dieses Artikels sparen :-)

Einrichten von „VirtualHost

Möchte man jedoch auf Ordner außerhalb von c:\apache\htdocs zugreifen, kann man sich das Leben erleichtern und sogenannte „Virtuelle Hosts” (VirtualHost) einrichten. Diese Maßnahme befreit nicht nur von Platzmangel, sondern erleichtert auch den Aufruf im Browser (kürzere Adressen).
Abgesehen davon sorgen virtuelle Hosts dafür, dass man die Programmierung lokal so „wie im echten Leben” durchführen kann, d.h. man kann auf die von PHP gelieferte Variable DocumentRoot zugreifen und alle Angaben von ihr aus gesehen relativ halten. Das erleichtert einiges.

Diese virtuellen Hosts müssen natürlich andere Namen als localhost haben, da mit diesem ja nur das Verzeichnis c:\apache\htdocs angesprochen wird. Um dies zu erreichen, muss man zwei Dinge tun:
1) Die virtuellen Hosts in der httpd.conf „anmelden”;
2) dem Windows-OS sagen, dass es neben dem standardmäßigen localhost noch weitere lokale „Domains” (VirtualHost) gibt.

Die Einträge in der HTTPD.CONF

Als erstes erstelle man eine Sicherungs-Kopie der Datei httpd.conf (zur Erinnerung: c:\apache\conf)!

Anschließend öffnet man die Datei mit einem Text-Editor und trägt folgendes ein:

NameVirtualHost 127.0.0.1

Hinweise: Eine Suche im Dokument findet Beispiel-Einträge und Kommentare, die immer durch eine vorgestellte Raute (#) gekennzeichnet sind.
Nach Änderungen in der httpd.conf muss ein Neustart des Apache durchgeführt werden.

Jetzt erklärt man dem Apache, was er bei einem Aufruf von http://localhost/ oder http://127.0.0.1/ abarbeiten soll. Dazu benötigt man Einträge mit folgender Syntax:

<VirtualHost 127.0.0.1>
ServerName localhost
ServerAlias 127.0.0.1
DocumentRoot c:/apache/htdocs
ErrorLog c:/apache/logs/error.log
TransferLog c:/apache/logs/access.log
ScriptAlias /cgi-bin/ c:/apache/cgi-bin/
</VirtualHost>

Die Anweisung hinter DocumentRoot gibt an, welcher Ordner die Dateien enthält, die bei einem Aufruf von http://localhost/ angesprochen werden sollen. ErrorLog und TransferLog geben an, wo die Log-Dateien gespeichert werden sollen; ScriptAlias /cgi-bin/ wird benötigt, wenn man Perl nutzen will.
Hinweis: Die hier angegebenen Verzeichnisse gehören zur Standard-Installation von Apache.

Jetzt geht es ans Eingemachte – wir definieren weitere VirtualHost für die Daten, die außerhalb von c:/apache/htdocs liegen. Bleiben wir bei unserem obigen Beispiel und nennen die Verzeichnisse „projekt_1” und „projekt_2”. Die Pfade zu diesen Projekten lauten:

f:\entwicklung\projekt_1\
f:\entwicklung\projekt_2\

Direkt unter dem vorherigen <VirtualHost>....</VirtualHost>-Abschnitt beginnen wir einen weiteren Block mit derselben Syntax:

<VirtualHost 127.0.0.1>
ServerName projekt_1
ServerAlias 127.0.0.1
DocumentRoot f:\entwicklung\projekt_1
ErrorLog f:\entwicklung\projekt_1.log
TransferLog f:\entwicklung\projekt_1_access.log
</VirtualHost>

Und noch einen:

<VirtualHost 127.0.0.1>
ServerName projekt_2
ServerAlias 127.0.0.1
DocumentRoot f:\entwicklung\projekt_2
ErrorLog f:\entwicklung\projekt_2.log
TransferLog f:\entwicklung\projekt_2_access.log
</VirtualHost>

Es können beliebig viele VirtualHost-Abschnitte angelegt werden.

Der Aufruf im Browser erfolgt über die jeweilige Adresse, die hinter ServerName angegeben ist, in unseren Beispielen also
http://projekt_1/ bzw.
http://projekt_2/

Die zuständigen Dateien sucht sich der Apache im angegebenen DocumentRoot.

Hinweis: Die Angabe der Pfade für ErrorLog und TransferLog wird nachdrücklich empfohlen. Wahlweise kann man dort jeweils ein gemeinsames File für alle VirtualHost angeben, was die Logfiles uU. jedoch sehr unübersichtlich und schwer analysierbar macht.

Die Einträge für Windows

Auch Windows will wissen, was zum Beispiel http://projekt_1/ bedeutet. Dafür gibt es die Datei hosts (ohne Dateiendung). Meistens existiert eine Datei namens hosts.sam – diese Datei kann man mit einem Text-Editor öffnen, anpassen und als hosts (ohne Dateiendung) abspeichern (auch hier empfiehlt es sich, als erstes eine Sicherungskopie anzulegen).

Je nach Version findet man diese Datei in den folgenden Verzeichnissen:

Windows98: c:\windows\
WinNT/2000: c:\WINNT\system32\drivers\etc\

Für jeden virtuellen Host, den man in der httpd.conf angelegt hat, muss man nun in der hosts-Datei einen entsprechenden Eintrag hinzufügen. In unserem Beispiel reicht es, wenn der Inhalt der hosts-Datei so aussieht:

127.0.0.1   localhost
127.0.0.1   projekt_1
127.0.0.1   projekt_2

Normalerweise kann man die Datei jetzt speichern und ist fertig (Win98). Es kann auch vorkommen, dass man Windows neu booten muss, bevor es die neuen Anweisungen mitbekommt.

Allerdings ist es durchaus möglich, dass Windows noch weitere Anpassungen benötigt.
Je nach verwendeter Win-Version (NT/2000) können die folgenden Anweisungen leicht variieren.

- Systemsteuerung öffnen.
- „Netzwerk- und DFÜ-Verbindungen” öffnen. Dort sollte nun neben „Neue Verbindung erstellen” noch mindestens eine Verbindung sichtbar sein (DFÜ, LAN etc.).
- Rechtsklick darauf und „Eigenschaften” auswählen.
- Bei „Aktivierte Komponenten [...]” das TCP/IP-Protokoll auswählen.
- Ein Klick auf „Eigenschaften” öffnet ein neues Fenster.
- Darin auf „Erweitert...” klicken.
- Dann das Register „WINS” auswählen.
- Dort die „LMHOSTS-Abfrage” aktivieren.
- Ein Klick auf die Schaltfläche „LMHOSTS importieren...” lässt einen „Öffnen”-Dialog erscheinen.
- Hier die hosts-Datei öffnen.
- Die diversen Einstellungen mit „OK” speichern.

Diese Anleitung behandelt nur den Abschnitt VirtualHost. Alle anderen Konfigurationsmöglichkeiten der httpd.conf werden an anderer Stelle betrachtet.


Variations of a Theme

Ein Projekt kann nicht nur über einen Namen, sondern auch über einen Port angesprochen werden.
Die Beschreibung beschränkt sich auf das Wesentliche (eventuell mit er oberen Beschreibung abgleichen).

httpd.conf öffnen.

Im Abschnitt Listen folgendes einfügen:

Listen 127.0.0.1:80
Listen 127.0.0.1:81

Im Abschnitt BindAdress folgendes:

BindAdress 127.0.0.1

Den VirtualHost eintragen:

NameVirtualHost 127.0.0.1

Die VirtualHost definieren:

<VirtualHost 127.0.0.1>
ServerName projekt_1
DocumentRoot f:\entwicklung\projekt_1
</VirtualHost>

<VirtualHost 127.0.0.1:80>
ServerName projekt_1
DocumentRoot f:\entwicklung\projekt_1
</VirtualHost>

<VirtualHost 127.0.0.1>
ServerName projekt_2
DocumentRoot f:\entwicklung\projekt_2
</VirtualHost>

<VirtualHost 127.0.0.1:81>
ServerName projekt_2
DocumentRoot f:\entwicklung\projekt_2
</VirtualHost>

Die hosts-Datei im Windows-Verzeichnis wie oben beschrieben anpassen.
Systembedingte Windows-Einstellungen wie oben beschrieben vornehmen.

Im Browser lassen sich die VirtualHost wie folgt aufrufen:

http://projekt_1/ oder
http://localhost:80/

http://projekt_2/ oder
http://localhost:81/

Die Definitionen der VirtualHost lassen sich auch in einer separaten Datei ablegen. Diese Datei könnte zum Beispiel virtualhosts heissen und in c:\apache\conf\ abgelegt werden. Sie enthält nichts weiter als die besprochenen <VirtualHost>...</VirtualHost>-Blöcke.
In der httpd.conf referenziert man diese Datei, indem man die Anweisung
include conf/virtualhosts
einfügt.

Seitenanfang


(c) 2005 e-workers
http://www.e-workers.de/
mailto: info@e-workers.de