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, 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://exemple.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.