Abb. 1: Apache IP basierter VirtualHost.
Namensbasierter virtueller Host: In namensbasiertem VirtualHost hat ein Apache-Server eine einzelne IP-Adresse und mehrere Domänennamen, die für jede Website konfiguriert sind. In einem DNS-Server wird jedem dieser Domänennamen die IP-Adresse des Apache-Servers zugewiesen. Je nachdem welchen Domainnamen der Client verwendet hat, gibt der Server unterschiedliche Websites zurück.
Abb. 2: Apache-Namensbasierter VirtualHost.
In diesem Artikel zeige ich Ihnen, wie Sie den auf dem Apache-Namen basierenden VirtualHost konfigurieren. Ich werde Ubuntu 18 verwenden.04 LTS für die Vorführung. Aber es sollte auf jeder modernen Linux-Distribution mit wenig bis gar keiner Änderung funktionieren. Also lasst uns anfangen.
Installieren des Apache 2-Webservers:
Der Apache 2-Webserver ist im offiziellen Paket-Repository von Ubuntu 18 verfügbar.04 LTS. Sie können es also einfach mit dem APT-Paketmanager installieren.
Aktualisieren Sie zunächst den Cache des APT-Paket-Repositorys mit dem folgenden Befehl:
$ sudo apt-Update
Führen Sie nun den folgenden Befehl aus, um den Apache 2-Webserver zu installieren:
$ sudo apt install Apache2
Jetzt drücken ja und drücke dann
Apache 2 Webserver sollte installiert sein.
DNS konfigurieren:
Jetzt müssen Sie den DNS-Server so konfigurieren, dass er die Domänennamen, die Sie für VirtualHost verwenden möchten, der IP-Adresse Ihres Apache-Servers zuordnet.
Die IP-Adresse Ihres Apache-Servers finden Sie mit folgendem Befehl:
$ ip a | egrep "inet"Wie Sie sehen, lautet die IP-Adresse in meinem Fall case 192.168.21.166. Bei dir wird es anders sein. Stellen Sie also sicher, dass Sie es von nun an durch Ihres ersetzen.
Wenn Sie lernen möchten, wie Sie Apache VirtualHost lokal konfigurieren, können Sie das /etc/hosts Datei für lokale DNS/Namensauflösung.
Um die lokale DNS-Auflösung zu konfigurieren, öffnen Sie das /etc/hosts Datei mit nano wie folgt:
$ sudo nano /etc/hosts
Fügen Sie nun die im Screenshot unten markierte Zeile zur Datei hinzu. Dann drücken
Jetzt sollte die lokale Namensauflösung funktionieren.
Verzeichnisstrukturen:
Ich möchte alle Website-Daten meines Apache VirtualHost in einem bestimmten Verzeichnis speichern /www. Hier möchte ich für jeden Benutzer ein Verzeichnis erstellen. Jeder Benutzer hat sein eigenes public_html/ und Protokolle/ auch Verzeichnis.
Zum Beispiel für 3 Benutzer Bob (Beispiel1.com), Alice (Beispiel2.com), linda (beispiel3.com), die Verzeichnisstruktur ist wie folgt:
/www- Beispiel 1.com/
- www/
- public_html/
- Index.html
- Protokolle/
- Beispiel2.com/
- www/
- public_html/
- Index.html
- Protokolle/
- Beispiel3.com/
- www/
- public_html/
- Index.html
- Protokolle/
Eine einfache Möglichkeit dazu besteht darin, ein Vorlagen- oder Skelettverzeichnis zu erstellen und die Verzeichnisstruktur dort abzulegen directory. Erstellen Sie dann jeden Benutzer mit diesem Skelettverzeichnis.
Kopieren Sie zuerst den Inhalt des Standard-Skelett-Verzeichnisses /etc/skel in ein anderes Verzeichnis /etc/skel-www wie folgt:
$ sudo cp -rv /etc/skel /etc/skel-www
Navigieren Sie nun wie folgt zum neuen Skelettverzeichnis:
$ cd /etc/skel-www
Erstellen Sie dann die gewünschte Verzeichnisstruktur innerhalb des Skelettverzeichnisses wie folgt:
$ sudo mkdir -p www/public_html,logs
Sie können auch einen Standard erstellen Index.html Datei in der public_html/ Verzeichnis, wenn du willst.
$echo"Es klappt
" | sudo tee www/public_html/index.html
Erstellen Sie nun die /www Verzeichnis mit folgendem Befehl:
$ sudo mkdir /www
Erstellen von Benutzern:
Jetzt können Sie den Benutzer erstellen Bob für www.Beispiel 1.com wie folgt:
$ sudo useradd --create-home --home-dir /www/example1.com --shell/bin/bash --gid www-data --skel /etc/skel-www bob
Erstellen Sie auf die gleiche Weise den Benutzer Alice für www.Beispiel2.com wie folgt:
$ sudo useradd --create-home --home-dir /www/example2.com --shell /bin/bash--gid www-data --skel /etc/skel-www alice
Erstellen Sie erneut den Benutzer linda für www.Beispiel3.com wie folgt:
$ sudo useradd --create-home --home-dir /www/example3.com --shell /bin/bash--gid www-data --skel /etc/skel-www linda
Hier habe ich die primäre Gruppe jedes Benutzers zugewiesen www-daten. Standardmäßig wird der Apache-Server als diese Gruppe ausgeführt. Wenn ich das nicht getan hätte, kann der Apache-Server nicht auf die Dateien im public_html/ Verzeichnis und erstellen Sie Protokolldateien im Protokolle/ Verzeichnis.
Konfigurieren von Apache VirtualHost:
Jetzt können Sie Apache VirtualHost für 3 Benutzer konfigurieren Bob (www.Beispiel 1.com), Alice (www.Beispiel2.com) und linda (www.Beispiel3.com).
Das standardmäßige Apache-Site-Konfigurationsverzeichnis auf Ubuntu ist /etc/apache2/sites-verfügbar.
Navigieren Sie nun zum Verzeichnis /etc/apache2/sites-verfügbar/ wie folgt.
$ cd /etc/apache2/sites-verfügbar/
Erstellen Sie zunächst eine neue Konfigurationsdatei für bob www.Beispiel 1.com.conf wie folgt:
$ sudo nano www.Beispiel 1.com.conf
Ein Texteditor sollte geöffnet werden.
Geben Sie nun die folgenden Zeilen ein.
Beispiel für Servername1.comServerAlias www.Beispiel 1.com
DocumentRoot "/www/example1.com/www/public_html"
Optionen -FollowSymLinks +MultiViews +Indizes
ZulassenAlles überschreiben
Fordern Sie alle gewährten
ErrorLog "/www/example1.com/www/logs/error.Log"
CustomLog "/www/example1.com/www/logs/access.log" kombiniert
HINWEIS: Ändern Sie die fett gedruckten Texte entsprechend Ihren Anforderungen.
Zum Schluss die Konfigurationsdatei www.Beispiel.com.conf sollte wie folgt aussehen. Drücken Sie
um einfach die Konfigurationsdatei zu kopieren für Bob (www.Beispiel 1.com.conf) und nehmen Sie die kleinen Änderungen vor, die erforderlich sind.
Kopieren Sie die Konfigurationsdatei von Bob zum Alice und linda mit folgenden Befehlen:
$ sudo cp -v www.Beispiel 1.com.conf www.Beispiel2.com.conf$ sudo cp -v www.Beispiel 1.com.conf www.Beispiel3.com.conf
Bearbeiten Sie nun die Konfigurationsdatei von Alice wie folgt:
$ sudo nano www.Beispiel2.com.conf
Ändern Sie nun alle Vorkommen von Beispiel 1 zu Beispiel2. Dann speichere die Datei.
Machen Sie dasselbe für linda.
$ sudo nano www.Beispiel3.com.conf
Alle Vorkommen von ändern Beispiel 1 zu Beispiel3 und speichere die Datei.
Aktivieren von VirtualHost-Konfigurationen:
Deaktivieren Sie nun die Apache-Standard-Website-Konfiguration wie folgt:
$ sudo a2dissite 000-default.conf
Aktivieren Sie nun die VirtualHost-Konfigurationen www.Beispiel 1.com.conf, www.Beispiel2.com.conf, www.Beispiel3.com.conf wie folgt:
$ sudo a2ensite www.Beispiel 1.com.conf www.Beispiel2.com.conf www.Beispiel3.com.conf
Starten Sie abschließend den Apache-Dienst wie folgt neu:
$ sudo systemctl Neustart von Apache2
Testen von VirtualHosts:
Versuchen Sie nun, auf die Websites www . zuzugreifen.Beispiel 1.com, www.Beispiel2.com, www.Beispiel3.com
Wie Sie sehen können, funktionieren alle diese Websites wie erwartet.
HINWEIS: Ich habe die Standardseite geändert Index.html für jede Website, damit es zu Testzwecken für jede Website ein wenig anders ist. Andernfalls können Sie nicht feststellen, ob die VirtualHost-Konfiguration funktioniert oder nicht.
So konfigurieren Sie den namensbasierten Apache VirtualHost unter Ubuntu 18.04 LTS. Danke, dass du diesen Artikel gelesen hast.