So richten Sie virtuelle Apache-Hosts unter CentOS 7 ein

Einführung

Der Apache-Webserver ist die beliebteste Methode zum Bereitstellen von Webinhalten im Internet. Es bedient mehr als die Hälfte aller aktiven Websites im Internet 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 Basiseinheit, die eine einzelne Site oder Domain beschreibt, wird als * virtueller Host * bezeichnet. Virtuelle Hosts ermöglichen einem Server das Hosten mehrerer Domänen oder Schnittstellen mithilfe eines entsprechenden Systems. 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 den Datenverkehr verarbeiten kann, den alle Websites anziehen.

In diesem Handbuch erfahren Sie, wie Sie virtuelle Apache-Hosts auf einem CentOS 7 VPS einrichten. 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 Handbuch beginnen, müssen zunächst einige Schritte ausgeführt werden.

Sie benötigen Zugriff auf einen CentOS 7-Server mit einem Nicht-Root-Benutzer, der über die Berechtigung "+ sudo +" verfügt. Wenn Sie dies noch nicht konfiguriert haben, können Sie dies in der CentOS 7-Handbuch zur Ersteinrichtung des Servers erstellen Konto.

Sie müssen auch Apache installiert haben, um virtuelle Hosts dafür zu konfigurieren. Wenn Sie dies noch nicht getan haben, können Sie mit "+ yum +" Apache über die Standard-Software-Repositorys von CentOS installieren:

sudo yum -y install httpd

Aktivieren Sie als Nächstes Apache als CentOS-Dienst, damit es nach einem Neustart automatisch gestartet wird:

sudo systemctl enable httpd.service

Melden Sie sich nach Abschluss dieser Schritte über SSH als Benutzer ohne Rootberechtigung an und fahren Sie mit dem Lernprogramm fort.

  • Hinweis: * Bei der Beispielkonfiguration in diesem Handbuch wird ein virtueller Host für "" und ein anderer für "" erstellt. Auf diese wird im gesamten Handbuch verwiesen, Sie sollten jedoch Ihre eigenen Domänen oder Werte ersetzen, während Sie den Anweisungen folgen. Informationen zum Einrichten Ihrer Domain-Namen mit DigitalOcean finden Sie unter this link.

Wenn Sie keine echten Domains zum Spielen haben, zeigen wir Ihnen am Ende des Tutorials, wie Sie Ihre virtuelle Host-Konfiguration mit Dummy-Werten testen können.

Erster Schritt - Erstellen Sie die Verzeichnisstruktur

Zunächst müssen wir eine Verzeichnisstruktur erstellen, die die Site-Daten enthält, die den Besuchern zur Verfügung stehen.

Unser * document root * (das Hauptverzeichnis, in dem Apache nach Inhalten sucht, die geliefert werden sollen) wird auf einzelne Verzeichnisse im Verzeichnis + / var / www + gesetzt. Wir erstellen hier ein Verzeichnis für jeden virtuellen Host, den wir erstellen möchten.

In jedem dieser Verzeichnisse erstellen wir ein "+ public_html +" - Verzeichnis, das unsere eigentlichen Dateien enthält. Dies gibt uns einige Flexibilität in unserem Hosting.

Wir können diese Verzeichnisse mit dem Befehl "+ mkdir " erstellen (mit einem " -p +" - Flag, mit dem wir einen Ordner mit einem darin verschachtelten Ordner erstellen können):

sudo mkdir -p /var/www//public_html
sudo mkdir -p /var/www//public_html

Denken Sie daran, dass die Teile in die Domainnamen darstellen, die wir von unserem VPS bedienen möchten.

Zweiter Schritt - Berechtigungen erteilen

Wir haben jetzt die Verzeichnisstruktur für unsere Dateien, aber sie gehören unserem Benutzer "+ root ". Wenn unser regulärer Benutzer Dateien in Ihren Webverzeichnissen ändern kann, können wir den Eigentümer mit ` chown` ändern:

sudo chown -R $USER:$USER /var/www//public_html
sudo chown -R $USER:$USER /var/www//public_html

Die Variable "+ $ USER " nimmt den Wert des Benutzers an, bei dem Sie gerade angemeldet sind, als wenn Sie den Befehl senden. Auf diese Weise besitzt unser normaler Benutzer jetzt die Unterverzeichnisse " public_html +", in denen wir unseren Inhalt speichern.

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 entsprechenden Ordnern zu erstellen.

Dritter Schritt - Erstellen Sie Demoseiten für jeden virtuellen Host

Nachdem wir unsere Verzeichnisstruktur eingerichtet haben, erstellen wir einige Inhalte, die bereitgestellt werden sollen.

Da dies nur zu Demonstrations- und Testzwecken dient, sind unsere Seiten sehr einfach. Wir erstellen für jede Site, die diese bestimmte Domain identifiziert, eine Seite mit dem Verweis "+ index.html".

Beginnen wir mit "+". Wir können eine " index.html" -Datei in unserem Editor öffnen, indem wir Folgendes eingeben:

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

Erstellen Sie in dieser Datei ein einfaches HTML-Dokument, das die Site angibt, mit der die Seite verbunden ist. In diesem Handbuch sieht die Datei für unsere erste Domain folgendermaßen aus:

<html>
 <head>
   <title>Welcome to !</title>
 </head>
 <body>
   <h1>Success! The  virtual host is working!</h1>
 </body>
</html>

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

Wir können diese Datei kopieren, um sie als Vorlage für die + index.html + unserer zweiten Site zu verwenden, indem wir Folgendes eingeben:

cp /var/www//public_html/index.html /var/www//public_html/index.html

Öffnen wir nun diese Datei und ändern die relevanten Informationen:

nano /var/www//public_html/index.html
<html>
 <head>
   <title>Welcome to !</title>
 </head>
 <body>
   <h1>Success! The  virtual host is working!</h1>
 </body>
</html>

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

Vierter Schritt - Neue virtuelle Hostdateien erstellen

Virtuelle Hostdateien legen die Konfiguration unserer separaten Sites fest und bestimmen, wie der Apache-Webserver auf verschiedene Domänenanforderungen reagiert.

Zunächst müssen wir das Verzeichnis einrichten, in dem unsere virtuellen Hosts gespeichert werden, sowie das Verzeichnis, das Apache mitteilt, dass ein virtueller Host für Besucher bereit ist. Das Verzeichnis "+ sites-available " speichert alle virtuellen Hostdateien, während das Verzeichnis " sites-enabled +" symbolische Links zu virtuellen Hosts enthält, die veröffentlicht werden sollen. Wir können beide Verzeichnisse erstellen, indem wir Folgendes eingeben:

sudo mkdir /etc/httpd/sites-available
sudo mkdir /etc/httpd/sites-enabled
  • Hinweis: * Dieses Verzeichnis-Layout wurde von Debian-Mitwirkenden eingeführt, aber wir fügen es hier ein, um die Flexibilität bei der Verwaltung unserer virtuellen Hosts zu erhöhen (da es einfacher ist, virtuelle Hosts auf diese Weise vorübergehend zu aktivieren und zu deaktivieren).

Als nächstes sollten wir Apache anweisen, nach virtuellen Hosts im Verzeichnis + sites-enabled + zu suchen. Zu diesem Zweck bearbeiten wir die Hauptkonfigurationsdatei von Apache und fügen eine Zeile hinzu, in der ein optionales Verzeichnis für zusätzliche Konfigurationsdateien deklariert wird:

sudo nano /etc/httpd/conf/httpd.conf

Fügen Sie diese Zeile am Ende der Datei hinzu:

IncludeOptional sites-enabled/*.conf

Speichern und schließen Sie die Datei, wenn Sie diese Zeile hinzugefügt haben. Jetzt können wir unsere erste virtuelle Hostdatei erstellen.

Erstellen Sie die erste virtuelle Hostdatei

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

sudo nano /etc/httpd/sites-available/.conf
  • Hinweis: * Aufgrund der von uns beschriebenen Konfigurationen müssen alle virtuellen Host-Dateien must mit + .conf + enden.

Erstellen Sie zunächst ein Paar Tags, die den Inhalt als virtuellen Host kennzeichnen, der Port 80 (den Standard-HTTP-Port) überwacht:

<VirtualHost *:80>

</VirtualHost>

Als nächstes deklarieren wir den Hauptservernamen. Wir erstellen auch einen Server-Alias, auf den verwiesen werden soll, damit derselbe Inhalt angefordert und bereitgestellt wird:

<VirtualHost *:80>
   ServerName
   ServerAlias
</VirtualHost>

Abschließend verweisen wir auf das Stammverzeichnis unserer öffentlich zugänglichen Webdokumente. Wir teilen Apache auch mit, wo Fehler- und Anforderungsprotokolle für diese bestimmte Site gespeichert werden sollen:

<VirtualHost *:80>

   ServerName
   ServerAlias
   DocumentRoot /var/www//public_html
   ErrorLog /var/www//error.log
   CustomLog /var/www//requests.log combined
</VirtualHost>

Wenn Sie mit dem Ausschreiben dieser Elemente fertig sind, können Sie die Datei speichern und schließen.

Kopieren Sie den ersten virtuellen Host und passen Sie ihn für zusätzliche Domänen 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 mit + cp +:

sudo cp /etc/httpd/sites-available/.conf /etc/httpd/sites-available/.conf

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

sudo nano /etc/httpd/sites-available/.conf

Sie müssen jetzt alle Informationen ändern, um auf Ihre zweite Domain zu verweisen. Wenn Sie fertig sind, sieht Ihre zweite virtuelle Hostdatei möglicherweise folgendermaßen aus:

<VirtualHost *:80>
   ServerName
   DocumentRoot /var/www//public_html
   ServerAlias
   ErrorLog /var/www//error.log
   CustomLog /var/www//requests.log combined
</VirtualHost>

Wenn Sie diese Änderungen vorgenommen haben, können Sie die Datei speichern und schließen.

Fünfter Schritt - Aktivieren Sie die neuen virtuellen Hostdateien

Nachdem wir unsere virtuellen Hostdateien erstellt haben, müssen wir sie aktivieren, damit Apache sie den Besuchern bereitstellen kann. Dazu können wir für jeden virtuellen Host im Verzeichnis + sites-enabled + einen symbolischen Link erstellen:

sudo ln -s /etc/httpd/sites-available/.conf /etc/httpd/sites-enabled/.conf
sudo ln -s /etc/httpd/sites-available/.conf /etc/httpd/sites-enabled/.conf

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

sudo apachectl restart

Schritt 6 - Lokale Hosts-Datei einrichten (optional)

Wenn Sie Beispieldomänen anstelle von tatsächlichen Domänen zum Testen dieses Verfahrens verwendet haben, können Sie die Funktionalität Ihrer virtuellen Hosts dennoch testen, indem Sie die Datei "+ hosts +" auf 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.

  • Hinweis: * Stellen Sie sicher, dass Sie für diese Schritte auf Ihrem lokalen Computer und nicht auf Ihrem VPS-Server arbeiten. Sie benötigen Zugriff auf die Administratoranmeldeinformationen für diesen Computer.

Wenn Sie auf einem Mac- oder Linux-Computer arbeiten, bearbeiten Sie Ihre lokale "+ hosts +" - Datei mit Administratorrechten, indem Sie Folgendes eingeben:

sudo nano /etc/hosts

Wenn Sie auf einem Windows-Computer arbeiten, finden Sie Anweisungen zum Ändern der Hosts-Datei here.

Die Details, die Sie hinzufügen müssen, sind die öffentliche IP-Adresse Ihres VPS, gefolgt von der Domain, die Sie verwenden möchten, um diesen VPS zu erreichen:

127.0.0.1   localhost
127.0.1.1   guest-desktop

Dies leitet alle Anfragen nach "" und "" auf unseren lokalen Computer und sendet sie an unseren Server unter "++".

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

Sie sollten eine Seite sehen, die so aussieht:

image: https://assets.digitalocean.com/articles/apache_virt_hosts_centos7/virtual_host_success.png [Erfolg! Der virtuelle Host von example.com funktioniert!]

Wenn Sie Ihre anderen Domains besuchen, sehen Sie auch die Dateien, die Sie für sie erstellt haben.

Wenn alle von Ihnen konfigurierten Sites ordnungsgemäß funktionieren, haben Sie Ihre neuen virtuellen Apache-Hosts erfolgreich auf demselben CentOS-Server konfiguriert.

Wenn Sie die Datei "+ hosts +" 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.

Fazit

Zu diesem Zeitpunkt sollte nun ein einziger CentOS 7-Server vorhanden sein, der mehrere Standorte mit separaten Domänen verwaltet. Sie können diesen Prozess erweitern, indem Sie die oben beschriebenen Schritte ausführen, um später weitere 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.