Я нахожусь в общем пакете хостинга в стеке LAMP без доступа к оболочке.
Я могу создавать символические symlink()
функции symlink()
PHP.
Скажем, мой веб-корень – это /home/www/user1/public
Предположим, у меня есть реальный каталог с именем /home/www/user1/public/real_dir
И я создаю символическую ссылку с именем /home/www/user1/public/fake_dir
указывающую на real_dir
Почему я должен получить Запрет 403 при попытке доступа к www.mydomain.com/fake_dir
но не при попытке доступа к www.mydomain.com/real_dir
?
Это не должно быть проблемой прав, потому что, когда я создаю файл в PHP, я могу получить доступ к этому все правильно.
Я попытался FollowSymlinks
в .htaccess (он был включен), но не повезло.
Может ли быть, что FollowSymlinks
определяется как не перезаписываемый в файле .htaccess? Или есть что-то еще, что нужно знать при работе с Symlinks в Apache?
Необходимо настроить Apache, чтобы разрешить доступ к каталогу в файловой системе. Это должно быть сделано системным администратором, вставив директиву <Directory> в конфигурационные файлы apache (httpd.conf).
Поскольку реальный каталог находится внутри корня веб-узла, он должен быть доступен, но FollowSymLinks, возможно, не были включены для каталога – это также должно быть добавлено в директиву <Directory>.
См. http://httpd.apache.org/docs/2.0/mod/core.html#directory
Это может быть проблема безопасности SELinux.
cat / selinux / принудительно, если значение равно 1, установите значение 0, а затем перезапустите apache.