Write Privileges – localhost – Mac OSX

Я новичок в мире Mac и только что создал свой веб-сервер. Я использовал следующее руководство: http://echo.co/blog/os-x-107-lion-development-native-mamp-mysql-installer

Я передал свои сайты и базы данных, и все идет неплохо. Единственная проблема, с которой я столкнулся, – это разрешения на запись. Например, есть файл конфигурации, который нужно записать, и мне нужно было щелкнуть правой кнопкой мыши, перейти в Get Info, а затем включить чтение и запись для сотрудников и всех.

Я не могу вручную пройти и включить эти права записи для каждого файла / папки. Мне не нужно было делать это с помощью WAMP и значительно ускорить разработку.

Поэтому задаемся вопросом о двух возможных решениях: а) добавьте мою учетную запись пользователя в белый список для локального хоста, чтобы было достаточно 644 привилегий; б) установить рекурсивные права записи

Я нашел, что лучшим решением было изменить параметры пользователя и группы apache. Инструкции можно найти по адресу: http://paulmason.name/item/change-apache-user-group-in-lion-os-x

  1. Откройте терминал и введите

    sudo nano /private/etc/apache2/httpd.conf 
  2. Найти и изменить код http.conf

     User _www Group _www 

    к

     User your_mac_username Group staff 

    Примечание. В более ранних версиях, таких как Leopard, капитализируйте штат сотрудников. Вы можете получить свое имя пользователя и группу, набрав «id» и нажав Enter в терминале

  3. Перезапустить Apache

     sudo apachectl restart 

Я являюсь автором упомянутого сообщения в блоге. Для прав доступа к веб-серверу вы хотите предоставить доступ для записи пользователю _www для файлов. Для config.inc.php вы должны установить несколько способов:

У вас есть файл и у вас есть права на запись:

 $ sudo chown _www config.inc.php $ chmod u+w config.inc.php 

Соберите ли ваш пользователь файл, измените группу на _www и дайте разрешения для групповой записи:

 $ sudo chgrp _www config.inc.php $ chmod g+w config.inc.php 

Или, если вы чувствуете себя комфортно, позволяя всем пользователям писать, что я бы не рекомендовал по соображениям безопасности, дайте всем пользователям возможность писать:

 $ chmod a+w config.inc.php 

Если вся папка должна быть написана пользователем _www, она может владеть папкой и всеми файлами:

 $ sudo chown -R _www:_www folder/ 

или вы можете предоставить права на запись и исполнение папки всеми:

 $ chmod a+wx folder/ 

Причина, по которой chmod 774 предоставила вам запрещенные ошибки, заключалась в том, что пользователь был закрыт под разрешением «4», который является «только для чтения». Для каталогов пользователь должен «выполнить», чтобы перейти в папку. chmod 775 позволит пользователю и группе rwx, а другие – rx. Вот дополнительная информация о разрешениях файлов Unix .

Кроме того, ваш пользователь может сохранить полное владение и добавить определенные разрешения для пользователя _www вместо изменения уровня доступа для ВСЕХ пользователей с помощью списков контроля доступа.

 $ sudo chmod -R +a '_www allow read,write,delete,add_file,add_subdirectory,file_inherit,directory_inherit' folder $ sudo chmod +a '_www allow read,write' config.inc.php 

Если вы собираетесь идти по списку ACL, я бы предложил сделать еще несколько чтений, чтобы узнать, какие уровни доступа вам действительно нужно предоставить. Здесь отличное место для начала .

Я запускаю Apache на OSX, и это исправило это для меня:

 sudo chown -R _www:_www <mywebfolder> sudo chmod -R 775 <mywebfolder> 

Обновление # 1:

Синтаксис: sudo chown <user>:<group> <file-or-folder> . Пользователь Apache на OSX – это _www .

Чтобы сохранить право собственности, но предоставить разрешения Apache rwx:

 sudo chown -R <your-username>:_www <mywebfolder> sudo chmod -R 775 <mywebfolder> 

Обновление № 2:

Мне нравится этот метод лучше всего. Установите Apache для запуска как вы.

  1. В id терминала введите uid=123(Myname) .

  2. Откройте /etc/apache2/httpd.conf и отредактируйте его, чтобы использовать свое имя пользователя.

     <IfModule unixd_module> User Myname Group staff </IfModule> 
  3. Вернуться к выводу: sudo apachectl restart

Я рекомендую настройки реестров Write для вашего веб-корня.

Вы можете сделать это через консоль / терминал с помощью chmod -R 774 /my/web/root . Для меня владелец и группа настроены на: www-data:myUserName , которые можно установить с помощью chown . Не забудьте сначала проверить, кто ваш веб-пользователь.

Изменить: для лучшего понимания, почему у вас нет доступа:

Chmod 774, каждое число обозначает определенные права: пользователь, группа и другие. Если пользователь настроен на www-data и группу на www-data (большинство пользователей в системе Unix находятся в группе, названной по имени пользователя). Итак, если вы не находитесь в групповых www-data вам нужно либо присоединиться к нему, либо вам нужно изменить владельца (chown), либо вам нужно изменить разрешения (chmod). Существует несколько учебных пособий, для получения дополнительной информации.