J'aimerais qu'Apache serve des fichiers "normaux" sur /srv/http/public
et des fichiers utilisateur sur /srv/http/[user]
, les répertoires peuvent ressembler à
/srv/http
/public
index.html - Accessible at localhost/index.html
/austin
index.html - Accessible at localhost/~austin/index.html
À l'heure actuelle, j'ai les configurations pertinentes suivantes dans Apache .conf
des dossiers
User http
Group http
DocumentRoot "/srv/http/public"
<Directory "/srv/http/public">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
UserDir /srv/http
UserDir disabled root
<Directory "/srv/http">
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
Et les autorisations suivantes dans /srv/http
:
drwxr-xr-x root http /srv/http
drwxr-xr-x http http /srv/http/public
-rwxr-xr-x http http /srv/http/public/index.html
drwxr-xr-x austin http /srv/http/austin
-rwxr-xr-x austin http /srv/http/austin/index.html
En utilisant cette configuration, localhost/index.html
affiche bien, mais localhost/~austin/index.html
donne un 403 Accès interdit! erreur, peu importe ce que j'essaie.
Modifier: l'entrée pertinente error_log: [error] [client ::1] client denied by server configuration: /srv/http/austin/index.html
Qu'est-ce que je fais mal?
Oh, et je ne pense pas que cela compte vraiment, mais j'utilise Arch Linux et Apache 2.2.19.
linux
permissions
apache-http-server
Austin Hyde
la source
la source
Réponses:
Le problème était que le
<Directory>
directive pour les répertoires d'utilisateurs était trop restrictive.Réutiliser les mêmes directives de la
/srv/http/public
répertoire permet au monde extérieur de voir tous les fichiers utilisateur:la source