Tutorial

So richten Sie Apache Virtual Hosts unter Ubuntu 18.04 ein

ApacheUbuntu 18.04

Einführung

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.

Voraussetzungen

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.

Schritt Eins – Erstellen der Verzeichnisstruktur

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.

Schritt Zwei – Erteilen von Berechtigungen

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.

Schritt Drei – Erstellen von Demo-Seiten für jeden virtuellen Host

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:

/var/www/example.com/public_html/index.html
<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
/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.

Schritt Vier – Erstellen neuer virtuelle Host-Dateien

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.

Die erste virtuelle Host-Datei erstellen

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:

/etc/apache2/sites-available/example.com.conf
<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:

/etc/apache2/sites-available/example.com.conf
<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.

Den ersten virtuellen Host kopieren und für die zweite Domäne anpassen

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:

/etc/apache2/sites-available/test.com.conf
<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.

Schritt Fünf – Aktivieren der neuen virtuellen Host-Dateien

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.

Schritt Sechs – Einrichten der Datei „Local Hosts“ (optional)

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:

/etc/hosts
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.

Schritt Sieben – Testen Ihrer Ergebnisse

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:

Beispiel für einen virtuellen Apache Host

Sie können auch Ihre zweite Seite besuchen und die Datei sehen, die Sie für Ihre zweite Site erstellt haben.

http://test.com

Test für einen virtuellen Apache Host

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.

Zusammenfassung

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.

0 Comments

Creative Commons License