Introduction
Imaginez que vous administriez le serveur d’une université. Vous souhaitez que chaque étudiant dispose de son propre site web personnel, accessible via une URL telle que university.com/~student1.
Au lieu de placer tous les fichiers dans un répertoire central, Apache propose une fonctionnalité appelée répertoires utilisateur. Elle permet à chaque utilisateur d’héberger un site web directement dans son propre répertoire personnel, généralement dans un sous-répertoire nommé public_html.
Cette fonctionnalité est moins courante sur les grandes plateformes de production modernes, mais elle reste utile pour comprendre comment fonctionnent ensemble le mappage des URL, les permissions et le contenu web propre à chaque utilisateur.
Dans cet atelier, vous allez :
- Activer le module : activer la fonctionnalité
userdirdans Apache. - Créer le répertoire : configurer le dossier
public_htmldans votre répertoire personnel. - Configurer les permissions : vérifier qu’Apache dispose des permissions nécessaires pour accéder à vos fichiers.
- Tester : accéder à votre page personnelle via une requête effectuée dans un navigateur.
Activer le module Userdir
Apache est un serveur modulaire : vous pouvez donc activer ou désactiver certaines fonctions selon vos besoins. Le module userdir associe les URL telles que ~username au répertoire personnel de l’utilisateur.
Cette conception modulaire est l’une des caractéristiques essentielles d’Apache. De nombreuses fonctions ne sont pas toujours actives par défaut ; les administrateurs activent plutôt les modules nécessaires au rôle particulier du serveur.
Vérifiez l’état d’Apache pour vous assurer que le service est en cours d’exécution :
sudo service apache2 status
Activez le module userdir à l’aide de la commande a2enmod (Apache 2 Enable Module) :
L’outil a2enmod fait partie des conventions de paquetage d’Apache sur Ubuntu. Il simplifie la gestion des modules en créant les liens symboliques appropriés, au lieu de vous obliger à modifier tous les fichiers manuellement.
sudo a2enmod userdir
Un message doit indiquer que le module est en cours d’activation.
Pour confirmer l’activation, affichez la liste des modules activés :
ls /etc/apache2/mods-enabled/ | grep userdir
Vous devez voir userdir.conf et userdir.load, ce qui confirme que le module est actif.
Configurer le répertoire web
Le module userdir recherche un dossier nommé public_html dans le répertoire personnel de l’utilisateur. Dans cet atelier, votre nom d’utilisateur est labex.
Accédez à votre répertoire personnel :
cd ~
Créez le répertoire public_html :
mkdir ~/public_html
Créez dans ce répertoire un fichier index.html simple pour tester votre site :
echo "<h1>My Personal Page</h1><p>Welcome to the labex user directory.</p>" > ~/public_html/index.html
Vous devez ensuite configurer les permissions. Par défaut, les répertoires personnels des utilisateurs sont souvent privés, ce qui empêche l’utilisateur Apache (www-data) d’y accéder. Apache a besoin de la permission d’exécution (x) sur votre répertoire personnel pour pouvoir accéder au dossier public_html qu’il contient.
Cet exemple montre clairement que la diffusion de contenu web dépend des permissions normales du système de fichiers Linux. Apache ne peut servir que les fichiers qu’il est autorisé à parcourir et à lire.
Modifiez les permissions de votre répertoire personnel :
chmod 711 /home/labex
711(rwx--x--x) vous donne un contrôle complet tout en permettant aux autres utilisateurs, notamment Apache, de parcourir le répertoire (exécution) sans pouvoir en afficher le contenu (lecture).
La différence entre les permissions de lecture et d’exécution sur les répertoires est subtile, mais importante. La permission d’exécution sur un répertoire signifie « vous pouvez y entrer ou le parcourir », tandis que la permission de lecture signifie « vous pouvez en afficher le contenu ».
Vérifiez les permissions :
ls -ld /home/labex
Les permissions affichées doivent se terminer par x, ce qui indique que le parcours du répertoire est autorisé.
Redémarrer le service
Après avoir activé un module ou modifié la configuration, vous devez redémarrer Apache pour que les changements prennent effet.
Redémarrez le service Apache :
sudo service apache2 restart
Vérifiez qu’Apache a redémarré correctement :
sudo service apache2 status
L’état doit être active (running).
Vérifier la configuration
Maintenant que tout est configuré, testez votre page web personnelle.
Le format de l’URL est http://server_address/~username/. Comme vous travaillez directement sur le serveur, utilisez localhost.
Utilisez curl pour récupérer la page :
curl http://localhost/~labex/
Vous devez voir le contenu HTML que vous avez créé :
<h1>My Personal Page</h1>
<p>Welcome to the labex user directory.</p>
Si vous obtenez une erreur 403 Forbidden, vérifiez à nouveau les permissions de votre répertoire personnel (/home/labex) et du répertoire public_html.
Résumé
Dans cet atelier, vous avez configuré avec succès des répertoires web personnels. Vous avez appris à :
- Activer le module Apache
userdir. - Créer et remplir le répertoire
public_html. - Configurer les permissions du répertoire afin d’autoriser l’accès d’Apache tout en préservant la sécurité.
- Vérifier la configuration en accédant à l’URL propre à l’utilisateur.
Cette fonctionnalité est largement utilisée dans les environnements éducatifs et les services d’hébergement mutualisé pour fournir aux utilisateurs leur propre espace web.



