Я знаю, что этот вопрос часто задают, но решения, которые я видел, не сработали для меня.
У меня включен только один виртуальный хост, и я пытаюсь разрешить доступ к папке, которая не находится в корне документа
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
Alias /movies /home/username/Videos/Movies
<Directory /home/username/Videos/Movies/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Я установил /etc/apache2/envvars
следующее
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=public
Я удостоверился, что / home / username / Videos / и его подпапки принадлежат username:public
, установил разрешения на 777 (после 775 не работал) и убедился, что пользователь www-data
принадлежит группе public
.
Теперь, когда я http://localhost/movies
смотрю, я получаю
[Mon Apr 21 11:28:14.971844 2014] [core:error] [pid 1385:tid 140067725104896] (13)Permission denied: [client 127.0.0.1:46603] AH00035: access to /movies/ denied (filesystem path '/home/username/Videos') because search permissions are missing on a component of the path
Но когда я /etc/apache2/envvars
запускаю Apache под username
моим собственным именем, все работает нормально. Проблема связана с разрешением, но я не понимаю, как в моем случае; особенно когда я устанавливаю разрешения для 777
. Есть идеи?
PS Версия Ubuntu 14.04, Apache 2.4.7, я не редактировал другие файлы конфигурации.
/home
с включенным ACL? (в конце битов разрешений есть знак "+", если это так (проверьте с помощью ls -l
))