Самый разумный подход, который я придумал, был следующим:
Посмотрите в /etc/php-fpm.d/www.conf, какой пользователь использует FPM. В моем случае это был «апач». Затем я добавил этого пользователя в группу «nginx».
И теперь я могу управлять разрешениями согласованным образом: пользователь — это я, и у меня есть полные права, группа — «nginx», который прочитал (и r+x для каталогов), и он согласован, поэтому как веб-контент (доступ с помощью nginx) и PHP (доступ к которому осуществляется с помощью php-fpm) устанавливается группой «nginx».
Еще одна веская причина не менять пользователя или группу в конфигурации php-fpm — избежать проблем с правами доступа — php-fpm создал различные папки/файлы, используя своего предыдущего пользователя. И теперь он не может получить к ним доступ, так как больше не использует того же пользователя. Например, данные сеанса PHP (см. /var/lib/php/session).
Надеюсь, это поможет!
Решено:
php-fpm, конечно, не запускается от имени пользователя nginx. Его можно настроить (в CentOS) в файле /etc/php-fpm.d/www.conf
. Я отредактировал его конфигурацию, добавив строку 45:
44 ;group = nobody
45 group = webadmin
Затем перезапустил:
sudo /etc/init.d/php-fpm restart