In diesem Artikel werden die virtuellen Apache -Hosts für mehrere Websites konfiguriert. IT -Details erstellen & lt; virtualHost & gt; Blöcke, in denen Servername, Serveralias und DocumentRoot angegeben sind, sowie Sicherheitsüberlegungen wie Verzeichnisberechtigungen,
Erstellen virtueller Hosts in Apache können Sie mehrere Websites von einem einzelnen Server hosten. Dies wird erreicht, indem Apache so konfiguriert wird, dass sie basierend auf dem Domänennamen oder der IP -Adresse der eingehenden Anforderung unterschiedlich reagieren. Hier ist eine Schritt-für-Schritt-Anleitung:
/etc/apache2/apache2.conf
(Debian/Ubuntu), /etc/httpd/conf/httpd.conf
(Red Hat/Centos) oder /etc/httpd/conf/extra/httpd-vhosts.conf
(bevorzugen häufig für virtuelle Host-Konfigurationen). Verwenden Sie einen Texteditor mit Root -Privilegien (wie sudo nano
unter Linux).<virtualhost></virtualhost>
-blöcke hinzu. Jeder Block definiert die Einstellungen für einen bestimmten virtuellen Host. Ein grundlegendes Beispiel sieht so aus:<code class="apache"><virtualhost> ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com <directory> AllowOverride All Require all granted </directory> </virtualhost></code>
ServerName
: Der primäre Domain -Name für diesen virtuellen Host.ServerAlias
: Alternative Domainnamen, die auf diesen virtuellen Host verweisen sollten.DocumentRoot
: Das Verzeichnis, das die Dateien der Website enthält. Stellen Sie sicher, dass dieses Verzeichnis existiert.
<directory></directory>
: Gibt Berechtigungen für das DokumentRoot -Verzeichnis an. AllowOverride All
Ermöglicht .htaccess
-Dateien, einige Einstellungen zu überschreiben, während Require all granted
Zugriffe für alle. Verwenden Sie Vorsicht mit AllowOverride All
in Produktionsumgebungen.
<virtualhost></virtualhost>
-Block für jede Website, die Sie hosten möchten, wodurch der ServerName
, ServerAlias
und DocumentRoot
entsprechend geändert werden.a2ensite example.com
verwenden (ersetzen Sie example.com
durch den Namen Ihrer Website), gefolgt von sudo systemctl reload apache2
. Bei Red Hat/CentOS müssen Sie Apache möglicherweise mit sudo systemctl restart httpd
.Die Sicherheit ist von größter Bedeutung, wenn mehrere Websites auf einem einzelnen Server gehostet werden. Hier sind wichtige Überlegungen:
chmod 755
für Verzeichnisse und chmod 644
für Dateien), um den nicht autorisierten Zugriff oder eine Änderung zu verhindern. Vermeiden Sie übermäßig zulässige Einstellungen wie 777
..htaccess
-Dateien zwar bequem sind, können Sicherheitslücken in den Sicherheitslücken einführen, wenn sie nicht sorgfältig verwaltet werden. Vermeiden Sie sie, wenn möglich zu verwenden, und wenn Sie sie verwenden müssen, überprüfen Sie die zulässigen Richtlinien sorgfältig und beschränken Sie sie durch AllowOverride
. Sie können verschiedene Ports und Domänen für jeden virtuellen Host in der Richtlinie <virtualhost></virtualhost>
problemlos konfigurieren.
Um einen anderen Port zu verwenden, geben Sie ihn nach dem *
in der VirtualHost
Erklärung an. Zum Beispiel zur Verwendung von Port 8080 für einen virtuellen Host:
<code class="apache"><virtualhost> ServerName example.com:8080 # ... other directives ... </virtualhost></code>
Beachten Sie, dass Clients mit example.com:8080
auf diese Website zugreifen müssen. Die Verwendung von nicht standardmäßigen Ports tritt im Allgemeinen seltener, da HTTPS weit verbreitet ist. Es kann jedoch für Tests oder spezifische Anwendungen nützlich sein.
Um verschiedene Domänen zu verwenden, geben Sie sie einfach in den Direktiven ServerName
und ServerAlias
an, wie im ersten Abschnitt gezeigt. Apache entspricht dem Host -Header der eingehenden Anforderung, um zu bestimmen, welcher virtuelle Host verwendet werden soll. Dies ist die Standard- und bevorzugte Methode.
Ja, Sie können virtuelle Apache -Hosts mit unterschiedlichen PHP -Versionen für jede Website verwenden. In der Regel werden mehrere PHP -Installationen verwendet und Apache konfiguriert, um den entsprechenden PHP -Handler für jeden virtuellen Host zu verwenden.
Die genaue Methode hängt von Ihrem System und der Installation von PHP ab. Gemeinsame Ansätze sind:
mod_php
oder php-fpm
) verwenden, und geben Sie den Pfad zur korrekten ausführbaren PHP-Datei an.suexec
(für erhöhte Sicherheit): Die Verwendung suexec
verbessert die Sicherheit, indem die PHP -Skripte jedes virtuellen Hosts unter einem anderen Benutzerkonto ausgeführt werden. Dies verhindert, dass eine gefährdete Website andere betrifft.Das Konfigurieren dieser Setups erfordert sorgfältige Liebe zum Detail und Vertrautheit mit der Umgebung Ihres Servers und der PHP -Konfiguration. In der Dokumentation und der PHP-FPM-Dokumentation Ihres Systems finden Sie detaillierte Anweisungen. Es ist im Allgemeinen komplexer als das grundlegende virtuelle Host -Setup.
Das obige ist der detaillierte Inhalt vonWie erstelle ich virtuelle Hosts in Apache für mehrere Websites?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!