Serveur Apache HTTP Version 2.4
Sur les systèmes multi-utilisateurs, on peut permettre à chaque utilisateur d'avoir un site web dans son répertoire home à l'aide de la directive UserDir
. Les visiteurs de l'URL http://example.com/~nom_utilisateur/
recevront un contenu situé dans le répertoire home de l'utilisateur "nom_utilisateur
", et dans le sous-répertoire spécifié par la directive UserDir
.
Notez que par défaut, l'accès à ces répertoires n'est pas permis. Vous pouvez en permettre l'accès à l'aide de la directive UserDir
en décommentant la ligne
#Include conf/extra/httpd-userdir.conf
dans le fichier de configuration par défaut conf/apache2.conf
, et en adaptant le fichier httpd-userdir.conf
selon vos besoins, ou en incluant les directives appropriées dans une section Directory
du fichier de configuration principal.
Modules Apparentés | Directives Apparentées |
---|---|
La directive UserDir
permet de spécifier un répertoire à partir duquel le contenu de l'utilisateur pourra être chargé. Elle peut revêtir plusieurs formes.
Si le chemin spécifié ne commence pas par un slash, il sera interprété comme chemin relatif au répertoire home de l'utilisateur considéré. Par exemple, avec cette configuration :
UserDir public_html
l'URL http://example.com/~rbowen/fichier.html
correspondra au chemin fichier /home/rbowen/public_html/fichier.html
Si le chemin spécifié commence par un slash, le chemin du fichier sera construit en utilisant ce chemin, suivi du nom de l'utilisateur considéré. Par exemple, avec cette configuration :
UserDir /var/html
l'URL http://example.com/~rbowen/fichier.html
correspondra au chemin fichier /var/html/rbowen/fichier.html
Si le chemin spécifié contient un astérisque (*), ce dernier sera remplacé par le nom de l'utilisateur dans le chemin du fichier correspondant. Par exemple, avec cette configuration :
UserDir /var/www/*/docs
l'URL http://example.com/~rbowen/fichier.html
correspondra au chemin fichier /var/www/rbowen/docs/fichier.html
On peut aussi définir plusieurs répertoires ou chemins de répertoires.
UserDir public_html /var/html
Avec l'URL http://example.com/~rbowen/fichier.html
, Apache va rechercher ~rbowen
. S'il ne le trouve pas, Apache va rechercher rbowen
dans /var/html
. S'il le trouve, l'URL ci-dessus correspondra au chemin fichier /var/html/rbowen/file.html
On peut utiliser la directive UserDir
pour rediriger les requêtes relatives aux répertoires utilisateurs vers des URLs externes.
UserDir http://example.org/users/*/
L'exemple ci-dessus va rediriger une requête pour http://example.com/~bob/abc.html
vers http://exemple.org/users/bob/abc.html
.
En suivant la syntaxe décrite dans la documentation de UserDir, vous pouvez définir quels utilisateurs sont autorisés à utiliser cette fonctionnalité :
UserDir disabled root jro fish
La configuration ci-dessus va autoriser l'utilisation de la fonctionnalité pour tous les utilisateurs, à l'exception de ceux listés à la suite de l'argument disabled
. De même, vous pouvez interdire l'utilisation de la fonctionnalité à tous les utilisateurs sauf certains d'entre eux en utilisant une configuration du style :
UserDir disabled
UserDir enabled rbowen krietz
Vous trouverez d'autres exemples dans la documentation de UserDir
.
Afin de réserver un répertoire cgi-bin pour chaque utilisateur, vous pouvez utiliser une section <Directory>
pour activer CGI dans un sous-répertoire particulier d'un répertoire home utilisateur.
<Directory "/home/*/public_html/cgi-bin/"> Options ExecCGI SetHandler cgi-script </Directory>
Avec la configuration ci-dessus, et en supposant que UserDir
est défini à public_html
, un programme CGI exemple.cgi
pourra être chargé depuis ce répertoire en passant par l'URL :
http://example.com/~rbowen/cgi-bin/exemple.cgi
Si vous voulez que vos utilisateurs puissent modifier la configuration du serveur pour ce qui concerne leur espace web, ils devront utiliser des fichiers .htaccess
pour effectuer ces modifications. Assurez-vous d'avoir défini la directive AllowOverride
à une valeur appropriée pour les directives dont vous voulez permettre la modification aux utilisateurs. Voir le tutoriel .htaccess pour plus de détails sur la manière dont tout ceci fonctionne.