Назад | Перейти на главную страницу

Как включить полный доступ к www для apache / PHP, git и себя в linux?

Папка / var / www принадлежит корень корень (группа пользователей). Которое значит что www-data (группа apache / php) не имеет доступа. Это вызывало ошибки записи, потому что PHP не разрешалось создавать файлы.

Я решил это с помощью CHMOD 0777 для всей папки / var / www, поскольку это всего лишь частная машина для разработки. Однако это по-прежнему вызывает проблемы, потому что CHMOD работает только с файлами, которые существуют при его запуске, а не с файлами, созданными после. Поэтому, если бы я создал новый файл, PHP не смог бы его перезагрузить.

И теперь я использую git, чтобы добавить больше файлов, и мне не удается получить apache / php, git и мой собственный пользователь чтобы все хорошо друг с другом играли файлы.

Как мне предоставить полный доступ для всех троих?

chmod 777 - плохая привычка, даже если это частная машина ... изучение того, как делать что-то правильно в безопасной среде, означает, что вы знаете, как делать это, когда вам нужно делать это в небезопасной среде. И у вас не возникнет соблазна выпустить производственное приложение с инструкциями по установке «chmod -R 777 / var / www / myapp».

Бертон ответил, что я делаю. Мои учетные записи разработчиков находятся в группе www-data, а www-data - это группа, установленная для всех файлов.

Посмотрите на "man 2 chmod" и прочтите, что делает групповой липкий бит. Это очень удобно, когда ваша основная группа - это не та группа, которую вы хотите назначить для новых файлов, которые вы там создаете. Это позволит автоматически помещать создаваемые вами файлы в группу www-data в каталогах, в которых вы ее установили.

Если ваш веб-сервер не создает новые файлы с достаточно широкими разрешениями (он создает 0755, когда вы хотите 0775), посмотрите на его настройку umask.

Для Perl CGI я обычно использую suexec, чтобы CGI работал от имени конкретного пользователя, а не от www-данных. Как указывает jdoss, для этого вам понадобится модуль, специфичный для PHP. Также существует MPM Apache2 (предварительный форк), который позволит каждому виртуальному хосту работать от имени конкретного пользователя даже для обычных чтений. Я еще не пробовал этот вариант, но если он работает хорошо, это очень поможет с такого рода проблемами безопасности.

Создайте группу с www или аналогичным именем и добавьте в эту группу всех пользователей, которых вы хотите записать в / var / www. Затем chown -R www-data: www полный каталог / var / www. Это должно предоставить вам необходимый доступ.

Помимо этого, просто очистите привилегии 0777 и сбросьте их до нормального состояния.

Я надеюсь, что это сработает :-)

Что вы можете сделать, так это настроить виртуальный хост Apache и загрузить его в каталог внутри домашнего каталога моего пользователя (/ home / username / public_html). Это позволяет вашему пользователю и Git манипулировать файлами, не беспокоясь о разрешениях / владении. Оттуда вы можете либо полениться и изменить пользователя Apache / PHP, чтобы он запускался от имени вашего пользователя (я думаю, это сработает), либо вы можете изучить настройку SuPHP (http://www.suphp.org/Home.html), которые будут запускать ваши скрипты PHP с разрешениями их владельцев.