Я совершенно новый для Mac и Apache. Я моя машина разработки на моем сайте не может получить доступ к файлам под веб-корнями / изображениями или папками css.
В журнале apache появляется следующая ошибка:
(13) Разрешение отклонено: права доступа к файлам запрещены для доступа к серверу:
Сайт размещен в папке «Сайты». Я проверил в «Получить информацию» в этой папке, и кажется, что «Everyone» имеет доступ для чтения. Что дает?
Благодаря!
Проблема в том, что Apache работает с пользователем, отличным от владельца файлов пользователей, и у пользователя Apache нет прав на чтение / запись / выполнение. В моем случае пользователь был _www
и является членом группы _www
.
Я решил эту проблему, изменив группу файлов на _www
:
Найдите пользователя и группу apache. Я использовал этот php-скрипт:
<?php echo exec('whoami') . '<br>'; echo exec('groups') . '<br>'; ?>
Войдите в систему с помощью владельца файла.
Добавьте пользователя-владельца файлов в группу _www
.
$ sudo dseditgroup -o edit -a userOwnerOfFiles -t user _www
Измените группу файлов, необходимых для _www
$ chgrp -R _www path/containing/files
Изменить права доступа к файлам для группы
$ chmod -R g+rwx path/containing/files
Другим альтернативным способом решения этого вопроса является использование расширенных атрибутов в MacOSX
chmod + a "_www разрешить список, читать, искать, читатьattr, readsecurity, file_inherit, directory_inherit" / path / to / document_root
Сегодня это было тяжело для меня. Оказалось, что мне нужно предоставить разрешения для веб-сервера для всего дерева каталогов вплоть до корня doc.
Он пришел ко мне сегодня, потому что я использую виртуальный хост и храню файлы довольно далеко от дерева в моей пользовательской директории.
Я не хотел рекурсивно менять все тысячи файлов в моем каталоге Documents, поэтому я просто chmoded каждую папку в пути. В моем домашнем каталоге:
$ chmod 755 Documents $ chmod 755 Documents/projects $ chmod 755 Documents/projects/dev $ chmod 755 Documents/projects/dev/someglamorousclientname/ $ chmod 755 Documents/projects/dev/someglamorousclientname/docroot