Mit Apache Virtual Hosts können Sie mehr als eine Website auf einem einzigen Computer ausführen. Mit virtuellen Hosts können Sie das Site Document Root (das Verzeichnis mit den Website-Dateien) angeben, eine separate Sicherheitsrichtlinie für jede Site erstellen, verschiedene SSL-Zertifikate verwenden und vieles mehr.
In diesem Artikel wird erläutert, wie Sie Apache Virtual Hosts auf einem CentOS 8-Server einrichten.
Voraussetzungen #
Stellen Sie sicher, dass Sie die folgenden Anforderungen erfüllt haben, bevor Sie mit diesem Lernprogramm fortfahren:
- Domänenname, der auf Ihre öffentliche Server-IP verweist.
- Apache auf Ihrem CentOS-System installiert.
- Sie sind als Root oder Benutzer mit sudo-Berechtigungen angemeldet.
Verzeichnisstruktur erstellen #
Das Dokumentenstammverzeichnis ist das Verzeichnis, in dem die Website-Dateien für einen Domänennamen gespeichert und als Antwort auf Anfragen bereitgestellt werden. Der Dokumentenstamm kann an einen beliebigen Ort gesetzt werden.
Wir werden die folgende Verzeichnisstruktur verwenden:
/var/www/
├── example.com
│ └── public_html
├── example2.com
│ └── public_html
├── example3.com
│ └── public_html
Für jede Domain, die auf dem Server gehostet wird, erstellen wir ein separates Verzeichnis in /var/www
. Innerhalb des Domainverzeichnisses erstellen wir einen public_html
Verzeichnis, das das Stammverzeichnis der Domänendokumente sein wird und die Dateien der Domänenwebsite speichern wird.
Beginnen wir damit, das Root-Verzeichnis für die Domain example.com
zu erstellen :
sudo mkdir -p /var/www/example.com/public_html
Erstellen Sie zu Testzwecken eine index.html
Datei im Dokumentstammverzeichnis der Domain:
sudo nano /var/www/example.com/public_html/index.html
Kopieren Sie den folgenden Code und fügen Sie ihn in die Datei ein:
/var/www/example.com/public_html/index.html<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Welcome to example.com</title>
</head>
<body>
<h1>Success! example.com home page!</h1>
</body>
</html>
Um Berechtigungsprobleme zu vermeiden, ändern Sie den Besitz des Dokumentenstammverzeichnisses der Domäne auf den Benutzer apache
:
sudo chown -R apache: /var/www/example.com
Virtuelle Hostdatei wird erstellt #
Es gibt verschiedene Möglichkeiten, einen virtuellen Host einzurichten. Sie können entweder alle Direktiven für virtuelle Hosts in einer einzigen Datei hinzufügen oder eine neue Konfigurationsdatei für jede Direktive für virtuelle Hosts erstellen. Im Allgemeinen sollten Sie den zweiten Ansatz bevorzugen, der wartungsfreundlicher ist.
Standardmäßig ist Apache so konfiguriert, dass alle Konfigurationsdateien geladen werden, die mit .conf
enden aus /etc/httpd/conf.d/
Verzeichnis.
Um einen virtuellen Host für eine bestimmte Website zu erstellen, öffnen Sie den Editor Ihrer Wahl und erstellen Sie die folgende grundlegende Konfigurationsdatei für den virtuellen Host:
/etc/httpd/conf.d/example.com.conf<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin [email protected]
DocumentRoot /var/www/example.com/public_html
<Directory /var/www/example.com/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/httpd/example.com-error.log
CustomLog /var/log/httpd/example.com-access.log combined
</VirtualHost>
ServerName
:Name der Domäne, für die die Konfiguration des virtuellen Hosts verwendet wird. Dies ist Ihr Domainname.ServerAlias
:Alle anderen Domains, für die die Konfiguration des virtuellen Hosts ebenfalls verwendet wird, z. B.www
Subdomain.DocumentRoot
:Das Verzeichnis, aus dem Apache die Domain-Dateien bereitstellt.Options
:Diese Direktive steuert die Serverfunktionen pro Verzeichnis.-Indexes
:Verhindert Verzeichniseinträge.FollowSymLinks
:Diese Option weist den Webserver an, den symbolischen Links zu folgen.
AllowOverride
:Gibt an, welche Direktiven in der.htaccess
deklariert sind Datei kann die Konfigurationsanweisungen überschreiben.ErrorLog
,CustomLog
:Der Speicherort der Protokolldateien.
Bearbeiten Sie die Datei nach Ihren Wünschen und speichern Sie sie.
Der Name der Konfigurationsdatei muss mit .conf
enden . Sie können die Konfigurationsdatei beliebig benennen. Am besten verwenden Sie den Domänennamen als Namen der Konfigurationsdatei des virtuellen Hosts.
Testen Sie die Syntax der Konfigurationsdatei mit:
sudo apachectl configtest
Wenn es keine Fehler gibt, sollte die Ausgabe so aussehen:
Syntax OK
Um einen neu erstellten virtuellen Host zu aktivieren, starten Sie den Apache-Dienst neu mit:
sudo systemctl restart httpd
Öffnen Sie http://example.com
um zu überprüfen, ob alles wie erwartet funktioniert.