Benötigen Sie Hilfe beim Einrichten von Apache-Benutzerverzeichnissen

Benötigen Sie Hilfe beim Einrichten von Apache-Benutzerverzeichnissen

Ich möchte, dass Apache "normale" Dateien aus /srv/http/publicund Benutzerdateien aus bereitstellt /srv/http/[user], sodass die Verzeichnisse wie folgt aussehen könnten:

/srv/http
  /public
    index.html - Accessible at localhost/index.html
  /austin
    index.html - Accessible at localhost/~austin/index.html

Im Moment habe ich die folgenden relevanten Konfigurationen in den Apache- .confDateien

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>

Und die folgenden Berechtigungen in /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

Mit diesem Setup localhost/index.htmlwird die Anzeige einwandfrei angezeigt, es wird jedoch localhost/~austin/index.html ein403 Zugriff verboten!Fehler, egal was ich versuche.

Bearbeiten:der entsprechende error_log-Eintrag: [error] [client ::1] client denied by server configuration: /srv/http/austin/index.html

Was mache ich falsch?

Oh, und ich glaube nicht, dass es wirklich wichtig ist, aber ich verwende Arch Linux und Apache 2.2.19

Antwort1

Das Problem bestand darin, dass die <Directory>Richtlinie für die Benutzerverzeichnisse zu restriktiv war.

Durch die Wiederverwendung derselben Anweisungen aus dem /srv/http/publicVerzeichnis kann die Außenwelt alle Benutzerdateien sehen:

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

verwandte Informationen