Печальная проблема с разрешениями PHP Джо (LAMP) [закрыто]

Сколько существует PHP-серверов, можно подумать, что по этой теме будет больше руководств.

Джо начинает как счастливый обладатель нового ПК с Ubuntu.

Джо любит Ubuntu в своем кофе. Джо хочет создать веб-сайт с использованием PHP. Сотни и сотни библиотек Joe apt-get пытаются настроить Apache, PHP и MySQL. Джо наконец-то получает настройку PHP, поскольку рассвет выбивает из колеи бедного уставшего Джо.

Джо просыпается с работающим PHP. Джо начинает писать код. У Джо возникает ошибка, связанная с тем, что PHP не может создавать файлы.

Это беспокоит Джо.

Джо наивно CHMOD указывает каталог / var / www на 0777. PHP работает, и Джо счастлив. Через несколько минут у Джо возникает та же проблема, когда PHP пытается записать другой файл.

Джо понимает, что это плохо.

Джо обнаруживает Чоуна и группу, известную как www-data. Джо переворачивает свой CHMOD и преобразует / var / www в www-data. Однако PHP по-прежнему работать не будет. PHP - это никто .

Джо возвращается к работе в McDonalds, понимая, что нет никакой надежды когда-либо написать код PHP.

1
задан 22 February 2010 в 22:41
3 ответа

Если Ваш процесс PHP не находится в бизнесе создания каждого файла, который живет в/var/www, chown'ing/var/www к www-данным плохая идея. Я держу пари, что Joe уже создал структуру каталогов под/var/www, и его процесс PHP пытается записать в один из тех каталогов, принадлежавших кому-то другому, чем www-данные. Вы должны только показанный www-данные каталоги, в которые необходимо записать - другие лучше оставляют находящимися в собственности как что-то, во что не может записать веб-сервер.

1
ответ дан 3 December 2019 в 19:50
  • 1
    Joe видит ошибку своих путей и раскаивается. После того, как chowning /var/www Joe создал sub папки для PHP. Joe забыл, что те папки принадлежали ему. Joe изменил это. Работы PHP. Joe ушел c работы в Макдоналдсе. –  Xeoncross 22 February 2010 в 23:24

Nicholas видит запрос Joe и предлагает, возможно, создать отдельный каталог, в который может записать PHP. Он отмечает что, если Joe не предназначает, чтобы Apache служил файлам непосредственно от него, то тот каталог не должен быть при нигде подачах Apache от.

Он также отмечает, что под Debian основывал дистрибутивы - как Ubuntu - Apache (и таким образом PHP) почти всегда выполняемый как www-данные и предполагает, что что-то странное происходит где-нибудь, если PHP, работающий под апачем, не может записать в каталоги, перезаписываемые той группой.

При перечитывании Nicholas также предлагает делать папку пожеланиями Joe записать для принадлежности www-данным группы (chgrp $folder www-данных) и затем перезаписываемый той группой, как он думает, что, когда PHP работает, это - возможно член www-данных вместо того, чтобы работать как тот пользователь.

Nicholas отмечает, что процесс установки PHP на Ubuntu под Apache не должен быть намного более сложным, чем "Кв. - получает apache2 libapache2-mod-php5 php5 php5-mysql установки" и затем "sudo a2enmod php5", и что, если Joe должен был валять дурака больше, чем которые возможно, что что-то существенно неправильно, что это завинчивает, под чем работает PHP.

Nicholas отмечает, что часть этого сообщения звучит более покровительственной, чем строго необходимо, и обвиняет наследованный формат третьего лица.

2
ответ дан 3 December 2019 в 19:50

Joe знает, в какой каталог Сценарий PHP пытается записать? Для того каталога нужны полномочия www-данных записать.

0
ответ дан 3 December 2019 в 19:50

Теги

Похожие вопросы