Недавно я установил 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 будет работать как uid владельца php-скрипта, а не как владелец процесса http (как в этом случае). Эта страница http://php-fpm.org/ говорит, что у fpm есть «возможность запускать рабочие с другим uid / gid / chroot / environment и другим php.ini (заменяет safe_mode)».
Что я делаю не так?
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 / других.