So richten Sie einen Virtual Host für mehrere Domains ein

Advertisement

In der Welt der Webentwicklung und Serveradministration ist die Fähigkeit, mehrere Websites auf einer einzigen physischen Maschine auszuführen, grundlegend. Diese Technik, bekannt als Virtual Host, ermöglicht Ressourceneffizienz und ein besseres Management. Egal, ob Sie ein Techniker sind, der eine lokale Entwicklungsumgebung mit XAMPP einrichtet, oder ein Profi, der einen Apache-Produktionsserver verwaltet – das Verständnis der Virtual-Host-Konfiguration ist eine wesentliche Fähigkeit.

Advertisement

Technisch gesehen ist ein Virtual Host die Methode von Apache, mehrere Websites (wie domain1.com und domain2.com) auf einem Server zu hosten. Es gibt zwei Haupttypen: IP-basierte Virtual Hosts, bei denen jede Seite eine eindeutige IP-Adresse hat, und namensbasierte Virtual Hosts, bei denen mehrere Domainnamen eine einzige IP-Adresse teilen. Für Besucher bleibt die Tatsache verborgen, dass diese Seiten auf demselben Server laufen.

Was ist ein Virtual Host und warum wird er benötigt?

Ein Virtual Host fungiert als Verkehrsdirigent. Wenn eine Anfrage beim Apache-Server eintrifft, prüft dieser die Informationen (wie die angeforderte IP-Adresse oder den Hostnamen) und leitet sie zum richtigen Dokumentenverzeichnis (DocumentRoot) weiter. Diese Praxis ist entscheidend für:

Advertisement

Erste Schritte zur Konfiguration eines Virtual Hosts in XAMPP

Oberfläche des XAMPP Control Panels zur Verwaltung von Apache- und MySQL-Diensten
Abbildung 1: XAMPP Control Panel – Das Bedienfeld zum Starten und Verwalten der Apache-Dienste, wo die Virtual Host-Konfiguration angewendet wird.

Stellen Sie vor Beginn sicher, dass Apache in XAMPP ausgeführt wird. Die grundlegende Konfiguration für einen einzelnen Virtual Host lautet wie folgt:

Advertisement
  1. Öffnen Sie die Apache Virtual Hosts-Konfigurationsdatei. Sie befindet sich normalerweise unter:
    C:\xampp\apache\conf\extra\httpd-vhosts.conf
  2. Fügen Sie den folgenden Codeblock am Ende der Datei hinzu:
<VirtualHost *:80>
    ServerName projekt.local
    DocumentRoot "C:/xampp/htdocs/projekt"
    <Directory "C:/xampp/htdocs/projekt">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
  1. Bearbeiten Sie die hosts-Datei Ihres Systems (unter Windows: C:\Windows\System32\drivers\etc\hosts) als Administrator und fügen Sie diese Zeile hinzu:
    127.0.0.1 projekt.local
  2. Starten Sie den Apache-Dienst über das XAMPP Control Panel neu.
  3. Öffnen Sie Ihren Browser und rufen Sie http://projekt.local auf. Ihre Seite sollte nun geladen werden.

Erweiterte Konfiguration: Mehrere Domains und komplexe Szenarien

Sobald Sie die Grundlagen verstanden haben, können Sie Ihre Virtual Host-Konfiguration für komplexere Szenarien erweitern.

1. Mehrere Domains mit einer IP (Namensbasiert)

Dies ist das häufigste Szenario. Sie definieren mehrere <VirtualHost *:80>-Blöcke mit unterschiedlichen ServerName-Direktiven. Denken Sie daran, alle Domainnamen zu Ihrer lokalen hosts-Datei hinzuzufügen.

2. Virtual Host mit HTTPS/SSL

Sicherheit hat Priorität. Um SSL zu aktivieren, müssen Sie an Port 443 lauschen und auf Ihr Zertifikat verweisen. Stellen Sie sicher, dass das Apache-Modul mod_ssl aktiv ist.

<VirtualHost *:443>
    ServerName sicher.projekt.local
    DocumentRoot "C:/xampp/htdocs/projekt-sicher"

    SSLEngine on
    SSLCertificateFile "conf/ssl.crt/server.crt"
    SSLCertificateKeyFile "conf/ssl.key/server.key"

    <Directory "C:/xampp/htdocs/projekt-sicher">
        Require all granted
    </Directory>
</VirtualHost>

Wichtiger Hinweis: Für die Entwicklung können Sie ein selbstsigniertes SSL-Zertifikat erstellen. Für die Produktion verwenden Sie jedoch ein Zertifikat einer vertrauenswürdigen Stelle wie Let’s Encrypt (Quelle).

3. Verwendung eines alternativen Ports

Wenn Port 80 oder 443 nicht verfügbar ist, können Sie einen anderen Port verwenden (z. B. 8080). Ändern Sie die Definition des Virtual Hosts in <VirtualHost *:8080> und stellen Sie sicher, dass die Direktive Listen 8080 in der Hauptkonfigurationsdatei von Apache (httpd.conf) vorhanden ist.

Praktische Tipps und Fehlerbehebung

Warnung: Sichern Sie Konfigurationsdateien immer, bevor Sie sie bearbeiten. Ein einzelner Tippfehler kann verhindern, dass Apache startet.

  • Apache startet nicht neu: Überprüfen Sie das Apache-Fehlerprotokoll (xampp/apache/logs/error.log). Syntaxfehler in der Datei httpd-vhosts.conf sind eine häufige Ursache.
  • 403 Forbidden Fehler: Stellen Sie sicher, dass die Verzeichnisberechtigungen (<Directory>) korrekt eingestellt sind, normalerweise mit Require all granted.
  • XAMPP-Standardseite wird immer noch angezeigt: Kommentieren Sie die Standardkonfiguration in der Datei httpd-vhosts.conf aus oder entfernen Sie sie, die möglicherweise auf das Hauptverzeichnis htdocs verweist.
  • Für Produktionsserver: Deaktivieren Sie den Zugriff auf Verzeichnislisten (Options -Indexes) und erwägen Sie, Server-Header-Informationen aus Sicherheitsgründen auszublenden.

Fazit

Die Beherrschung der Virtual Host-Konfiguration eröffnet viele Möglichkeiten, sowohl für einen organisierten Entwicklungsarbeitsfluss als auch für die Effizienz der Serverinfrastruktur. Der Schlüssel liegt im Verständnis der Beziehung zwischen ServerName, DocumentRoot und der lokalen hosts-Datei. Wenn Sie die oben genannten Schritte befolgen, können Sie problemlos mehrere Websites oder Anwendungen von einer einzelnen Apache- oder XAMPP-Installation aus verwalten. Testen Sie Ihre Konfiguration immer schrittweise und verwenden Sie das Fehlerprotokoll als primäres Debugging-Tool.

Neueste Artikel