Я знаю, что nginx устанавливает пользователя для php как www-data. Поэтому пользователю www-data необходим доступ ко всей структуре, как описано в этом посте.

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

  1. Давайте определим пользователя php как «www».
  2. Давайте определим пользователя как «моды».
  3. Давайте определим группу под названием «веб-доступ».
  4. Оба 1 и 2 являются членами 3.

Идея заключается в том, что я хочу, чтобы каталог html и все вложенные файлы были настроены на моды:webaccess 750, чтобы моды могли загружать и изменять файлы php, и чтобы, очевидно, www мог получать доступ и обрабатывать запросы php.

Проблема в том, что с этим параметром я получаю «Не указан входной файл». ошибка. Теперь, поскольку пользователь www является участником веб-доступа, не должны ли они иметь возможность читать файлы php с правами rx, установленными для группы?

Чтобы убедиться, что это на самом деле проблема с разрешениями, а не с путями, я добавил php-файл в корневой веб-каталог, содержащий <?php echo exec('whoami'); ?> , с разрешениями, установленными на 750, я получаю «Не указан входной файл». ошибка. Поэтому я меняю права доступа на 755, а затем возвращаю пользователя «www».

1 ответ1

1

В неинтерактивной оболочке возможно, что ваш пользователь www получает только свою основную группу (как определено в /etc /passwd), а не какие-либо дополнительные группы (как определено в /etc /group).

Вы можете проверить это, используя:

<?php echo exec('id'); ?>

Если веб-доступ отсутствует в группах, возможно, поэтому он может читать файлы только тогда, когда другой имеет доступ.

РЕДАКТИРОВАТЬ:

Эта проблема похожа на ту, что была у dwieeb (https://serverfault.com/questions/356959/user-http-does-not-have-write-permissions-directory)

Ах, я нашел проблему. Да, я перезапустил Nginx, но демон php-fpm также должен быть перезапущен, когда http добавлен в группу для моего домена.

Если вы еще этого не сделали после добавления www в webaccess, попробуйте перезапустить Nginx и php-fpm.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .