it-swarm.com.de

Einen symbolischen Link im Sites-Verzeichnis erstellen

Ich habe eine Datei in meinem ~/Sites-Verzeichnis, die gut funktioniert, wenn ich sie durch coderama.local/~coderama/index2.php browse.

Jetzt möchte ich knifflig werden und meine index2.php-Datei an einen anderen Ort auf meinem System verschieben, also mache ich dies, indem ich einen symbolischen Link lege. Beim Versuch, auf coderama.local/~coderama/index2.php zuzugreifen, wird jedoch die folgende Fehlermeldung angezeigt.

Irgendwelche Ideen?

Vielen Dank!

Verboten

Sie haben keine Berechtigung zum Zugriff auf /~coderama/index2.php auf diesem Server.

58
Coderama

Das ist eine konfigurierbare Apache-Option. Es scheint, dass Apache auf Macs (und wahrscheinlich den meisten Installationen) so konfiguriert ist, dass sie symbolischen Links nicht folgt. Ich vermute (wie andere oben erwähnen), dass es aus Sicherheitsgründen ist.

Es kann jedoch manchmal sehr praktisch sein, symbolische Links zu verfolgen, insbesondere bei der Entwicklung bestimmter Arten von Apps. Was Sie tun müssen, ist 1) Ändern Sie die Apache-Konfiguration, um die Verfolgung symbolischer Links zuzulassen, und 2) starten Sie Apache neu.

Der Konfigurationsschritt wird wie folgt durchgeführt:

a) cd/etc/Apache2 (hier befinden sich die Konfigurationsdateien von Apache standardmäßig auf einem Mac)

b) Sie sehen hier ein paar Verzeichnisse. Einer heißt Benutzer

c) cd-benutzer

d) ls sollte eine .conf-Datei mit Ihrem Anmeldenamen enthüllen (login .conf) Ich bin "marvo", also heißt meine "marvo.conf".

e) Bearbeiten Sie diese Datei (ich verwende vi) - aber Sie müssen dies mit Sudo tun:

Sudo vi marvo.conf

f) Sie werden so etwas sehen

<Directory "/Users/marvo/Sites/">
    Options Indexes MultiViews 
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

g) Fügen Sie die Option "FollowSymLinks" hinzu, damit die zweite Zeile dieser .conf-Datei folgendermaßen aussieht:

Options Indexes MultiViews FollowSymLinks

(Weitere Konfigurationsoptionen finden Sie im Internet. Ich habe diese Seite gefunden: http://httpd.Apache.org/docs/2.0/mod/core.html#directory )

h) Speichern Sie die Datei.

Jetzt müssen Sie Apache neu starten, damit die Konfigurationsänderung übernommen wird. Beim Googeln habe ich festgestellt, dass dies am einfachsten von der Befehlszeile aus mit dem folgenden Befehl erledigt werden kann:

Sudo /usr/sbin/apachectl restart

(Fand das bei http://mcapewell.wordpress.com/2006/09/22/restart-Apache-in-mac-os-x/ )

Nun sollte dieser symbolische Link auf Ihren Siteseiten gut funktionieren.

101
Marvo

Hatte das gleiche Problem. Leider war Marvos Antwort nicht genug.

Das Problem liegt bei den Berechtigungen, die für jeden Ordner im Pfad festgelegt sind, beginnend mit ~/. Für die Verzeichnisse muss das Flag execute gesetzt sein, damit die Verzeichnisstruktur wiederhergestellt werden kann. In meinem Fall verknüpfte ich einen Themenordner von ~/Dropbox/projects/theme mit einer WordPress-Installation auf ~/Site/wordpress.

Die Antwort war:

chmod a+x ~/Dropbox/
chmod a+rx ~/Dropbox/projects

Dies ist ein altes Problem, aber wenn jemand diese Seite erreicht, kann dies nützlich sein. :)

56
agarie

Scheint wie eine Sicherheitslücke (wird auch von Matt vorgeschlagen)

http://discussions.Apple.com/thread.jspa?threadID=1771399

5
Coderama

Neben Marvos Antwort. Was mir geholfen hat war: Ändern Sie die Berechtigung für Dokumente Ordner:

cd ~
chmod a+rx Documents/
1
Gal Bracha

Ich kann mich nicht genau an den Grund dafür erinnern, aber es funktioniert nicht. Es ist eine Sicherheitsfrage. Sie können XAMPP http://www.apachefriends.org/de/xampp-macosx.html oder MAMP http://www.mamp.info/en/index.html verwenden, um dies zu umgehen .

1
Matt Williamson

Stellen Sie außerdem sicher, dass in Ihrer httpd-vhosts.conf eine Direktive vorhanden ist

Ansonsten erhalten Sie dasselbe '403 verboten im Browser', wobei 'der Client von der Serverkonfiguration im Fehlerprotokoll abgelehnt wird.

0
snowbound