Ich bin gefolgtdieser Leitfadenund versuche, dynamische virtuelle Hosts unter OSX zu erstellen, indem ich foo.dev
die Weiterleitung zum Webordner erlaube /foo
. Der Unterschied besteht darin, dass ich ~/Sites
als 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.dev
zu 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:
Wenn ein Verzeichnis keineIndexDokument (index.php, index.html, default.html usw.) und Verzeichnisauflistung ist nicht zulässig, Apache zeigt eine 403-Fehlerseite an.
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.