Почему у Apache нет доступа к директориям?

Стоит Apache 2.4.23 на MacOS SIerra. Все вроде как нормально работало, но в какой-то момент перестало, хотя я особо ничего не трогал. Проблема следующая: при доступе к директориям с php скриптами или html файлами, он выводит ошибку:
Forbidden

You don't have permission to access / on this server.
Server unable to read htaccess file, denying access to be safe

Хотя должен открываться индексный файл. Это касается всех директорий. Я добавляю директории и файлы в группу _www, под которым работает Apache, и ставлю им права 775, но это не помогает. В какой-то момент ситуацию меняло выставление прав 777, что тоже странно. С группой не работает, а так работает. Apache запущен не под тем пользователем? Запускаю его через "sudo apachectl start", команда "ps aux | grep httpd" выдает следующее:
_www              9877   0,0  0,0  2480792   2040   ??  S     6:43     0:00.01 /usr/sbin/httpd -D FOREGROUND
_www              9864   0,0  0,0  2480792   1612   ??  S     6:43     0:00.00 /usr/sbin/httpd -D FOREGROUND
_www              9863   0,0  0,0  2480792   2020   ??  S     6:43     0:00.01 /usr/sbin/httpd -D FOREGROUND
_www              9862   0,0  0,0  2480792   1628   ??  S     6:43     0:00.00 /usr/sbin/httpd -D FOREGROUND
_www               222   0,0  0,0  2480792   1744   ??  S    сб08    0:00.02 /usr/sbin/httpd -D FOREGROUND
root                90   0,0  0,1  2481048   7808   ??  Ss   сб08    0:01.40 /usr/sbin/httpd -D FOREGROUND
alankabisov      10122   0,0  0,0  2423384    240 s000  R+    6:58     0:00.00 grep httpd
>

Видно, что запущен под _www (в конфиге тоже прописана именно эта группа), но у меня есть тут два вопроса:
1) Почему запущено несколько инстансов Apache?
2) Почему один под рутом? Я так подозреваю это потому что я запускаю его через sudo.
Конфиг виртуальных хостов выглядит следующим образом:
<Directory "/Users/alankabisov/Sites">
  Options Indexes MultiViews FollowSymLinks
  AllowOverride All
  Order allow,deny
  Allow from all
  Require all granted
</Directory>

<Virtualhost *:80>
  VirtualDocumentRoot "/Users/alankabisov/Sites/%1/"
  ServerName sites.dev
  ServerAlias *.dev
  UseCanonicalName Off
</Virtualhost>


То есть при обращении к домену *.dev идет обращение к папке * из корневого каталога веб-сервера.
В логах "/var/log/apache2/error_log" есть следующие сообщения:
[Mon Mar 13 18:45:27.113487 2017] [core:crit] [pid 9877] (13)Permission denied: [client 127.0.0.1:58513] AH00529: /Users/alankabisov/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/Users/alankabisov/' is executable, referer: http://php1.dev/
[Mon Mar 13 18:45:27.297229 2017] [core:crit] [pid 9877] (13)Permission denied: [client 127.0.0.1:58513] AH00529: /Users/alankabisov/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/Users/alankabisov/' is executable
[Mon Mar 13 18:45:27.359012 2017] [core:crit] [pid 9877] (13)Permission denied: [client 127.0.0.1:58513] AH00529: /Users/alankabisov/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/Users/alankabisov/' is executable, referer: http://php1.dev/

Странным я нахожу то, что он ругается на проблему чтения htaccess файла из директории /Users/alankabisov/, а не /Users/alankabisov/Sites, как прописано в конфиге. Помогите, в чем может быть проблема? Уже даже и не знаю, что пробовать.
  • Вопрос задан
  • 11143 просмотра
Решения вопроса 1
wzrd
@wzrd Автор вопроса
Судя по всему Apache шел по директориям до папки Sites и искал в них htaccess файл и так как у него не было доступа на чтение в родительской директории папки Sites он выкидывал ошибку. Решил тем что установил группу для родительской папки _www и установил для нее права на чтение. Вроде помогло. Странно правда, как это работало раньше. Ну решение возможно не самое элегантное, альтернативы приветствуются. А пока сделаю это решением.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы