Im nächsten Artikel werden wir uns Apache Virtual Hosts ansehen. Zunächst muss dies erklärt werden Ein virtueller Host ist eine Apache-Konfigurationsanweisung, mit der wir mehr als eine Website auf einem einzelnen Server ausführen können. Die Tatsache, dass sie auf demselben physischen Server ausgeführt werden, ist für den Endbenutzer nicht offensichtlich.
Mit Virtual Hosts können wir das Stammverzeichnis der Site (das Verzeichnis, das die Website-Dateien enthält) angeben, eine separate Sicherheitsrichtlinie für jede Site erstellen, verschiedene SSL-Zertifikate verwenden und vieles mehr.
In den folgenden Zeilen werden wir sehen So konfigurieren Sie Apache Virtual Hosts unter Ubuntu 20.04und dafür müssen wir die folgenden Anforderungen erfüllen, bevor wir fortfahren können; ein oder mehrere Domainnamen, die auf die IP Ihres öffentlichen Servers verweisen, und ein unter Ubuntu installierter Apache.
Erstellen Sie die Verzeichnisstruktur
Das Dokumentstammverzeichnis ist das Verzeichnis, in dem Website-Dateien für einen Domainnamen gespeichert und als Antwort auf Anforderungen bereitgestellt werden. Wir können die Wurzel an dem Ort finden, der uns interessiert. Jede Domain wird auf der gehostet Apache-Server wird sein Dokumentstamm auf gesetzt / var / www / domain-name / public_html.
Lassen Sie die Erstellen Sie zunächst das Stammverzeichnis für die beiden Domänen was ich in diesem Beispiel verwenden werde:
sudo mkdir -p /var/www/dominio1.com/public_html sudo mkdir -p /var/www/dominio2.com/public_html
auch Wir werden eine Datei erstellen index.html innerhalb des Dokumentenstammverzeichnisses jeder Domäne. Dies wird angezeigt, wenn wir die Domain über den Browser besuchen:
sudo vim /var/www/dominio1.com/public_html/index.html
In die Datei werden wir den folgenden Inhalt einfügen:
<!DOCTYPE html> <html lang="es"> <head> <meta charset="utf-8">dominio1</title> </head> <body> <h1>Home del dominio1</h1> </body> </html>
Für die zweite Domain bearbeiten wir die Datei index.html und fügen sie hinzu den folgenden Inhalt:
sudo vim /var/www/dominio2.com/public_html/index.html
<!DOCTYPE html> <html lang="es"> <head> <meta charset="utf-8">dominio2</title> </head> <body> <h1>Home del dominio2</h1> </body> </html>
Da die oben genannten Befehle mit sudo ausgeführt werden, gehören die neu erstellten Dateien und Verzeichnisse root. Um Berechtigungsprobleme zu vermeiden, Wir werden den Besitz des Stammverzeichnisses der Domänen und aller Dateien in diesen Verzeichnissen auf den Apache-Benutzer (www-data) ändern.:
sudo chown -R www-data: /var/www/dominio1.com sudo chown -R www-data: /var/www/dominio2.com
Erstellen Sie virtuelle Hosts
Auf Ubuntu-Systemen Die Konfigurationsdateien für virtuelle Hosts für Apache befinden sich im Verzeichnis / etc / apache2 / Websites-verfügbar. Sie können aktiviert werden, indem symbolische Links zum Verzeichnis erstellt werden / etc / apache2 / sites-enabled, die Apache beim Start liest.
Wir können die Konfigurationsdateien beliebig benennen. Aber Am besten verwenden Sie den Domänennamen als Namen der Konfigurationsdatei des virtuellen Hosts. Jetzt öffnen wir unseren bevorzugten Texteditor und erstellen die grundlegenden Konfigurationsdateien. Im Beispiel zeige ich nur den Code für domain1:
sudo vim /etc/apache2/sites-available/dominio1.com.conf
Im Inneren werden wir so etwas wie das Folgende hinzufügen, aber Für Domain2 müssen wir Domain1 im folgenden Code in Domain2 ändern:
<VirtualHost *:80> ServerName dominio1.com ServerAlias www.dominio1.com ServerAdmin webmaster@dominio1.com DocumentRoot /var/www/dominio1.com/public_html <Directory /var/www/dominio1.com/public_html> Options -Indexes +FollowSymLinks AllowOverride All </Directory> ErrorLog ${APACHE_LOG_DIR}/dominio1.com-error.log CustomLog ${APACHE_LOG_DIR}/dominio1.com-access.log combined </VirtualHost>
- Server → Sie geben die Domäne an, die dieser Konfiguration des virtuellen Hosts entsprechen soll. Osten sollte der Domainname sein.
- Serveralias → Alle die anderen Domänen oder Subdomänen, die für diesen virtuellen Host übereinstimmen sollten, wie das www.
- DocumentRoot → Hier ist gibt das Verzeichnis an, aus dem Apache die Dateien bereitstellt.
- Optionen → Diese Richtlinie Steuert, welche Serverfunktionen in einem bestimmten Verzeichnis verfügbar sind.
- Indizes → Vermeiden Sie Verzeichnislisten.
- FollowSymLinks → Wenn diese Option aktiviert ist, folgt Apache den symbolischen Links.
- AllowOverride → Sie werden angeben, was In der .htaccess-Datei deklarierte Anweisungen können Konfigurationsanweisungen überschreiben.
- Fehlerprotokoll, benutzerdefiniertes Protokoll → Hier geben Sie die an Speicherorte der Protokolldateien.
Sobald die Dateien gespeichert sind, werden wir sie aktivieren, um die neue virtuelle Hostdatei zu aktivieren Erstellen Sie eine symbolische Verknüpfung von der virtuellen Hostdatei zum Site-fähigen Verzeichnis. Wir werden dies mit dem Skript tun a2ensite:
sudo a2ensite dominio1.com
Die andere Option ist Erstellen Sie manuell einen symbolischen Link wie es im folgenden gezeigt wird:
sudo ln -s /etc/apache2/sites-available/dominio1.com.conf /etc/apache2/sites-enabled/
Sobald dies erledigt ist, können wir Testen Sie die Konfiguration auf Syntaxfehler mit:
sudo apachectl configtest
Wenn keine Fehler vorliegen, wird im Terminal ein Ergebnis wie das folgende angezeigt:
Wir machen weiter Neustart des Apache-Dienstes Damit die Änderungen wirksam werden:
sudo systemctl restart apache2
Um zu überprüfen, ob alles wie erwartet funktioniert, Wir werden die URL öffnen http://dominio1.com im Browser und wir sollten den Inhalt der index.html-Seite von domain1 sehen:
Mit virtuellen Hosts können wir mehrere Domänen auf einem einzigen Ubuntu-Server hosten. Wir können die in den vorherigen Zeilen beschriebenen Schritte wiederholen, um zusätzliche virtuelle Hosts für alle unsere Domänen zu erstellen.
Das Exponierte in diesem Artikel ist nur eine grundlegende Erklärung des virtuellen Hosts und seiner Konfiguration in Ubuntu. Es kann Weitere Informationen erhalten Sie unter Apache-Website.
Hallo, es hat mir sehr geholfen, virtuelle Hosts zu erstellen, aber beim Ausführen von apachectlconfest erhalte ich die folgende Fehlermeldung: „AH00558: apache2: Konnte den vollständig qualifizierten Domänennamen des Servers nicht zuverlässig ermitteln, wobei 127.0.1.1 verwendet wurde. Setzen Sie die Direktive „ServerName“ global, um diese Meldung zu unterdrücken
Syntax OK»
Ich weiß nicht, was falsch sein könnte