Почему 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/ любых других конфигурациях.

Другие вопросы по тегам