Dynamischer vhost gibt 403 aus, verboten unter OSX Apache

Dynamischer vhost gibt 403 aus, verboten unter OSX Apache

Ich bin gefolgtdieser Leitfadenund versuche, dynamische virtuelle Hosts unter OSX zu erstellen, indem ich foo.devdie Weiterleitung zum Webordner erlaube /foo. Der Unterschied besteht darin, dass ich ~/Sitesals Webordner statt der Mac-Festplatte wie in der Anleitung verwende. Es wird dnsmasq verwendet, das meines Erachtens installiert ist und ordnungsgemäß funktioniert.

In meinem Ordner ~/Sites habe ich also:

home
sites
|-foo
|-bar

Meine httpd-vhosts.conf sieht folgendermaßen aus:

<Virtualhost *:80>
DocumentRoot "/Users/harryg/Sites/home"
ServerName home.dev
UseCanonicalName Off
ErrorLog "logs/home/error.log"
<Directory "/Users/harryg/Sites/home">
    #Options FollowSymLinks
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride None
    Allow from all
</Directory>
</Virtualhost>

<Virtualhost *:80>
VirtualDocumentRoot "/Users/harryg/Sites/sites/%1"
<Directory "/Users/harryg/Sites/sites/%1">
    Options FollowSymLinks
    #Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride None
    Allow from all
</Directory>
ServerName sites.dev
ServerAlias *.dev
UseCanonicalName Off
</Virtualhost>

Der erste virtuelle Host funktioniert einwandfrei und führt home.devzu der Beispieldatei index.php, die ich im Stammverzeichnis dieses virtuellen Hosts habe.

Der 2. virtuelle Host gibt einfach einen 403-Forbidden-Fehler für alles .dev aus, unabhängig davon, ob ein Ordner für die Subdomäne von .dev vorhanden ist oder nicht.

Irgendwelche Ideen?

Bearbeiten:

Neuste Logeinträge

Apache-Fehlerprotokoll:

[Wed Dec 18 00:45:37 2013] [error] [client 127.0.0.1] File does not exist: /Users/harryg/Sites/home/favicon.ico
[Wed Dec 18 00:45:45 2013] [error] [client 127.0.0.1] client denied by server configuration: /Users/harryg/Sites/sites/test/, referer: http://home.dev/
[Wed Dec 18 00:45:45 2013] [error] [client 127.0.0.1] client denied by server 

Der Server funktioniert jetzt (es gab ein Problem mit dem Fehlerprotokollverzeichnis in der Konfigurationsdatei). Ich kann aber immer noch nicht auf dynamische virtuelle Hosts zugreifen.

Antwort1

Was ist der Inhalt Ihrer 2. Site?

Dafür gibt es zwei mögliche Gründe:

  1. Wenn ein Verzeichnis keineIndexDokument (index.php, index.html, default.html usw.) und Verzeichnisauflistung ist nicht zulässig, Apache zeigt eine 403-Fehlerseite an.

  2. Mir ist aufgefallen, dass Sie ExecCGI in sites.dev nicht aktiviert haben. Könnten Sie versuchen, es zu aktivieren?

Aktualisiert:Das Prozentzeichen im Pfad ( /Users/harryg/Sites/sites/%1) ist für mod_vhost_alias, aber nicht für die Regeln von Apache <Directory>. Ändern Sie Folgendes:

<Directory "/Users/harryg/Sites/sites/%1">

Hierzu:

<Directory "/Users/harryg/Sites/sites">

Funktioniert es?

Antwort2

Ich bin gerade auf dasselbe Problem gestoßen und es stellte sich heraus, dass es eine Standardeinstellung in Apache ist. In der httpd.conf steht das

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

Entfernen Sie die Zeile „Deny from all“ und starten Sie Apache neu.

Antwort3

Der Fehler 403 bedeutet, dass der Zugriff verweigert wurde. Sie müssen die Berechtigungen für das Baumverzeichnis bis hin zum Site-Verzeichnis überprüfen.

Stellen Sie sicher, dass der Benutzer, der Apache ausführt, über Lese- und Ausführungsberechtigungen für die Verzeichnisse sowie über Leseberechtigungen für Dateien verfügt.

verwandte Informationen