Ich bin auf einem Shared-Hosting-Paket auf einem LAMP-Stack ohne Shell-Zugriff.
Ich kann Symlinks mit PHP symlink()
Funktion erstellen.
Nehmen wir an, mein Webstamm ist /home/www/user1/public
Nehmen wir an, ich habe ein echtes Verzeichnis namens /home/www/user1/public/real_dir
Und ich erstelle einen Symlink namens /home/www/user1/public/fake_dir
, der auf real_dir
Warum sollte ich eine 403 verboten erhalten, wenn ich versuche, auf www.mydomain.com/fake_dir
zuzugreifen, aber nicht, wenn ich auf www.mydomain.com/real_dir
zugreifen möchte?
Es sollte kein Rechteproblem sein, denn wenn ich eine Datei in PHP erstelle, kann ich darauf zugreifen.
Ich habe versucht, FollowSymlinks
aus und wieder in .htaccess (es war eingeschaltet) zu schalten, aber kein Glück.
Könnte es sein, dass FollowSymlinks
in einer .htaccess-Datei als nicht überschreibbar definiert ist? Oder ist bei der Arbeit mit Symlinks in Apache noch etwas zu beachten?
Apache muss so konfiguriert werden, dass der Zugriff auf das Verzeichnis im Dateisystem möglich ist. Dies muss von einem Systemadministrator durch Einfügen eines & lt; Directory & gt; Anweisung in den Apache-Konfigurationsdateien (httpd.conf).
Da sich das reale Verzeichnis im Web-Root befindet, muss es zugänglich sein, aber FollowSymLinks wurde möglicherweise nicht für das Verzeichnis aktiviert - dies muss auch dem Verzeichnis & lt; Directory & gt; hinzugefügt werden. Richtlinie.
Siehe Ссылка
Dies ist möglich SELinux Sicherheitsproblem.
cat / selinux / erzwingen Wenn der Wert 1 ist, setze ihn auf 0 und starte Apache neu.