Zurück zum Blog

Einrichten von Apache Virtual Hosts auf Ubuntu 20.04

Einrichten von Apache Virtual Hosts auf Ubuntu 20.04

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.

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:

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:

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:

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:

Fügen Sie im Editor den folgenden Beispielcode ein, der angezeigt wird, wenn wir auf die Domain zugreifen:

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:

Fügen Sie dann im Editor den folgenden HTML-Code ein, speichern und schließen Sie ihn:

 

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:

Öffnen Sie als Nächstes die erstellte Datei mit dem Nano-Editor mit Sudo-Rechten unter Verwendung des folgenden Befehls:

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:

default configuration

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:

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:

Öffnen Sie sie dann im Nano-Editor mit dem Befehl:

Suchen Sie die Direktiven und aktualisieren Sie sie entsprechend, sodass die Datei wie unten dargestellt aussieht:

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:

Die Ausgabe der obigen Befehle sieht wie folgt aus:

Apache еnable configuration

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:

Wie aus der Ausgabe ersichtlich ist, müssen Sie Apache neu starten, damit die Konfigurationen übernommen werden. Verwenden Sie den folgenden Befehl:

Überprüfen Sie anschließend den Status von Apache mit dem folgenden Befehl:

Die Ausgabe zeigt, dass Ihr Server läuft und in der Lage ist, die beiden Websites bereitzustellen.

Apache 2 status

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:

Geben Sie den folgenden Befehl ein, um die Datei zu öffnen und mit der IP-Adresse Ihres Servers zu aktualisieren:

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:

Die Ausgabe sollte in etwa so aussehen:
curl example.dev

Apache curl 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!

author

Akshay Nagpal

Autor · CloudSigma

Preslav Dobrev ist ein kreativer Designer bei CloudSigma und konzentriert sich auf eine konsistente Unternehmensidentität durch traditionelle und innovative Marketingkanäle. Er versteht es meisterhaft, künstlerische Vision mit strategischem Marketing zu verbinden, um wirkungsvolle Markengeschichten zu schaffen.

Kommentare

Noch keine Kommentare. Schreiben Sie den ersten.