Héberger un site dans un autre répertoire que www

Retour à la liste des tutoriels

Permettre de délivrer un site dont le contenu n'est pas dans /var/www/example.com/www/.


Préambule

Mes sites web sont placés sous une arborescence de type /var/www/anael.eu/ .

Toutefois, j'ai créée un utilisateur système sur le serveur pour une connaissance, lui permettant de stocker en ligne ses données. Cette personne souhaite pouvoir partager des fichiers avec ses amis d'une manière simple !

J'ai créé la configuration de son sous-domaine (dedi.anael.eu).

Solution 1 - Accès au compte user-web

Pour conserver une cohérence avec la configuration du serveur, je devrais donner accès au compte user-web à cette personne (user-web à accès à /var/www/*).

Toutefois, je ne souhaite pas que l'on puisse modifier mes autres sites web pour autant !

Solution 2 - Changement de répertoire www

Par défaut les données des sites sont stockées dans /var/www/example.com/www.

Je vais faire pointer ce répertoire vers un répertoire spécifique du /home de cette personne : elle pourra à la fois accéder au serveur, gérer ses documents, et mettre en ligne certains d'entre eux (en les copiant dans le bon répertoire !)

Pour ce faire, j'utilise une configuration de vhost standard.

Par contre je crée un lien symbolique entre le répertoire www et le /home :

ln -s /home/user/mon_site/ /var/www/dedi.anael.eu/www

De cette manière, tout document mis dans le répertoire mon_site sera considéré, par Apache, comme étant dans /www (du site dedi.anael.eu) !

Erreurs courantes

Vous rencontrez des erreurs 403 à l'accès au site ?

[Thu Jan 27 20:22:01 2011] [error] [client 81.220.163.196] Symbolic link not allowed or link target not accessible: /var/www/dedi.anael.eu/www

Dans la configuration du site, avez-vous autorisé Apache à suivre les liens symboliques ?

...
	<Directory /var/www/dedi.anael.eu/www/>
		Options -Indexes +FollowSymLinks
...

Chmod

Pour qu'Apache puisse accéder aux fichiers du site web, il faut que ces derniers possèdent des droits (ACL) corrects !

Par défaut, il faut donner un droit d'accès au groupe :

chmod /home/user 750
chmod /home/user/mon_site 750


Liens