Как мне дать Apache доступ к папкам на MAC OSx? - PullRequest
4 голосов
/ 21 мая 2011

Я новичок в Mac и Apache. На моей машине для разработки мой веб-сайт не может получить доступ к каким-либо файлам в папках root / images или / css.

В журнале apache выдается следующая ошибка:

(13) В доступе отказано: права доступа к файлу запрещают доступ к серверу:

Сайт размещен в папке «Сайты». Я проверил «Получить информацию» в этой папке, и кажется, что «Все» имеет доступ для чтения. Что дает?

Спасибо!

Ответы [ 3 ]

19 голосов
/ 29 марта 2012

Проблема в том, что Apache работает с пользователем, отличным от пользователя-владельца файлов, а пользователь Apache не имеет прав на чтение / запись / выполнение.В моем случае пользователь был _www и является членом группы _www.

Я решил эту проблему, изменив группу файлов на _www:

  1. Найдите пользователя и группу apache.Я использовал этот скрипт php:

    <?php
    echo exec('whoami') . '<br>';
    echo exec('groups') . '<br>';
    ?>
    
  2. Войдите в систему с владельцем пользователя файлов.

  3. Добавьте владельца пользователя файлов в_www group.

    $ sudo dseditgroup -o edit -a userOwnerOfFiles -t user _www
    
  4. Измените группу файлов на _www

    $ chgrp -R _www path/containing/files
    
  5. Измените права доступа к файлам длягруппа

    $ chmod -R g+rwx path/containing/files
    
2 голосов
/ 10 июня 2013

Другой альтернативный способ решения этой проблемы - использование расширенных атрибутов в MacOSX

chmod + a "_www разрешить список, чтение, поиск, readattr, readsecurity, file_inherit, directory_inherit" / path / to / document_root

1 голос
/ 08 сентября 2011

Это был тяжелый вопрос для меня сегодня.Оказалось, что мне нужно было предоставить разрешения веб-серверу на все дерево каталогов вплоть до корня документа.

Это пришло мне сегодня, потому что я использую виртуальный хост и хранюфайлы довольно далеко вверх по дереву в моем пользовательском каталоге.

Я не хотел рекурсивно изменять все тысячи файлов в моем каталоге Documents, поэтому я просто выполнил chmod для каждой папки в пути.В моем домашнем каталоге:

$ 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
...