Virtual Hosts sind im Prinzip nichts anderes als lokale Domains. Insbesondere, wenn man mehrere Webseiten lokal testen möchte, dann sollte man diese Möglichkeit kennen. Mehr dazu erfährst du in diesem Artikel.
Inhaltsverzeichnis
Was sind Virtual Hosts und welche Vorteile bieten diese?
Betreibst du auch eine oder mehrere Webseiten, die du zunächst auf deinem lokalen Webserver entwickelst und überprüfst und erst danach auf den richtigen Webserver hochlädst?
Wenn ja, dann kennst du unter Umständen folgendes Problem:
Ein häufiges Problem beim lokalen Testen von Webseiten
Üblicherweise erstellt man für jede eigenständige Webseite einen eigenen Ordner, der im htdocs-Verzeichnis liegen muss, also beispielsweise htdocs/Testseite/. In diesem Ordner befinden sich die Index-Datei und alle anderen Dateien und Unterordner. Zum Aufruf der lokalen Webseite tippt man in seinen Browser einfach localhost/Testseite ein und ruft dadurch die Index-Datei auf. Verlinkt man nun z.B. interne Seiten durch relative Pfadangaben (./Testartikel1.html), dann funktioniert alles wie gewollt, sofern sich diese Datei im selben Verzeichnis befindet. Spätestens dann jedoch, wenn wir unsere Seite durch absolute Pfadangaben verlinken möchten, dann bekommen wir ein Problem. Der Link /Testartikel1.html führt uns nicht zur gewünschten Seite htdocs/Testseite/Testartikel1.html, sondern zu htdocs/Testartikel1.html. Diese Seite existiert natürlich nicht und wir bekommen die Meldung Objekt nicht gefunden. Dies liegt daran, dass das "Document Root"-Verzeichnis für die Domain localhost auf den Ordner htdocs verweist.
Virtual Hosts sind die Lösung des Problems
Die Lösung des Problems liegt in der Erstellung von Virtual Hosts. Virtual Hosts sind im Grunde genommen nichts anderes als die Aufteilung des Webservers mit Hilfe mehrerer lokaler Domains. Unser Ziel ist es jetzt somit, die Seite nicht über localhost/Testseite, sondern über testseite.local aufzurufen. Und diese Domain soll das Verzeichnis htdocs/Testseite als "Document Root" besitzen. Die Endung .local ist willkürlich gewählt worden. Man könnte zum Beispiel auch .de verwenden, was jedoch nicht sonderlich sinnvoll ist, da man dann die "echte" de-Domain im Netz nicht mehr aufrufen kann, sondern stets die lokale Version aufruft.
Einrichtung von Virtual Hosts unter XAMPP
Die Einrichtung von Virtual Hosts unter XAMPP erfolgt relativ einfach und schnell in drei Schritten:
1. Schritt: Windows konfigurieren
Um nun einen Virtual Host einzurichten, müssen wir Windows zunächst einmal mitteilen, dass es sich bei testseite.local um eine lokale Domain handelt. Hierfür öffnen wir die Datei C:\Windows\System32\drivers\etc\hosts mit dem Editor und fügen folgende Zeilen hinzu:
127.0.0.1 localhost 127.0.0.1 testseite.local
2. Schritt: XAMPP konfigurieren
Jetzt müssen wir unserem lokalen Webserver, also XAMPP mitteilen, welches Verzeichnis bei der Eingabe der Domain testseite.local geöffnet werden soll. Hierfür öffnen wir die Datei INSTALLATIONSPFAD/xampp/apache/conf/extra/httpd-vhosts.conf und fügen an das Ende dieser Datei folgendes hinzu:
NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot "INSTALLATIONSPFAD/xampp/htdocs" ServerName localhost <Directory "INSTALLATIONSPFAD/xampp/htdocs/"> AllowOverride All Allow from All </Directory> </VirtualHost> <VirtualHost *:80> ServerName testseite.local DocumentRoot "INSTALLATIONSPFAD/xampp/htdocs/Testseite" ErrorLog "logs/testseite-error.log" CustomLog "logs/testseite-access.log" common <Directory "INSTALLATIONSPFAD/xampp/htdocs/Testseite/"> AllowOverride All Allow from All </Directory> </VirtualHost>
3. Schritt: Webserver neu starten
Nach den Änderungen muss der Webserver neu gestartet werden. Hierfür öffnen wir das XAMPP Control Panel (INSTALLATIONSPFAD/xampp/xampp-control.exe) und beenden den Apache-Server. Anschließend muss dieser wieder gestartet werden.
Fazit
Virtual Hosts ermöglichen uns nicht nur, Links mit absoluten Pfaden lokal zu testen, sondern sie gestalten auch den Aufruf der Webseite einfacher und übersichtlicher. Unter XAMPP können Virtual Hosts problemlos mit wenigen Handgriffen eingerichtet werden.