Le serveur web Apache2 a la possibilité de transformer un dossier spécifique de chaque utilisateur de votre serveur comme espace web personnel.
Apache2 est bien connu comme étant un des serveurs web de référence sous Linux. Il dispose de nombreux utilitaires et autres modules pour pousser encore plus ses capacités. Le module « UserDir » est par défaut installé via Apache2, lors de l’installation du serveur web. C’est grâce à ce module que vous pourrez transformer les dossiers des utilisateurs de votre serveur en espace personnel web.
Activation du module et configuration
Sur votre serveur web, en étant connecté avec un utilisateur disposant des droits sudo (ou Root), il faut activer le module « userdir » et redémarrer le service Apache2
a2enmod userdir && systemctl restart apache2.service
Par défaut, le module « userdir » rend le dossier « public_html » de chaque home de vos utilisateurs comme espace web. Après le redémarrage du service Apache2, vous pouvez immédiatement utiliser ce module.
Ainsi, vos utilisateurs peuvent utiliser le dossier « public_html » pour pouvoir y mettre leur site web. Ils ont un accès complet en lecture / écriture / exécution à ce dossier.
Pour accéder aux espaces web des utilisateurs, vous devez ouvrir un navigateur et saisir l’adresse suivante :
http://serverweb/~user
Il faut remplacer « user » par le nom de votre utilisateur disposant d’un compte ; N’oubliez pas qu’il faut le tilde « ~ » avant cet identifiant, sans quoi vous ne pourrez pas accéder aux espaces du site web.
Attention, dans la configuration par défaut, vous devez impérativement utiliser le dossier "public_html". S'il n’existe pas dans les home de vos utilisateurs, vous devez créer ce dossier avec les droits "root:www-data".
POUR ALLER PLUS LOIN…
Vous pouvez modifier l’emplacement sur lequel doit pointer le module « userdir » – C’est-à-dire que vous n’êtes pas obligé de garder l’emplacement « /home/nom_user/public_html ».
Pour modifier la configuration, éditez le fichier « userdir.conf » dans le dossier « /etc/apache2/mods-enabled/« .
nano /etc/apache2/mods-enabled/userdir.conf
Il faut modifier la ligne « <Directory … » et y remplacer le chemin par lequel vous souhaitez faire pointer le nouvel emplacement. Ainsi, votre ligne peut devenir :
<Directory /data/*/public_html>
N.B. : l’étoile contenue entre les slashs permet d’utiliser TOUS les sous-dossiers de votre arborescence (selon votre emplacement).
Pour reprendre l’exemple du « /home/user« , si vous avez quatre utilisateurs (gilles, julien, kevin, nicolas) ayant un dossier dans « /home », tous ces sous-dossiers d’utilisateurs (donc les comptes) seront parcourus par le serveur web à la recherche d’un dossier « public_html ».
Vous pouvez aussi modifier le nom du dossier web public qu’Apache doit rechercher / parcourir – Par défaut il s’agit de "public_html", mais vous pouvez tout aussi bien utiliser un autre nom de dossier. Pensez à le modifier dans la ligne "<Directory…"
Redémarrez votre service web (systemctl restart apache2.service) et vous pouvez donc dès à présent disposer d’un espace web « personnalisé » pour vos utilisateurs.