У меня apache2 работает на Ubuntu 14.04.2 LTS. Проблема в том, что я получаю следующую ошибку (tail -f /var/log/apache2/error.log
)
[Wed Jun 10 18:18:56.114203 2015] [core:error] [pid 14802] [client 10.0.0.100:48843] AH00037: Symbolic link not allowed or link target not accessible: /var/www/html/xxxx
В файле: /etc/apache2/sites-enabled/000-default.conf у меня есть
DocumentRoot /var/www/html
<Directory />
Options +FollowSymLinks
AllowOverride None
</Directory>
В каталоге / var / www / html у меня есть программная ссылка «xxxx», указывающая на / root / xxxx
Я перезапустил Apache
service apache2 restart
Но это не помогло.
Любые идеи?
Оказывается, у моего корневого каталога не было правильных разрешений для учетной записи www-data. Его разрешение было «drwx ------». Я сделал команду chmod a+rx" /root
и теперь он отлично работает.
Вот несколько других возможностей для повышения безопасности, поскольку / root обычно доступен только root.
Если / root / xxxx - это папка, то вам не нужно предоставлять всем доступ для чтения к папке / root, вы можете быть более строгими и просто дать всем + x, что позволит им пройти по папке / root и перейти к / root / xxxx, поскольку путь известен, но не читать другие материалы, которые находятся в / root.
Если / root / xxxx - это файл, другой подход состоит в том, чтобы создать сценарий, который можно изменить только root (для большей безопасности используйте chattr +i
команда, чтобы сделать его неизменным), который выполняет с ним операции, которые вы хотите, чтобы Apache мог выполнять (например, читать его). Затем, используя файл sudoers, разрешите пользователю Apache запустить этот сценарий от имени пользователя root с помощью команды sudo без запроса пароля.