Intereting Posts

Как предоставить Apache доступ к папкам на MAC OSx?

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

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

(13) Разрешение отклонено: права доступа к файлам запрещены для доступа к серверу:

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

Благодаря!

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

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

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

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

  3. Добавьте пользователя-владельца файлов в группу _www .

     $ 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 

Другим альтернативным способом решения этого вопроса является использование расширенных атрибутов в 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