Подтвердить что ты не робот

Write Privileges - localhost - Mac OSX

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

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

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

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

4b9b3361

Ответ 1

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

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

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

    User _www
    Group _www
    

    Для

    User your_mac_username
    Group staff
    

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

  • Перезапуск Apache

    sudo apachectl restart
    

Ответ 2

Я автор упомянутого сообщения в блоге. Для прав доступа к веб-серверу вы хотите предоставить доступ для записи пользователю _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 давала вам запрещенные ошибки, заключалась в том, что пользователь _www попал под разрешение "4", которое является "только для чтения". Для каталогов пользователь должен "выполнить", чтобы перейти в папку. chmod 775 позволит пользователю и группе обращаться к rwx, а другие - к r-x. Здесь больше информации о разрешениях файлов 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, я бы предложил сделать еще немного чтения, чтобы узнать, какие уровни доступа вам действительно нужно предоставить. Вот отличное место для начала.

Ответ 3

Я запускаю 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 r-w-x:

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

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

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

  • В терминальном типе id, чтобы получить uid=123(Myname).

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

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

Ответ 4

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

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

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

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

Ответ 5

Вышеуказанные решения не спомогли мне. Что я сделал:

Щелкните правой кнопкой мыши папку → Получить информацию

enter image description here

В самом низу есть настройка привилегий.

Измените его на Read & Напишите для каждого.