Besoin d'aide pour configurer les répertoires d'utilisateurs Apache

0

J'aimerais qu'Apache serve des fichiers "normaux" sur /srv/http/publicet 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.

Austin Hyde
la source
Vos journaux disent ...?
Ignacio Vazquez-Abrams
J'ai mis à jour la question avec le seul message fourni par le fichier journal (sauf pour la demande du fichier favicon.ico)
Austin Hyde

Réponses:

0

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:

<Directory "/srv/http">
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
Austin Hyde
la source