Ein virtueller Host ist eine Apache-Konfigurationsanweisung, mit der Sie mehr als eine Website auf einem einzigen Server ausführen können. 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.
Dieser Artikel beschreibt, wie Sie Apache Virtual Hosts unter Ubuntu 20.04 einrichten.
Voraussetzungen #
Stellen Sie sicher, dass Sie die folgenden Anforderungen erfüllt haben, bevor Sie mit der Anleitung fortfahren:
- Ein oder mehrere Domainnamen, die auf Ihre öffentliche Server-IP verweisen.
- Apache auf Ihrem Ubuntusystem installiert.
- Sie sind als Root oder Benutzer mit sudo-Berechtigungen angemeldet.
Erstellen der Verzeichnisstruktur #
Das Dokumentenstammverzeichnis ist das Verzeichnis, in dem die Website-Dateien für einen Domänennamen gespeichert und als Antwort auf Anfragen bereitgestellt werden. Sie können den Dokumentenstamm an einem beliebigen Ort festlegen, in diesem Beispiel verwenden wir die folgende Verzeichnisstruktur:
/var/www/
├── domain1.com
│ └── public_html
├── domain2.com
│ └── public_html
Bei jeder auf dem Server gehosteten Domain wird das Dokumentenstammverzeichnis auf /var/www/<domain_name>/public_html
gesetzt .
Erstellen Sie zunächst das Stammverzeichnis für die Domäne:
sudo mkdir -p /var/www/domain1.com/public_html
Außerdem erstellen wir eine index.html
Datei im Root-Verzeichnis der Domain-Dokumente, die angezeigt wird, wenn Sie die Domain in Ihrem Browser besuchen:
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Welcome to domain1.com</title>
</head>
<body>
<h1>Success! domain1.com home page!</h1>
</body>
</html>
Da die obigen Befehle als sudo-Benutzer ausgeführt werden, gehören die neu erstellten Dateien und Verzeichnisse root. Um Berechtigungsprobleme zu vermeiden, ändern Sie den Besitz des Domänendokument-Stammverzeichnisses und aller Dateien innerhalb des Verzeichnisses auf den Apache-Benutzer (www-data
) :
sudo chown -R www-data: /var/www/domain1.com
Erstellen eines virtuellen Hosts #
Auf Ubuntu-Systemen befinden sich die Konfigurationsdateien von Apache Virtual Hosts in /etc/apache2/sites-available
Verzeichnis. Sie können aktiviert werden, indem symbolische Links zu /etc/apache2/sites-enabled
erstellt werden Verzeichnis, das Apache während des Starts gelesen hat.
Öffnen Sie den Texteditor Ihrer Wahl und erstellen Sie die folgende grundlegende Konfigurationsdatei für den virtuellen Host:
/etc/apache2/sites-available/domain1.com.conf<VirtualHost *:80>
ServerName domain1.com
ServerAlias www.domain1.com
ServerAdmin [email protected]
DocumentRoot /var/www/domain1.com/public_html
<Directory /var/www/domain1.com/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/domain1.com-error.log
CustomLog ${APACHE_LOG_DIR}/domain1.com-access.log combined
</VirtualHost>
ServerName
:Die Domäne, die dieser Konfiguration des virtuellen Hosts entsprechen sollte. Dies sollte Ihr Domainname sein.ServerAlias
:Alle anderen Domains oder Subdomains, die zu diesem virtuellen Host passen sollen, wie z. B.www
Subdomain.DocumentRoot
:Das Verzeichnis, aus dem Apache die Domänendateien bereitstellt.Options
:Diese Direktive steuert, welche Serverfunktionen in einem bestimmten Verzeichnis verfügbar sind.-Indexes
:Verhindert Verzeichniseinträge.FollowSymLinks
:Wenn diese Option aktiviert ist, folgt Apache den symbolischen Links.
AllowOverride
:Gibt an, welche Direktiven in der.htaccess
deklariert sind Datei kann die Konfigurationsanweisungen überschreiben.ErrorLog
,CustomLog
:Gibt den Speicherort für Protokolldateien an.
Sie können die Konfigurationsdatei beliebig benennen, aber am besten verwenden Sie den Domänennamen als Namen für die Konfigurationsdatei des virtuellen Hosts.
Um die neue virtuelle Hostdatei zu aktivieren, verwenden Sie a2ensite
Hilfsskript, das einen symbolischen Link von der virtuellen Hostdatei zu sites-enabled
erstellt Verzeichnis:
sudo a2ensite domain1.com
Die andere Möglichkeit besteht darin, einen symbolischen Link wie unten gezeigt manuell zu erstellen:
sudo ln -s /etc/apache2/sites-available/domain1.com.conf /etc/apache2/sites-enabled/
Wenn Sie fertig sind, testen Sie die Konfiguration auf Syntaxfehler mit:
sudo apachectl configtest
Wenn keine Fehler vorliegen, sehen Sie die folgende Ausgabe:
Syntax OK
Starten Sie den Apache-Dienst neu, damit die Änderungen wirksam werden:
sudo systemctl restart apache2
Um schließlich zu überprüfen, ob alles wie erwartet funktioniert, öffnen Sie http://domain1.com
in Ihrem Browser, und Sie sehen den Inhalt der index.html
Seite: