Все еще перепутанный Полномочиями - Linux, nginx, php-fpm

Это довольно легко сделано с mod_rewrite, Wordpress использует это довольно часто

RewriteBase /foo/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /somedir/foo/script.php [L]
5
задан 13 April 2017 в 15:13
2 ответа

Самый разумный подход, который я придумал, был следующим:

Посмотрите в /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).

Надеюсь, это поможет!

1
ответ дан 20 May 2020 в 15:31

Решено:

php-fpm, конечно, не запускается от имени пользователя nginx. Его можно настроить (в CentOS) в файле /etc/php-fpm.d/www.conf . Я отредактировал его конфигурацию, добавив строку 45:

44  ;group = nobody
45  group = webadmin

Затем перезапустил:

sudo /etc/init.d/php-fpm restart
3
ответ дан 3 December 2019 в 01:51

Теги

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