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

Tut's Linux août 31, 2015

Le serveur web 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 web Apache : il permet à votre serveur web de « scanner » vos utilisateurs du serveur Linux à la recherche d’un dossier spécifique 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 mis en place et le serveur redémarré, allez voir la configuration du fichier : vous verrez qu’il faut respecter une certaine 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é.

La petite étoile entre « home » et « public_html » est le joker > Ainsi, 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 pour être sûr qu’elle fonctionne comme il se doit !

Ouvrez un navigateur web, puis saisissez l’adresse IP (ou le nom FQDN) de votre serveur web, suivi du nom de l’utilisateur « ciblé » :

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 racines de vos utilisateurs se trouvent dans « /users/ » et que le dossier de leur espace web personnel s’intitule « web » (soit une adresse complète en « /users/nom_utilisateurs/web/ », vous devez saisir cette directive :

<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.

Mots clés

Julien HOMMET

Bercé par l'informatique depuis mon plus jeune âge, je transforme ma passion en expertise.

Super ! Vous vous êtes inscrit avec succès.
Super ! Effectuez le paiement pour obtenir l'accès complet.
Bon retour parmi nous ! Vous vous êtes connecté avec succès.
Parfait ! Votre compte est entièrement activé, vous avez désormais accès à tout le contenu.