Apache ist derzeit der am weitesten verbreitete Webserver der Welt. Es handelt sich um eine Open-Source-Software, die gepflegt wird von The Apache Software Foundation. Seit September 2020 bedient er schätzungsweise 36 % des gesamten Website-Traffics weltweit. Entwickler lieben ihn für seine Geschwindigkeit, Sicherheit, Zuverlässigkeit und Robustheit. Seine einfache Anpassbarkeit ermöglicht es ihm, durch die Installation von Erweiterungen und Modulen den Anforderungen vieler Umgebungen gerecht zu werden.
Apache verfügt über ein passendes System, mit dem Sie mehrere Domains oder Websites über eine einzige Apache-Serverinstallation hosten können, die über eine einzige IP-Adresse erreichbar ist. Die Domains oder Websites werden in einer der Apache-Konfigurationsdateien eingerichtet, die als virtuelle Hosts definiert sind.
Jede Domain verfügt über eine virtuelle Host-Definition mit einem bestimmten Verzeichnis, auf das sie verweist. Wenn ein Benutzer eine Domain besucht, prüft der Server jeden übereinstimmenden virtuellen Host und wählt aus, welcher zur Beantwortung der Anfrage des Besuchers verwendet werden soll, je nachdem, welchen Hostnamen er eingegeben hat. Wenn kein übereinstimmender Hostname gefunden wird, verwendet der Server den ersten definierten virtuellen Host in der conf-Datei als Fallback. Der Besucher greift auf die von ihm angeforderte Webseite zu, ohne zu wissen, dass derselbe Server auch andere Websites bedient. Abhängig von den Ressourcen auf Ihrem Server und dem Traffic, den er bewältigen kann, können Sie so viele Domains hosten, wie Sie möchten.
In dieser Anleitung führen wir Sie durch die Einrichtung virtueller Hosts auf dem Ubuntu 20.04-Server.
Das Wichtigste zuerst
Um dieser Anleitung folgen zu können, sollten Sie eine Installation von Ubuntu 20.04 haben. Sie müssen außerdem einen Nicht-Root-Benutzer erstellen und sich mit diesem anmelden.
Die Schritte in dieser Anleitung erfordern außerdem, dass Apache installiert ist. Wenn Sie dies noch nicht getan haben, können Sie es mit den folgenden Befehlen installieren. Sie können unserer Anleitung LAMP-Stack-Einrichtung – Linux Apache MySQL PHP-Anleitung für eine detailliertere Einrichtungsanleitung folgen.
|
1 2 |
sudo apt update sudo apt install apache2 |
Sie sollten kostenlose oder kostenpflichtige Domainnamen bei einem Domain-Registrar Ihrer Wahl registriert haben. Stellen Sie sicher, dass die Domains durch Konfiguration der DNS-Einträge auf Ihren Server verweisen. Sie können jedoch weiterhin unsere Konfigurationen verwenden, um den Schritten in dieser Anleitung zu folgen. Wir werden für diese Anleitung example.dev und mydomain.com verwenden. Es steht Ihnen frei, diese durch Ihre eigenen zu ersetzen. Wenn Sie sich für die Verwendung der Test-Domains entscheiden, müssen die Hosts-Dateien auf Apache bearbeitet werden, um die Domains zu verwalten. Wir werden später in dieser Anleitung darauf eingehen, wie das geht.
Schritt 1 – Einrichten der Website-Verzeichnisse
Dies sind die Verzeichnisse, die die Daten der Website enthalten, auf die Ihre Website-Besucher zugreifen werden. Das über das Internet zugängliche Document-Root-Verzeichnis von Apache befindet sich normalerweise in /var/www. Hier erstellen wir die Verzeichnisse für die einzelnen Domains, die wir hosten möchten. In jedem der Verzeichnisse fügen wir ein public_html-Verzeichnis hinzu, das die eigentlichen Website-Dateien enthält. Der virtuelle Host verweist auf das Verzeichnis public_html. Dies bietet Ihnen Flexibilität, da Sie wichtige Website-Dateien außerhalb von public_html aufbewahren und nur öffentliche Dateien darin ablegen können.
Geben Sie als Nächstes die folgenden Befehle ein, um die Verzeichnisse zu erstellen. Denken Sie bei nachfolgenden Einrichtungen immer daran, die Test-Domains durch Ihre tatsächlichen Domains zu ersetzen:
|
1 2 |
sudo mkdir -p /var/www/example.dev/public_html sudo mkdir -p /var/www/mydomain.com/public_html |
Schritt 2 – Lese- und Schreibrechte ändern
Die vorherigen Befehle haben die Verzeichnisstruktur erstellt, aber die Eigentumsrechte beim Root-Benutzer belassen. Wir möchten, dass unser Nicht-Root-Benutzer volle Lese- und Schreibrechte für die Verzeichnisse hat. Wir möchten auch, dass das allgemeine Web Leserechte hat.
Ändern Sie zunächst die Eigentumsrechte auf den Nicht-Root-Benutzer, indem Sie den folgenden Befehl eingeben:
|
1 2 |
sudo chown -R $USER:$USER /var/www/example.dev/public_html sudo chown -R $USER:$USER /var/www/mydomain.com/public_html |
Die Variable $USER übernimmt die Anmeldedaten des aktuell angemeldeten Benutzers. Der reguläre Benutzer besitzt nun das Verzeichnis public_html. Als Nächstes müssen Sie dem allgemeinen Web Leserechte erteilen. Der folgende Befehl erteilt die Berechtigung für alle Dateien im Verzeichnis, um sicherzustellen, dass die Webseiten korrekt bereitgestellt werden:
|
1 |
sudo chmod -R 755 /var/www |
Durch das Ausführen der vorherigen drei Befehle kann Ihre Website nun Inhalte bereitstellen. Darüber hinaus kann Ihr Benutzer gleichermaßen Inhalte erstellen, die in den spezifischen Verzeichnissen bereitgestellt werden. Hier finden Sie weitere Informationen zu Ubuntu-Berechtigungen.
Schritt 3 – Erstellen von Demoseiten in den Verzeichnissen für jeden virtuellen Host
Nachdem die Verzeichnisstruktur steht, ist es an der Zeit, ein wenig zu skripten. Wir werden HTML und den Texteditor nano verwenden, um einige grundlegende Webseiten zu erstellen. Geben Sie den folgenden Befehl ein, um nano zu öffnen und eine index.html-Datei im Verzeichnis für die erste Domain zu erstellen:
|
1 |
vim /var/www/example.dev/public_html/index.html |
Fügen Sie im Editor den folgenden Beispielcode ein, der angezeigt wird, wenn wir auf die Domain zugreifen:
|
1 2 3 4 5 6 7 8 |
<html> <head> <title>Willkommen bei Example.dev!</title> </head> <body> <h1>Erfolg! Der example.dev virtuelle Host ist aktiv!</h1> </body> </html> |
Sobald Sie die obigen Zeilen eingefügt haben, drücken Sie “!wq”, um die Datei zu speichern und zu schließen.
Erstellen Sie die index.html-Seite für die zweite Domain mit dem nano-Editor, indem Sie den folgenden Befehl eingeben:
|
1 |
vim /var/www/mydomain.com/public_html/index.html |
Fügen Sie dann im Editor den folgenden HTML-Code ein, speichern und schließen Sie ihn:
|
1 2 3 4 5 6 7 8 |
<html> <head> <title>Willkommen bei Mydomain.com!</title> </head> <body> <h1>Erfolg! Der mydomain.com virtuelle Host ist aktiv!</h1> </body> </html> |
Jetzt haben Sie die Seiten, um die beiden virtuellen Hosts zu testen, die wir im nächsten Schritt erstellen werden.
Schritt 4 – Erstellen von virtuellen Host-Dateien für die Domain-Namen
Virtuelle Host-Dateien enthalten Konfigurationen für jeden virtuellen Host. Sie definieren, wie ein Domain-Name bereitgestellt wird. Eine Neuinstallation von Apache enthält eine Standard-virtuelle-Host-Datei namens 000-default.conf, die wir verwenden und an unsere Domains anpassen können. Wie Sie sehen können, endet sie mit der Erweiterung .conf, was Ubuntu für Konfigurationsdateien erwartet.
Apache-Konfigurationsdateien befinden sich im Verzeichnis /etc/apache2/sites-available. Dort werden wir unsere virtuellen Host-Dateien speichern. Wir können die Standard-conf-Datei kopieren und bei Bedarf bearbeiten.
-
Erstellen Sie die erste virtuelle Host-Datei für die Domain example.dev
Geben Sie den folgenden Befehl ein, um example.dev.conf durch Kopieren der Standard-conf-Datei zu erstellen:
|
1 |
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.dev.conf |
Öffnen Sie als Nächstes die erstellte Datei mit dem Nano-Editor mit Sudo-Rechten unter Verwendung des folgenden Befehls:
|
1 |
sudo nano /etc/apache2/sites-available/example.dev.conf |
Die Standard-Konfigurationsdatei sieht aus wie im folgenden Screenshot. Die Kommentare dienen zur Orientierung. Wir können sie entfernen und nur die saubere Datei mit den tatsächlichen Konfigurationszeilen belassen:

Sie müssen diese Datei für Ihren Domainnamen und den Verzeichnispfad anpassen, in dem Sie die Website-Dateien gespeichert haben. Darüber hinaus werden wir mehrere Direktiven in der Datei aktualisieren und hinzufügen. Sie enthält bereits eine ServerAdmin-Direktive, die die E-Mail-Adresse enthält, unter der der Serveradministrator E-Mails erhält. Sie verfügt außerdem über eine DocumentRoot-Direktive, die auf das Verzeichnis verweist, in dem Sie die Website-Dateien gespeichert haben.
Wir müssen zwei neue Direktiven hinzufügen: ServerName and ServerAlias. ServerName legt den Basis-Domainnamen fest. Hier tragen Sie Ihre Domain ein. ServerAlias definiert andere Namen, die Apache so abgleichen soll, als wären sie der Basis-Domainname. Dadurch können Sie Hosts wie www abgleichen.
Aktualisieren Sie die Datei so, dass sie wie unten dargestellt aussieht:
|
1 2 3 4 5 6 7 8 |
<VirtualHost *:80> ServerAdmin admin@example.dev ServerName example.dev ServerAlias www.example.dev DocumentRoot /var/www/example.dev/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
Aktualisieren Sie danach Ihre Domains und E-Mail-Adresse entsprechend. Wenn Sie fertig sind, drücken Sie STRG + O und EINGABE, um die Datei zu speichern. Um den Editor zu verlassen, drücken Sie STRG + X.
-
Erstellen Sie die erste virtuelle Host-Datei für die Domain mydomain.com
Wir können einfach den virtuellen Host für die erste Domain kopieren und ihn bei Bedarf für die zweite Domain aktualisieren. Verwenden Sie den folgenden Befehl, um die Datei zu kopieren:
|
1 |
sudo cp /etc/apache2/sites-available/example.dev.conf /etc/apache2/sites-available/mydomain.com.conf |
Öffnen Sie sie dann im Nano-Editor mit dem Befehl:
|
1 |
sudo nano /etc/apache2/sites-available/mydomain.com.conf |
Suchen Sie die Direktiven und aktualisieren Sie sie entsprechend, sodass die Datei wie unten dargestellt aussieht:
|
1 2 3 4 5 6 7 8 |
<VirtualHost *:80> ServerAdmin admin@mydomain.com ServerName mydomain.com ServerAlias www.mydomain.com DocumentRoot /var/www/mydomain.com/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
Wenn Sie fertig sind, speichern Sie die Datei und verlassen Sie den Editor.
Schritt 5 – Aktivieren der virtuellen Host-Dateien
In Schritt vier haben wir die virtuellen Host-Dateien erstellt. Sie sind jedoch erst funktionsfähig, wenn Sie sie aktivieren. Apache verfügt über ein Tool namens a2ensite, das wir verwenden werden, um die virtuellen Hosts zu aktivieren.
Geben Sie die folgenden zwei Befehle ein, um die virtuellen Hosts zu aktivieren:
|
1 2 |
sudo a2ensite example.dev.conf sudo a2ensite mydomain.com.conf |
Die Ausgabe der obigen Befehle sieht wie folgt aus:

Als Nächstes sollten Sie die Standard-Konfigurationsdatei deaktivieren. Wir verwenden das Apache-Tool a2dissite zum Deaktivieren von Websites. Geben Sie den folgenden Befehl ein:
|
1 |
sudo a2dissite 000-default.conf |
Wie aus der Ausgabe ersichtlich ist, müssen Sie Apache neu starten, damit die Konfigurationen übernommen werden. Verwenden Sie den folgenden Befehl:
|
1 |
sudo systemctl restart apache2 |
Überprüfen Sie anschließend den Status von Apache mit dem folgenden Befehl:
|
1 |
sudo systemctl status apache2 |
Die Ausgabe zeigt, dass Ihr Server läuft und in der Lage ist, die beiden Websites bereitzustellen.

Schritt 6 – Lokale Hosts mit Beispiel-Domains anpassen
Wenn Sie keine tatsächliche Domain registriert haben, sondern stattdessen Test-Domains verwenden, müssen Sie Ihre lokalen Host-Dateien aktualisieren. Sie müssen den Datenverkehr abfangen und auf Ihr Website-Verzeichnis leiten, wenn Sie zu einer der in den virtuellen Host-Dateien festgelegten Domains navigieren. Denken Sie daran, dass dies nur auf Ihrem lokalen Computer funktioniert. Wenn auf Ihrem lokalen Computer ein Windows-Betriebssystem läuft, dann folgen Sie den Anweisungen zum Einrichten von Hosts unter diesem Link.
Wenn Sie einen Mac oder Linux-Rechner verwenden, befindet sich die hosts-Datei im Verzeichnis /etc. Wir werden den Nano-Editor verwenden, um unsere Test-Domains zu öffnen und hinzuzufügen. Suchen Sie zuerst die IP-Adresse Ihres VPS, indem Sie den folgenden Befehl eingeben:
|
1 |
curl -4 icanhazip.com |
Geben Sie den folgenden Befehl ein, um die Datei zu öffnen und mit der IP-Adresse Ihres Servers zu aktualisieren:
|
1 |
sudo nano /etc/hosts |
|
1 2 3 4 |
127.0.0.1 localhost 127.0.1.1 ComputerName your_server_IP example.dev your_server_IP mydomain.com |
Speichern und schließen Sie dann die Datei. Wann immer Sie einen Domainnamen in Ihren Browser eingeben, wird zuerst die Host-Datei überprüft. Wenn der Domainname gefunden wird, wird der Datenverkehr an die angegebene IP-Adresse geleitet. Wenn er nicht gefunden wird, wird das DNS-System für die globale Weiterleitung verwendet. Für unsere Test-Domains wird der Datenverkehr an die angegebene IP-Adresse geleitet.
Schritt 7 – Testen Sie Ihre virtuellen Hosts
Nachdem die Domainnamen eingerichtet sind, können Sie testen, ob sie funktionieren, indem Sie sie im Browser/Terminal überprüfen:
|
1 |
curl http://example.dev |
Die Ausgabe sollte in etwa so aussehen:

|
1 |
http://mydomain.com |

Herzlichen Glückwunsch! Sie haben erfolgreich zwei Websites so konfiguriert, dass sie auf einem Server laufen.
Fazit
In dieser Anleitung haben Sie gelernt, wie Sie Ihren Apache-Server so konfigurieren, dass er mehr als eine Website bereitstellt. Wenn Sie weitere Websites hinzufügen möchten, können Sie dies tun, indem Sie den Schritten folgen und virtuelle Hosts einrichten. Apache kann so viele Domains verarbeiten, wie Sie möchten, solange Ihre Serverressourcen dies bewältigen können.
Viel Spaß beim Computing!
Kommentare
Noch keine Kommentare. Schreiben Sie den ersten.