So richten Sie virtuelle Apache-Hosts unter Ubuntu 16.04 ein

Einführung

Der Apache-Webserver ist die beliebteste Methode zum Bereitstellen von Webinhalten im Internet. Es macht mehr als die Hälfte aller aktiven Websites im Internet aus und ist äußerst leistungsfähig und flexibel.

Apache unterteilt seine Funktionen und Komponenten in einzelne Einheiten, die unabhängig voneinander angepasst und konfiguriert werden können. Die Grundeinheit, die eine einzelne Site oder Domäne beschreibt, wird alsvirtual host bezeichnet.

Mit diesen Bezeichnungen kann der Administrator einen Server zum Hosten mehrerer Domänen oder Sites von einer einzelnen Schnittstelle oder IP-Adresse mithilfe eines entsprechenden Mechanismus verwenden. Dies ist relevant für alle, die mehr als eine Site von einem einzelnen VPS aus hosten möchten.

Jede konfigurierte Domain leitet den Besucher zu einem bestimmten Verzeichnis mit den Informationen dieser Site, ohne dass angegeben wird, dass derselbe Server auch für andere Sites verantwortlich ist. Dieses Schema ist ohne Software-Limit erweiterbar, solange Ihr Server die Last bewältigen kann.

In diesem Handbuch werden wir Sie durch das Einrichten von virtuellen Apache-Hosts auf einem Ubuntu 16.04 VPS führen. Während dieses Vorgangs erfahren Sie, wie Sie unterschiedliche Inhalte für unterschiedliche Besucher bereitstellen, je nachdem, welche Domains sie anfordern.

Voraussetzungen

Bevor Sie mit diesem Lernprogramm beginnen, sollten Siecreate a non-root user wie in den Schritten 1 bis 4 hier beschrieben ausführen.

Sie müssen auch Apache installiert haben, um diese Schritte ausführen zu können. Wenn Sie dies noch nicht getan haben, können Sie Apache überapt-get auf Ihrem Server installieren:

sudo apt-get update
sudo apt-get install apache2

Nachdem diese Schritte abgeschlossen sind, können wir loslegen.

Für die Zwecke dieses Handbuchs erstellt unsere Konfiguration einen virtuellen Host fürexample.com und einen anderen fürtest.com. Auf diese wird im gesamten Handbuch verwiesen, Sie sollten jedoch Ihre eigenen Domänen oder Werte ersetzen, während Sie den Anweisungen folgen.

Folgen Sie diesem Link, umhow to set up your domain names with DigitalOcean zu lernen. Wenn innot Domänen zum Spielen verfügbar sind, können Sie Dummy-Werte verwenden.

Wir werden später zeigen, wie Sie Ihre lokale Hosts-Datei bearbeiten, um die Konfiguration zu testen, wenn Sie Dummy-Werte verwenden. Auf diese Weise können Sie Ihre Konfiguration von Ihrem Heimcomputer aus testen, obwohl Ihre Inhalte anderen Besuchern nicht über den Domainnamen zur Verfügung stehen.

[[Schritt 1 - Erstellen der Verzeichnisstruktur]] == Schritt 1 - Erstellen der Verzeichnisstruktur

Der erste Schritt, den wir unternehmen werden, ist die Erstellung einer Verzeichnisstruktur, die die Site-Daten enthält, die wir den Besuchern zur Verfügung stellen.

Unseredocument root (das Verzeichnis der obersten Ebene, in dem Apache nach Inhalten sucht, die bereitgestellt werden sollen) werden auf einzelne Verzeichnisse unter dem Verzeichnis/var/www festgelegt. Wir erstellen hier ein Verzeichnis für beide virtuellen Hosts, die wir erstellen möchten.

In jedem der Verzeichnisse vontheseerstellen wir einen Ordner vonpublic_html, der unsere tatsächlichen Dateien enthält. Dies gibt uns einige Flexibilität in unserem Hosting.

Für unsere Websites erstellen wir beispielsweise folgende Verzeichnisse:

sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html

Die roten Bereiche stellen die Domainnamen dar, die wir von unserem VPS bereitstellen möchten.

[[Schritt zwei - Gewähren von Berechtigungen]] == 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 regulärer Benutzer Dateien in unseren Webverzeichnissen ändern kann, können wir den Eigentümer folgendermaßen ändern:

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, bei dem Sie gerade angemeldet sind, wenn SieEnter drücken. Auf diese Weise besitzt unser regulärer Benutzer jetzt die Unterverzeichnissepublic_html, in denen wir unsere Inhalte speichern werden.

Wir sollten auch unsere Berechtigungen ein wenig ändern, um sicherzustellen, dass der Lesezugriff auf das allgemeine Webverzeichnis und alle darin enthaltenen Dateien und Ordner zulässig ist, damit die Seiten ordnungsgemäß bereitgestellt werden können:

sudo chmod -R 755 /var/www

Ihr Webserver sollte nun über die Berechtigungen verfügen, die er zum Bereitstellen von Inhalten benötigt, und Ihr Benutzer sollte in der Lage sein, Inhalte in den erforderlichen Ordnern zu erstellen.

[[Schritt drei - Erstellen von Demoseiten für jeden virtuellen Host]] == Schritt 3 - Erstellen von Demoseiten für jeden virtuellen Host

Wir haben unsere Verzeichnisstruktur eingerichtet. Lassen Sie uns einige Inhalte erstellen, die geliefert werden sollen.

Wir werden nur eine Demonstration durchführen, daher sind unsere Seiten sehr einfach. Wir erstellen nur eineindex.html-Seite für jede Site.

Beginnen wir mitexample.com. Wir können eineindex.html-Datei in unserem Editor öffnen, indem wir Folgendes eingeben:

nano /var/www/example.com/public_html/index.html

Erstellen Sie in dieser Datei ein einfaches HTML-Dokument, das die Site angibt, mit der es verbunden ist. Meine Datei sieht so aus:

/var/www/example.com/public_html/index.html


  
    Welcome to Example.com!
  
  
    

Success! The example.com virtual host is working!

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Wir können diese Datei kopieren, um sie als Grundlage für unsere zweite Site zu verwenden, indem wir Folgendes eingeben:

cp /var/www/example.com/public_html/index.html /var/www/test.com/public_html/index.html

Wir können dann 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


  
    Welcome to Test.com!
  
   

Success! The test.com virtual host is working!

Speichern und schließen Sie auch diese Datei. Sie haben jetzt die Seiten, die zum Testen der Konfiguration des virtuellen Hosts erforderlich sind.

[[Schritt 4 - Neue virtuelle Host-Dateien erstellen]] == Schritt 4 - Neue virtuelle Host-Dateien erstellen

Virtuelle Host-Dateien sind die Dateien, die die tatsächliche Konfiguration unserer virtuellen Hosts angeben und bestimmen, wie der Apache-Webserver auf verschiedene Domänenanforderungen reagiert.

Apache wird mit einer virtuellen Standardhostdatei namens000-default.conf geliefert, die wir als Ausgangspunkt verwenden können. Wir werden es kopieren, um eine virtuelle Hostdatei für jede unserer Domänen zu erstellen.

Wir beginnen mit einer Domain, konfigurieren sie, kopieren sie für unsere zweite Domain und nehmen dann die wenigen weiteren erforderlichen Anpassungen vor. Die Standard-Ubuntu-Konfiguration erfordert, dass jede virtuelle Hostdatei in.conf endet.

Erstellen Sie die erste virtuelle Hostdatei

Beginnen Sie, indem Sie die Datei für die erste Domain kopieren:

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-Rechten:

sudo nano /etc/apache2/sites-available/example.com.conf

Die Datei sieht ungefähr so ​​aus (ich habe die Kommentare hier entfernt, um die Annäherung an die Datei zu erleichtern):

/etc/apache2/sites-available/example.com.conf


    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

Wie Sie sehen, gibt es hier nicht viel. Wir werden die Elemente hier für unsere erste Domain anpassen und einige zusätzliche Anweisungen hinzufügen. Dieser virtuelle Hostabschnitt entspricht den Anforderungen vonany, die an Port 80, dem Standard-HTTP-Port, gestellt werden.

Zunächst müssen wir die AnweisungServerAdminin eine E-Mail ändern, über die der Site-Administrator E-Mails empfangen kann.

ServerAdmin [email protected]

Danach müssen wiradd zwei Direktiven. Das erste,ServerName genannt, legt die Basisdomäne fest, die für diese virtuelle Hostdefinition übereinstimmen soll. Dies wird höchstwahrscheinlich Ihre Domain sein. Der zweite,ServerAlias genannt, definiert weitere Namen, die übereinstimmen sollten, als ob sie der Basisname wären. Dies ist nützlich, um von Ihnen definierte Hosts wiewww abzugleichen:

ServerName example.com
ServerAlias www.example.com

Das Einzige, was wir für eine einfache virtuelle Hostdatei ändern müssen, ist der Speicherort des Dokumentenstamms für diese Domäne. Wir haben bereits das benötigte Verzeichnis erstellt, daher müssen wir nur die DirektiveDocumentRootändern, um das von uns erstellte Verzeichnis wiederzugeben:

DocumentRoot /var/www/example.com/public_html

Insgesamt sollte Ihre virtuelle Hostdatei folgendermaßen aussehen:

/etc/apache2/sites-available/example.com.conf


    ServerAdmin [email protected]
    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

Speichern und schließen Sie die Datei.

Kopieren Sie den ersten virtuellen Host und passen Sie ihn für die zweite Domain an

Nachdem wir unsere erste virtuelle Host-Datei erstellt haben, können wir unsere zweite erstellen, indem wir diese Datei kopieren und nach Bedarf anpassen.

Beginnen Sie mit dem Kopieren:

sudo cp /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-available/test.com.conf

Öffnen Sie die neue Datei mit Root-Rechten in Ihrem Editor:

sudo nano /etc/apache2/sites-available/test.com.conf

Sie müssen jetzt alle Informationen ändern, um auf Ihre zweite Domain zu verweisen. Wenn Sie fertig sind, könnte es ungefähr so ​​aussehen:

/etc/apache2/sites-available/test.com.conf


    ServerAdmin [email protected]
    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

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

[[Schritt 5 - Aktivieren der neuen virtuellen Hostdateien]] == Schritt 5 - Aktivieren Sie die neuen virtuellen Hostdateien

Nachdem wir unsere virtuellen Hostdateien erstellt haben, müssen wir sie aktivieren. Apache enthält einige Tools, mit denen wir dies tun können.

Wir können das Toola2ensiteverwenden, um jede unserer Websites wie folgt zu aktivieren:

sudo a2ensite example.com.conf
sudo a2ensite test.com.conf

Deaktivieren Sie als Nächstes die in000-default.conf definierte Standardwebsite:

sudo a2dissite 000-default.conf

Wenn Sie fertig sind, müssen Sie Apache neu starten, damit die folgenden Änderungen wirksam werden:

sudo systemctl restart apache2

In einer anderen Dokumentation sehen Sie möglicherweise auch ein Beispiel mit dem Befehlservice:

sudo service apache2 restart

Dieser Befehl funktioniert weiterhin, liefert jedoch möglicherweise nicht die Ausgabe, die Sie auf anderen Systemen gewohnt sind, da er jetzt ein Wrapper um diesystemctl von systemd ist.

[[Schritt 6 - Einrichten der lokalen Hosts-Datei - optional]] == Schritt 6 - Einrichten der lokalen Hosts-Datei (optional)

Wenn Sie zum Testen dieses Verfahrens keine tatsächlichen Domänennamen verwendet haben, die Sie besitzen, und stattdessen einige Beispieldomänen verwendet haben, können Sie zumindest die Funktionalität dieses Prozesses testen, indem Sie die Dateihostsauf Ihrem lokalen Computer vorübergehend ändern .

Dadurch werden alle Anforderungen für die von Ihnen konfigurierten Domänen abgefangen und an Ihren VPS-Server weitergeleitet, genau wie dies das DNS-System tun würde, wenn Sie registrierte Domänen verwenden würden. Dies funktioniert jedoch nur von Ihrem Computer aus und ist lediglich zu Testzwecken nützlich.

Stellen Sie sicher, dass Sie diese Schritte auf Ihrem lokalen Computer ausführen und nicht auf Ihrem VPS-Server. Sie müssen das Administrationskennwort des Computers kennen oder auf andere Weise Mitglied der Administrationsgruppe sein.

Wenn Sie sich auf einem Mac- oder Linux-Computer befinden, bearbeiten Sie Ihre lokale Datei mit Administratorrechten, indem Sie Folgendes eingeben:

sudo nano /etc/hosts

Wenn Sie sich auf einem Windows-Computer befinden, können Sie hierfind instructions on altering your hosts file eingeben.

Die Details, die Sie hinzufügen müssen, sind die öffentliche IP-Adresse Ihres VPS-Servers, gefolgt von der Domäne, die Sie verwenden möchten, um diesen VPS zu erreichen.

Für die Domänen, die ich in diesem Handbuch verwendet habe, kann ich unter der Annahme, dass meine VPS-IP-Adresse111.111.111.111 ist, die folgenden Zeilen am Ende meiner Hosts-Datei hinzufügen:

/etc/hosts

127.0.0.1   localhost
127.0.1.1   guest-desktop
111.111.111.111 example.com
111.111.111.111 test.com

Dadurch werden alle Anforderungen fürexample.com undtest.com auf unserem Computer weitergeleitet und um111.111.111.111 an unseren Server gesendet. Dies ist das, was wir wollen, wenn wir nicht die Eigentümer dieser Domains sind, um unsere virtuellen Hosts zu testen.

Speichern und schließen Sie die Datei.

[[Schritt sieben - Testen Sie Ihre Ergebnisse]] == Schritt Sieben - Testen Sie Ihre Ergebnisse

Nachdem Sie Ihre virtuellen Hosts konfiguriert haben, können Sie Ihr Setup einfach testen, indem Sie zu den Domänen wechseln, die Sie in Ihrem Webbrowser konfiguriert haben:

http://example.com

Sie sollten eine Seite sehen, die so aussieht:

Apache virt host example

Ebenso, wenn Sie Ihre zweite Seite besuchen können:

http://test.com

Sie sehen die Datei, die Sie für Ihre zweite Site erstellt haben:

Apache virt host test

Wenn beide Sites gut funktionieren, haben Sie die virtuellen Hosts vontwoerfolgreich auf demselben Server konfiguriert.

Wenn Sie die Hosts-Datei Ihres Heimcomputers angepasst haben, möchten Sie möglicherweise die Zeilen löschen, die Sie hinzugefügt haben, nachdem Sie überprüft haben, dass Ihre Konfiguration funktioniert. Dadurch wird verhindert, dass Ihre Hosts-Datei mit Einträgen gefüllt wird, die eigentlich nicht erforderlich sind.

Wenn Sie langfristig darauf zugreifen müssen, sollten Sie einen Domainnamen für jede Site, die Sie benötigen, undsetting it up to point to your VPS server erwerben.

Fazit

Wenn Sie mitgemacht haben, sollten Sie jetzt einen einzelnen Server haben, der zwei separate Domainnamen verwaltet. Sie können diesen Prozess erweitern, indem Sie die oben beschriebenen Schritte ausführen, um zusätzliche virtuelle Hosts zu erstellen.

Es gibt keine Softwarebeschränkung für die Anzahl der Domänennamen, die Apache verarbeiten kann. Sie können also so viele Domänennamen erstellen, wie Ihr Server verarbeiten kann.