Auf meinem Mac OS 10.5 Maschine, würde Ich mag einen Unterordner von einzurichten ~/Documents
wie ~/Documents/foo/html
zu http: // localhost / foo .
Das erste, was ich überlegt habe, ist die Verwendung von Alias wie folgt:
Alias /foo /Users/someone/Documents/foo/html
<Directory "/Users/someone/Documents/foo/html">
Options Indexes FollowSymLinks MultiViews
Order allow,deny
Allow from all
</Directory>
Das hat mir verboten. Im error_log habe ich:
[error] [client ::1] (13)Permission denied: access to /foo denied
Der betreffende Unterordner hat Zugriff auf chmod 755. Ich habe versucht, Likes wie http: //localhost/foo/test.php anzugeben , aber das hat auch nicht funktioniert. Als nächstes habe ich die Symlink-Route ausprobiert.
Ging in /Library/WebServer/Documents
und machte einen Symlink zu ~/Documents/foo/html
. Der Dokumentenstamm hat
Options Indexes FollowSymLinks MultiViews
Das hat mir noch 403 verboten:
Symbolic link not allowed or link target not accessible: /Library/WebServer/Documents/foo
Was muss ich sonst noch einrichten?
Lösung :
$ chmod 755 ~/Documents
Im Allgemeinen müssen der freizugebende Ordner und der gesamte Vorgängerordner für den www
Dienstbenutzer sichtbar sein .
quelle
Antworten:
Ich wette, dass ein Verzeichnis über dem Verzeichnis, auf das Sie zugreifen möchten, keine Berechtigungen hat, um Apache das Durchlaufen zu ermöglichen. Werden Sie der Benutzer, unter dem Apache ausgeführt wird (
sudo -i -u apache
oder was auch immer), und versuchen Sie, in das Verzeichnis von Interesse zu wechselnls
. Wenn Sie dies nicht können (wie erwartet), versuchen Sie, nacheinander in die darüber liegenden Verzeichnisse zu gelangen, bis Sie dazu aufgefordert werden. Das Unterverzeichnis ist dasjenige, daso+x
festgelegt werden muss. Aufschäumen, ausspülen, nach Bedarf wiederholen.quelle
sudo -i -u _www
unter OS X arbeite (da der Apache-Benutzer in der Apache-Standardkonfiguration unter OS X _www ist), erhaltewhoami
ich trotzdem meinen Benutzernamen und nicht _wwwsudo - www-data
(für Ubuntu).Verwenden
+FollowSymlinks
quelle
Stellen Sie sicher, dass der Dateitresor nicht aktiviert ist. Ich hatte das gleiche problem Ich habe alles versucht, was ich finden konnte. Nichts hat geklappt. Aber nachdem ich eine Stunde lang versucht hatte, dies herauszufinden, erinnerte ich mich, dass ich File Vault aktiviert hatte.
Durch Deaktivieren wurde das Problem behoben.
quelle
Überprüfen Sie die Symlink-Inhaberschaft. Da Sie unter Mac OS X arbeiten, können die Symlink-Besitzer geändert werden. In
/Library/WebServer/Documents
dols -l
Wenn Ihr Symlink zu
~/Documents/foo/html
aufgerufen wirdfoo
und Berechtigungen wie hatUnter OS X wird Apache dann standardmäßig als _www-Benutzer und _www-Gruppe ausgeführt. In diesem Fall kann der Symlink nicht überquert werden
~/Documents/foo/html
Führen Sie
man 8 chown
auf dem System - Terminal oder sehen Sie sie online Mann chownSie werden sehen, dass durch die Verwendung dieser
-h
Option der Eigentümer des Symlinks selbst geändert wird und nicht die Datei, auf die er verweist (die Quelle). Dann kannst du sowas machenDies ändert den Simlink zu
und die Apache _www-Gruppe wird in der Lage sein, den Link zu durchlaufen.
quelle
Überprüfen Sie Ihr / Users-Verzeichnis (ls -l / Users), um die Rechte für Ihren Benutzer (jemanden) anzuzeigen.
Ist das 'Sites'-Verzeichnis auch auf localhost / ~ someone korrekt verfügbar?
quelle