Der Apache-Webserver ist eine beliebte Methode zur Bereitstellung von Websites im Internet. Ab 2019 wird er schätzungsweise 29 % aller aktiven Websites bereitstellen und bietet Entwicklern Robustheit und Flexibilität. Mit Apache kann ein Administrator einen Server einrichten, um mehrere Domänen oder Websites über eine einzige Schnittstelle oder IP zu hosten, indem er ein übereinstimmendes System verwendet.
Jede mit Apache konfigurierte Domäne oder individuelle Site – bekannt als „virtueller Host“ – leitet den Besucher zu einem bestimmten Verzeichnis, das die Informationen dieser Website enthält. Dies geschieht, ohne anzugeben, dass derselbe Server auch für andere Sites verantwortlich ist. Dieses Schema ist ohne jegliche Softwarebeschränkung erweiterbar, solange Ihr Server die Last bewältigen kann. Die Basiseinheit, die eine individuelle Website oder Domäne beschreibt, wird als virtueller Host
bezeichnet.
In diesem Leitfaden führen wir Sie durch die Einrichtung von virtuellen Apache-Hosts auf einem Ubuntu 18.04-Server. Bei diesem Prozess lernen Sie, wie Sie je nach Art der angeforderten Domäne verschiedenen Benutzern unterschiedlichen Inhalt bereitstellen können.
Bevor Sie mit diesem Tutorial beginnen, sollten Sie einen Benutzer ohne Rootberechtigung erstellen.
Sie müssen auch Apache installiert haben, um diese Schritte durcharbeiten zu können. Falls Sie dies noch nicht getan haben, können Sie Apache mit der Paketmethode apt
auf Ihrem Server installieren lassen.
- sudo apt update
- sudo apt install apache2
Wenn Sie genauere Anweisungen sowie die Einrichtung einer Firewall wünschen, lesen Sie bitte unseren Leitfaden So installieren Sie den Apache-Webserver unter Ubuntu 18.04.
Für die Zwecke dieses Leitfadens wird unsere Konfiguration einen virtuellen Host für example.com
und einen weiteren für test.com
erstellen. Auf diese wird im gesamten Leitfaden Bezug genommen, doch sollten Sie Ihre eigenen Domänen oder Werte einsetzen, während Sie dem Leitfaden folgen.
Wenn Sie DigitalOcean verwenden, können Sie anhand der Produktdokumentation So fügen Sie Domänen hinzu lernen, wie Sie Domänen einrichten. Für andere Anbieter lesen Sie die entsprechende Produktdokumentation. Wenn Sie zu diesem Zeitpunkt keine Domäne zur Verfügung haben, können Sie Testwerte verwenden.
Wir zeigen Ihnen später, wie Sie Ihre lokale hosts-Datei zum Testen der Konfiguration bearbeiten können, wenn Sie Testwerte verwenden. Auf diese Weise können Sie Ihre Konfiguration von Ihrem Heimcomputer validieren, auch wenn Ihr Inhalt über den Domänennamen nicht für andere Besucher verfügbar ist.
Im ersten Schritt werden wir eine Verzeichnisstruktur erstellen, die die Daten der Website enthält, die wir den Besuchern zur Verfügung stellen werden.
Unser Dokumentenstamm
(das Verzeichnis auf oberster Ebene, in dem Apache nach den bereitzustellenden Inhalten sucht) wird unter dem Verzeichnis /var/www
auf einzelne Verzeichnisse gesetzt. Wir erstellen hier ein Verzeichnis für beide virtuellen Hosts, die wir erstellen wollen.
In jedem dieser Verzeichnisse erstellen wir einen Ordner public_html
, der unsere eigentlichen Dateien enthält. Dies gibt uns eine gewisse Flexibilität bei unserem Hosting.
Zum Beispiel werden wir für unsere Sites unsere Verzeichnisse wie folgt erstellen. Wenn Sie tatsächliche Domänen oder alternative Werte verwenden, tauschen Sie den hervorgehobenen Text gegen diese aus.
- sudo mkdir -p /var/www/example.com/public_html
- sudo mkdir -p /var/www/test.com/public_html
Die rot markierten Abschnitte stellen die Domänennamen dar, die wir von unserem VPS aus bereitstellen möchten.
Jetzt haben wir die Verzeichnisstruktur für unsere Dateien, aber sie gehören unserem Root-Benutzer. Wenn wir möchten, dass unser normaler Benutzer in der Lage ist, Dateien in unseren Webverzeichnissen zu ändern, können wir die Eigentümerschaft ändern, indem wir Folgendes tun:
- sudo chown -R $USER:$USER /var/www/example.com/public_html
- sudo chown -R $USER:$USER /var/www/test.com/public_html
Die Variable $USER
nimmt den Wert des Benutzers an, als der Sie gerade angemeldet sind, wenn Sie die EINGABETASTE
drücken. Dadurch besitzt unser normaler Benutzer nun die Unterverzeichnisse public_html
, in denen wir unsere Inhalte speichern werden.
Wir sollten auch unsere Berechtigungen ändern, um sicherzustellen, dass der Lesezugriff auf das allgemeine Webverzeichnis und alle darin enthaltenen Dateien und Ordner erlaubt ist, damit die Seiten korrekt bereitgestellt werden können:
- sudo chmod -R 755 /var/www
Ihr Webserver sollte nun über die erforderlichen Berechtigungen verfügen, um Inhalte bereitzustellen, und Ihr Benutzer sollte in der Lage sein, Inhalte in den erforderlichen Ordnern zu erstellen.
Wir haben nun unsere Verzeichnisstruktur eingerichtet. Lassen Sie uns einige Inhalte erstellen, die wir bereitstellen können.
Zu Demonstrationszwecken werden wir für jede Website eine Seite index.html
erstellen.
Beginnen wir mit example.com
. Wir können eine Datei index.html
in einem Texteditor öffnen. In diesem Fall verwenden wir nano:
- nano /var/www/example.com/public_html/index.html
Erstellen Sie innerhalb dieser Datei ein HTML-Dokument, das die Website angibt, mit der sie verbunden ist, wie folgt:
<html>
<head>
<title>Welcome to Example.com!</title>
</head>
<body>
<h1>Success! The example.com virtual host is working!</h1>
</body>
</html>
Speichern und schließen Sie die Datei (in nano drücken Sie STRG
+ X
, dann Y
und dann die EINGABETASTE
) wenn Sie fertig sind.
Wir können diese Datei kopieren und als Grundlage für unsere zweite Website verwenden, indem wir Folgendes eingeben:
- cp /var/www/example.com/public_html/index.html /var/www/test.com/public_html/index.html
Dann können wir die Datei öffnen und die relevanten Informationen ändern:
- nano /var/www/test.com/public_html/index.html
<html>
<head>
<title>Welcome to Test.com!</title>
</head>
<body> <h1>Success! The test.com virtual host is working!</h1>
</body>
</html>
Speichern und schließen Sie auch diese Datei. Sie verfügen nun über die erforderlichen Seiten zum Testen der Konfiguration des virtuellen Hosts.
Virtuelle Host-Dateien sind die Dateien, die die tatsächliche Konfiguration unserer virtuellen Hosts spezifizieren und bestimmen, wie der Apache-Webserver auf verschiedene Domänenanfragen reagieren wird.
In Apache ist eine virtuelle Standarddatei namens 000-default.conf
enthalten, die wir als Ausgangspunkt verwenden können. Wir werden sie kopieren, um eine virtuelle Host-Datei für jede unserer Domänen zu erstellen.
Wir beginnen mit einer Domäne, konfigurieren sie, kopieren sie für unsere zweite Domäne und nehmen dann die wenigen weiteren erforderlichen Anpassungen vor. Die Standardkonfiguration von Ubuntu erfordert, dass jede virtuelle Host-Datei auf .conf
endet.
Dazu kopieren Sie die Datei für die erste Domäne:
- sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf
Öffnen Sie die neue Datei in Ihrem Editor mit Root-Berechtigungen:
- sudo nano /etc/apache2/sites-available/example.com.conf
Ohne Kommentare wird die Datei in etwa wie folgt aussehen:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Innerhalb dieser Datei werden wir Elemente für unsere erste Domäne anpassen und einige zusätzliche Anweisungen hinzufügen. Dieser virtuelle Host-Abschnitt entspricht allen Anfragen, die auf Port 80, dem standardmäßigen HTTP-Port, gestellt werden.
Zuerst müssen wir die Anweisung ServerAdmin
in eine E-Mail ändern, über die der Website-Administrator E-Mails empfangen kann.
ServerAdmin admin@example.com
Danach müssen wir zwei Anweisungen hinzufügen. Der erste namens ServerName
legt die Grunddomäne fest, die mit dieser Definition des virtuellen Hosts übereinstimmen sollte. Dies wird höchstwahrscheinlich Ihre Domäne sein. Die zweite namens ServerAlias
definiert weitere Namen, die übereinstimmen sollten, als wären sie der Basisname. Dies ist nützlich für die von Ihnen definierte Zuordnung von Hosts, wie beispielsweise www
:
ServerName example.com
ServerAlias www.example.com
Das einzige, was wir für unsere virtuelle Host-Datei ändern müssen, ist der Speicherort des Dokumentenstamms für diese Domäne. Wir haben das benötigte Verzeichnis bereits erstellt, also müssen wir nur die Anweisung DocumentRoot
so ändern, dass sie das von uns erstellte Verzeichnis widerspiegelt:
DocumentRoot /var/www/example.com/public_html
Nach Fertigstellung sollte unsere virtuelle Host-Datei wie folgt aussehen:
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Speichern und schließen Sie dann die Datei.
Jetzt haben wir unsere erste virtuelle Host-Datei eingerichtet und können dann unsere zweite Datei erstellen, indem wir diese Datei kopieren und je nach Bedarf anpassen.
Kopieren Sie zu diesem Zweck die Datei:
- sudo cp /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-available/test.com.conf
Öffnen Sie die neue Datei mit Rootberechtigungen in Ihrem Textbearbeitungsprogramm:
- sudo nano /etc/apache2/sites-available/test.com.conf
Jetzt müssen Sie alle Informationen so ändern, dass sie sich auf Ihre zweite Domäne beziehen. Wenn Sie fertig sind, sollte sie wie folgt aussehen:
<VirtualHost *:80>
ServerAdmin admin@test.com
ServerName test.com
ServerAlias www.test.com
DocumentRoot /var/www/test.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Wenn Sie fertig sind, speichern und schließen Sie die Datei.
Nachdem wir nun unsere virtuellen Host-Dateien erstellt haben, müssen wir sie aktivieren. Apache enthält einige Tools, mit denen wir dies tun können.
Wir verwenden das Tool a2ensite
, um jede unserer Sites zu aktivieren. Wenn Sie mehr über dieses Skript lesen möchten, können Sie die Dokumentation zu a2ensite
einsehen.
- sudo a2ensite example.com.conf
- sudo a2ensite test.com.conf
Deaktivieren Sie die unter 000-default.conf
definierte Standard-Site:
- sudo a2dissite 000-default.conf
Wenn Sie fertig sind, müssen Sie Apache neu starten, damit diese Änderungen wirksam werden, und systemctl status
verwenden, um den Erfolg des Neustarts zu verifizieren.
- sudo systemctl restart apache2
- sudo systemctl status apache2
-
-
Ihr Server sollte jetzt für zwei Websites eingerichtet sein.
Wenn Sie zum Testen dieses Verfahrens keine tatsächlichen Domänennamen, die ihnen gehören, verwendet haben, sondern stattdessen einige Beispieldomänen, können Sie zumindest die Funktionalität dieses Prozesses testen, indem Sie die Datei hosts
auf Ihrem lokalen Rechner vorübergehend ändern.
Dadurch werden alle Anfragen für die von Ihnen konfigurierten Domänen abgefangen und an Ihren VPS-Server verwiesen, so wie es das DNS-System tun würde, wenn Sie registrierte Domänen verwenden würden. Dies funktioniert jedoch nur von Ihrem lokalen Rechner aus und nur zu Testzwecken.
Stellen Sie sicher, dass Sie für diese Schritte auf Ihrem lokalen Rechner arbeiten und nicht auf Ihrem VPS-Server. Sie müssen das administrative Passwort des Rechners kennen oder anderweitig ein Mitglied der administrativen Gruppe sein.
Wenn Sie auf einem Mac- oder Linux-Rechner arbeiten, bearbeiten Sie Ihre lokale Datei mit administrativen Berechtigungen, indem Sie Folgendes eingeben:
- sudo nano /etc/hosts
Wenn Sie auf einem Windows-Rechner arbeiten, finden Sie hier Anweisungen zur Änderung Ihrer Datei hosts.
Die Angaben, die Sie hinzufügen müssen, sind die öffentliche IP-Adresse Ihres Servers, gefolgt von der Domäne, mit der Sie diesen Server erreichen möchten.
Nach Verwenden der in diesem Leitfaden verwendeten Domänen und Ersetzen Ihrer Server-IP im Text your_server_IP
sollte Ihre Datei wie folgt aussehen:
127.0.0.1 localhost
127.0.1.1 guest-desktop
your_server_IP example.com
your_server_IP test.com
Speichern und schließen Sie die Datei.
Damit werden alle Anfragen, z. B. example.com
und test.com
, an unseren Rechner weitergeleitet und auf unseren Server übertragen. Genau das möchten wir, wenn wir nicht tatsächlich die Besitzer dieser Domänen sind, um unsere virtuellen Hosts zu testen.
Nach der Konfiguration Ihrer virtuellen Hosts können Sie Ihr Setup testen, indem Sie zu den Domänen gehen, die Sie in Ihrem Webbrowser konfiguriert haben.
http://example.com
Sie sollten eine Seite sehen, die so aussieht:
Sie können auch Ihre zweite Seite besuchen und die Datei sehen, die Sie für Ihre zweite Site erstellt haben.
http://test.com
Wenn beide Sites wie erwartet funktionieren, haben Sie erfolgreich zwei virtuelle Hosts auf ein und demselben Server konfiguriert.
Wenn Sie die Datei hosts Ihres Heimcomputers angepasst haben, möchten Sie die hinzugefügten Zeilen möglicherweise löschen, nachdem Sie die Funktionalität Ihrer Konfiguration überprüft haben. Dadurch wird verhindert, dass Ihre Datei hosts mit Einträgen gefüllt wird, die nicht mehr erforderlich sind.
Wenn Sie langfristig auf diese Datei zugreifen müssen, sollten Sie in Erwägung ziehen, für jede benötigte Website einen Domänennamen hinzuzufügen und sie so einzurichten, dass sie auf Ihren Server verweist.
Wenn Sie diesem Beispiel gefolgt sind, sollten Sie jetzt einen einzigen Server haben, der zwei separate Domänennamen verwaltet. Sie können diesen Prozess erweitern, indem Sie die oben beschriebenen Schritte befolgen, um zusätzliche virtuelle Hosts zu erstellen.
Es gibt keine Softwareeinschränkung für die Anzahl der Domänennamen, die Apache verarbeiten kann, also zögern Sie nicht, so viele zu erstellen, wie Ihr Server verarbeiten kann.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!