[Debian] Apache mod_userdir, un espace web pour chaque utilisateur

Le serveur Apache dispose d’un module vous permettant de créer un espace web pour tous les utilisateurs de votre serveur ; Activer le « mod_userdir » !

Ce module est intégré de base à votre serveur Apache : il permet de « scanner » vos dossiers utilisateurs du serveur à la recherche d’un emplacement qui deviendra le dossier racine web de chaque utilisateur.
Ainsi, en saisissant une adresse web de ce type (http://ip_server/~nom_utilisateur), vous accéderez à son espace web personnel.


Mise en place

Vous devez activer le module dans votre serveur et redémarrer le service Apache2.

Une fois le module activé et le serveur redémarré, allez voir la configuration du fichier ; il faut respecter une convention de nommage.

En effet, le module « mod_userdir » scannera tous les dossiers utilisateurs se situant dans « /home/ » et à la recherche du dossier « public_html« . Ce dossier doit être créé dans le dossier personne de vos utilisateurs, sans quoi le service Apache ne pourra pas « lancer » l’espace personnel web de l’utilisateur concerné.

L’étoile entre « home » et « public_html » est le « joker » : tous les sous-dossiers de « home » seront lus par le mod_userdir.

N’oubliez pas non plus les droits, à placer de cette façon :

chown root:www-data /home/nom_utilisateur/public_html

Vous n’avez pas besoin de relancer le serveur / service web pour prendre en compte les modifications. Comme le module « mod_userdir » est chargé par le service Apache2, il scrute en permanence les dossiers des utilisateurs.


Tests

La mise en place est terminée, il faut maintenant tester la configuration. Ouvrez un navigateur web, puis saisissez l’adresse IP (ou FQDN) du serveur web, suivi du nom de l’utilisateur :

http://ip_server/~nom_utilisateur

Lorsque la page s’affiche, elle devrait vous afficher un dossier vide > Logique puisqu’il n’y a pas encore eu d’activité dedans.
Pour l’exemple j’ai créé quelques fichiers, ils sont apparus sans problème et sont accessibles !


Pour aller plus loin

Le « mod_userdir » n’est pas limité au dossier « /home/user/public_html »… ! Il s’agit d’une configuration standardisée qui peut être modifiée selon vos besoin et contraintes.

Dans le fichier /etc/apache2/mods-enabled/userdir.conf, vous avez la directive « <Directory /home/*/public_html> » : C’est cette ligne qu’il faut modifier !
Par exemple, si tous les dossiers de vos utilisateurs se trouvent dans « /users/ » et leur espace web personnel s’intitule « web » (/users/nom_utilisateurs/web/), vous devez saisir :

<Directory /users/*/web>

Facile !
N’oubliez pas les droits sur le dossier naturellement… Vous pouvez retrouver des informations complémentaires sur le module directement sur la page officielle d’Apache, sur ce lien.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *