Abb. 1: Apache IP -basierte VirtualHost.
Name basierend virtualHost: In Namensbasis VirtualHost verfügt ein Apache -Server über eine einzelne IP -Adresse und mehrere Domänennamen, die für jede Website konfiguriert sind. In einem DNS -Server wird jeder dieser Domänennamen die IP -Adresse des Apache -Servers zugewiesen. Abhängig davon, wie Domänennamen der Client verwendet wird, gibt der Server verschiedene Websites zurück.
Abb. 2: Apache Name basiert VirtualHost.
In diesem Artikel werde ich Ihnen zeigen, wie Sie den auf Apache -Namen basierenden VirtualHost konfigurieren. Ich werde Ubuntu 18 benutzen.04 LTS für die Demonstration. Aber es sollte bei einer modernen Linux -Verteilung mit wenig bis gar keinem Veränderung funktionieren. Also lasst uns anfangen.
Installieren von Apache 2 Webserver:
Apache 2 Webserver ist im offiziellen Paketrepository von Ubuntu 18 verfügbar.04 LTS. Sie können es also problemlos mit dem APT -Paketmanager installieren.
Aktualisieren Sie zunächst den APT -Paket -Repository -Cache mit dem folgenden Befehl:
$ sudo APT Update
Führen Sie nun den folgenden Befehl aus, um den Apache 2 -Webserver zu installieren:
$ sudo apt installieren apache2
Jetzt drücken y und dann drücken Sie weitermachen.
Der Apache 2 -Webserver sollte installiert werden.
DNS konfigurieren:
Jetzt müssen Sie den DNS -Server so konfigurieren, dass die Domänennamen, die Sie für VirtualHost verwenden möchten, auf die IP -Adresse Ihres Apache -Servers verwenden möchten.
Sie finden die IP -Adresse Ihres Apache -Servers mit dem folgenden Befehl:
$ ip a | Egrep "inet"
Wie Sie sehen können, lautet die IP -Adresse in meinem Fall 192.168.21.166. Es wird für Sie anders sein. Stellen Sie also sicher, dass Sie es von nun an durch Ihre ersetzen.
Wenn Sie lernen möchten, wie Sie Apache VirtualHost lokal konfigurieren, können Sie die verwenden /etc/hosts Datei für lokale DNS/Name -Lösung.
Öffnen Sie die lokale DNS -Auflösung, um die lokale DNS -Auflösung zu konfigurieren, die /etc/hosts Datei mit Nano folgendermaßen:
$ sudo nano /etc /hosts
Fügen Sie nun die in dem Screenshot unten markierte Zeile zur Datei hinzu. Dann drücken + X gefolgt von y Und um die Datei zu speichern.
Jetzt sollte die lokale Namensauflösung funktionieren.
Verzeichnisstrukturen:
Ich möchte alle Website -Daten meines Apache VirtualHost in einem bestimmten Verzeichnis behalten /www. Hier möchte ich für jeden Benutzer ein Verzeichnis erstellen. Jeder Benutzer wird seinen eigenen haben public_html/ Und Protokolle/ Verzeichnis auch.
Zum Beispiel für 3 Benutzer Bob (Beispiel1.com), Alice (Beispiel2.com), Linda (Beispiel3.com), Die Verzeichnisstruktur lautet wie folgt:
/wwwEine einfache Möglichkeit, dies zu tun. Erstellen Sie dann jeden Benutzer mit diesem Skelettverzeichnis.
Kopieren Sie zunächst den Inhalt des Standard -Skelettverzeichnisses /etc/skel zu einem anderen Verzeichnis /etc/skel-www folgendermaßen:
$ sudo cp -rv /etc /skel /etc /skel -www
Navigieren Sie nun wie folgt zum neuen Skeleton -Verzeichnis:
$ CD /etc /skel-www
Erstellen Sie dann die gewünschte Verzeichnisstruktur innerhalb des Skeleton -Verzeichnisses 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 Sie wollen.
$ echo "Es klappt
"| sudo tee www/public_html/index.html
Erstellen Sie nun die /www Verzeichnis mit dem folgenden Befehl:
$ sudo mkdir /www
Benutzer erstellen:
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
Genauso erstellen Sie 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 die 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-data. Standardmäßig wird Apache Server als diese Gruppe ausgeführt. Wenn ich das nicht getan hätte, kann Apache Server nicht auf die Dateien in der Dateien zugreifen public_html/ Verzeichnis und erstellen Sie Protokolldateien in der Protokolle/ Verzeichnis.
Apache VirtualHost konfigurieren:
Jetzt sind Sie bereit, Apache VirtualHost für 3 Benutzer zu konfigurieren Bob (www.Beispiel 1.com), Alice (www.Beispiel2.com) und Linda (www.Beispiel3.com).
Das Standard -Verzeichnis Konfigurationsverzeichnis von APACHE Site auf Ubuntu ist /etc/apache2/seites-verfügbar.
Navigieren Sie nun zum Verzeichnis /etc/apache2/seites-verfügbare/ folgendermaßen.
$ cd/etc/apache2/seiten-verfügbare/
Erstellen Sie zunächst eine neue Konfigurationsdatei für Bob www.Beispiel 1.com.Conf folgendermaßen:
$ sudo nano www.Beispiel 1.com.Conf
Ein Texteditor sollte geöffnet werden.
Geben Sie nun die folgenden Zeilen ein.
Servername Beispiel1.com
Serveralias www.Beispiel 1.com
DocumentRoot "/www/Beispiel1.com/www/public_html "
Optionen -FollowsymLinks +Multiviews +Indizes
ALLESRIDE ALLES
Alle gewährt
ERROLLOG "/www/Beispiel1.com/www/logs/fehler.Protokoll"
CustomLog "/www/Beispiel1.com/www/Protokolle/Zugriff.Protokoll "kombiniert
HINWEIS: Ändern Sie die fetten Texte entsprechend Ihrer Anforderung.
Schließlich die Konfigurationsdatei www.Beispiel.com.Conf sollte wie folgt aussehen. Drücken Sie + X gefolgt von y und So speichern Sie die Konfigurationsdatei.
So kopieren Sie einfach die Konfigurationsdatei für Bob (www.Beispiel 1.com.Conf) und vornehmen, was wenig Änderungen benötigen.
Kopieren Sie die Konfigurationsdatei von Bob für Alice Und Linda mit den 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 folgendermaßen:
$ sudo nano www.Beispiel2.com.Conf
Ändern Sie nun alle Vorkommen von Beispiel 1 Zu Beispiel2. Speichern Sie dann die Datei.
Tu das Gleiche für Linda.
$ sudo nano www.Beispiel3.com.Conf
Ändern alle Vorkommen von Beispiel 1 Zu Beispiel3 und speichern Sie die Datei.
Aktivieren von virtuellen Host -Konfigurationen:
Deaktivieren Sie nun die Apache -Standard -Website -Konfiguration wie folgt:
$ sudo a2dissit 000 Default.Conf
Aktivieren Sie nun die VirtualHost -Konfigurationen www.Beispiel 1.com.Conf, www.Beispiel2.com.Conf, www.Beispiel3.com.Conf folgendermaßen:
$ sudo a2ensit www.Beispiel 1.com.conf www.Beispiel2.com.conf www.Beispiel3.com.Conf
Starten Sie schließlich den Apache -Dienst wie folgt neu:
$ sudo systemctl starten Sie Apache2 neu
Versuchen Sie nun, auf die Websites www zugreifen zu können.Beispiel 1.com, www.Beispiel2.com, www.Beispiel3.com
Wie Sie sehen können, funktioniert alle diese Websites wie erwartet.
NOTIZ: Ich habe die Standardseite geändert Index.html Für jede Websites, so dass es für jede Website für Testzwecke ein bisschen anders ist. Andernfalls können Sie nicht feststellen, ob die VirtualHost -Konfiguration funktioniert oder nicht.
So konfigurieren Sie name -basierte Apache VirtualHost auf Ubuntu 18.04 LTS. Danke, dass du diesen Artikel gelesen hast.