Почему php-fpm работает как никто?
Я недавно установил php-fpm на свой сервер (стандарт CENTOS 6.5 x86_64, WHM 11.44.1 (сборка 7)), следуя инструкциям здесь: http://infoliser.com/how-to-configure-apache-2-2-with-php-fpm-using-whm-cpanel-and-easyapache/
API сервера, как показано phpinfo()
, сейчас FPM/FastCGI.
Тем не менее, когда я запускаю скрипт php, содержащий exec('id')
, Я получил:
uid=99(nobody) gid=99(nobody) groups=99(nobody)
У меня сложилось впечатление, что php-fpm будет работать как пользователь владельца сценария php, а не как владелец процесса http (как в этом случае). На этой странице http://php-fpm.org/ говорится, что у fpm есть "возможность запускать работников с разными uid / gid / chroot / environment и разными php.ini (заменяет safe_mode)".
Что я делаю неправильно?
1 ответ
PHP-FPM выполняет скрипт не как владелец скрипта, а как пользователь, настроенный в соответствующей конфигурации пула.
В моей системе Debian пул по умолчанию www
определяется в /etc/php5/fpm/pool.d/www.conf
и содержит:
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
user = www-data
group = www-data
Ваш, вероятно, будет user=nobody
а также group=nobody
, Вы можете создавать больше пулов и использовать их, назначая их в вашем Apache/NGINX/ любых других конфигурациях.