Ne Apache2 virtuels en charge de l'hébergement des sous-domaines?
Actuellement mon serveur Apache est configuré comme
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
DocumentRoot /var/www
</VirtualHost>
Le problème est que tout en dessous de /var/www
est accessible de partout ailleurs. Si j'ai une page web /var/www/john/bio.html
, alors que page web pourrait emprunter scripts/des photos de var/www/jane/
Je veux configurer mon serveur Apache comme
<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>
De sorte que tous les fichiers de l'utilisateur john
aller dans le /var/www/john/
dossier, et de même pour l'utilisateur jane
. Puis, avec les liens symboliques désactivé (par défaut), et l'accès seulement à condition de /var/www/user/
à la baisse (de nouveau par défaut), je n'ai pas à vous soucier de john's
page web y compris les scripts/images à partir de jane's
page web.
OriginalL'auteur puk | 2011-11-07
Vous devez vous connecter pour publier un commentaire.
À l'aide de mesures locales seulement (
/etc/hosts
à la place d'un DNS), j'ai trouvé que cela ne peut en effet travailler.D'abord, changer votre
/etc/hosts
fichier pour avoir une cartographie de votre site désiré nom(s) (http://www.example.com), et la cible de l'adresse IP (192.168.1.1). J'ai utilisé mon adresse IP locale.Votre navigateur web va vérifier votre
/etc/hosts
fichier avant à la recherche sur le world wide web.Prochain rendez-vous par le biais de tous vos fichiers de configuration d'Apache (
httpd.conf
,apache2.conf
,ports.conf
,conf.d/*
) et assurez-vous que dans exactement un fichier la commandeNameVirtualHost *:80
est émis (il n'a pas à être port:80
mais si elle est prise plus d'une fois, vous obtiendrez ce problème). Le mien a été publié en/etc/apache2/ports.conf
, donc mettre le vôtre si vous en avez. Enfin, mettez à jour votre fichier de configuration d'Apache (le mien était à/etc/apache2/sites-available/default
) comme si.Comme une étape finale, vous devrez peut-être ajouter les sites web de Apache par l'émission le dessous des commandes (cette étape n'est pas nécessaire, si vous donnez tous les sites dans
sites-available/default
et pas dans des fichiers séparés pour des sites web individuels).Après avoir fait cela,
john.example.com
ira à/var/www/john
. Ce répertoire servira ensuite le répertoire racine, etjohn
n'aurez plus accès àwww
, et, par conséquent, n'ont pas accès à/var/www/jane
.De même, après avoir fait cela,
jane.example.com
ira à/var/www/jane
. Ce répertoire servira ensuite le répertoire racine, etjane
n'aurez plus accès àwww
, et, par conséquent, n'ont pas accès à/var/www/john
.Avec les liens symboliques éteint --par défaut-- ni les répertoires seront en mesure d'accéder à toutes les autres
content d'avoir pu aider au moins une personne
Commande
a2ensite example.com
créer un lien symbolique à partir desites-available/example.com
àsites-enabled/example.com
, en face de la commande esta2dissite example.com
, ce qui permettrait de le désactiver.OriginalL'auteur puk