Tut Apache2-Unterstützung virtual hosting subdomains?
Derzeit mein Apache-server eingerichtet ist, wie so
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
DocumentRoot /var/www
</VirtualHost>
Das problem ist, dass alles unter /var/www
ist zugänglich von überall sonst. Wenn ich eine web-Seite /var/www/john/bio.html
dann, die web-Seite leihen könnte, Skripte/Bilder von var/www/jane/
Möchte ich auf meinen Apache server so wie
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
DocumentRoot /var/www
</VirtualHost>
<VirtualHost *:80>
ServerName www.john.example.com
ServerAlias john.example.com
DocumentRoot /var/www/john
</VirtualHost>
<VirtualHost *:80>
ServerName www.jane.example.com
ServerAlias jane.example.com
DocumentRoot /var/www/jane
</VirtualHost>
Also alle Dateien, die für Benutzer john
gehen in die /var/www/john/
Ordner, und ebenso für Benutzer jane
. Dann, mit symbolischen links ausgeschaltet (standardmäßig), und der Zugang nur von /var/www/user/
nach unten (ebenfalls standardmäßig), ich habe keine sorgen zu machen über john's
web-Seite einschließlich Skripte/Bilder von jane's
web-Seite.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit lokalen Maßnahmen nur (
/etc/hosts
anstelle eines DNS) fand ich, dass dies tatsächlich funktioniert.Zuerst ändern Sie Ihre
/etc/hosts
- Datei eine Zuordnung des von Ihnen gewünschten website-name(s) (http://www.example.com), und der Ziel-IP-Adresse (192.168.1.1). Früher habe ich meine lokale IP-Adresse.Ihrem web-browser überprüfen Sie Ihre
/etc/hosts
Datei vor der Suche im world wide web.Nächstes gehen Sie durch alle Ihre Apache-config-Dateien (
httpd.conf
,apache2.conf
,ports.conf
,conf.d/*
) und stellen Sie sicher, in genau eine Datei den BefehlNameVirtualHost *:80
ausgegeben wird (es muss kein port:80
aber wenn Sie ausgestellt ist, mehr als einmal, erhalten Sie dieses problem). Bei mir war ausgestellt in/etc/apache2/ports.conf
, so stellen Sie ihrigen dort, wenn Sie zu haben. Schließlich, aktualisieren Sie Ihre Apache-Konfigurationsdatei (bei mir war das bei/etc/apache2/sites-available/default
) so gerne.Als letzten Schritt, müssen Sie die websites, die auf Apache-durch die Emission der weiter unten genannten Befehle (dieser Schritt ist nicht notwendig, wenn Sie alle websites in
sites-available/default
und nicht in separate Dateien für die einzelnen websites).Danach
john.example.com
gehen/var/www/john
. Dieses Verzeichnis wird dann als root-Verzeichnis, undjohn
haben keinen Zugriff mehr aufwww
, und haben daher keinen Zugang zu/var/www/jane
.Ebenfalls, danach
jane.example.com
gehen/var/www/jane
. Dieses Verzeichnis wird dann als root-Verzeichnis, undjane
haben keinen Zugriff mehr aufwww
, und haben daher keinen Zugang zu/var/www/john
.Mit symbolischen links deaktiviert --standardmäßig-weder Verzeichnisse werden in der Lage sein, den Zugang zu jedem anderen
a2ensite example.com
erstellen symlink vonsites-available/example.com
zusites-enabled/example.com
gegenüber Befehl ista2dissite example.com
deaktiviert es.