为什么php-fpm 以nobody 身份运行?

zax*_*xon 7 php-fpm nobody

我最近按照以下说明在我的服务器上安装了 php-fpm(CENTOS 6.5 x86_64 标准,WHM 11.44.1(build 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 脚本所有者的 uid 运行,而不是作为 http 进程的所有者(如本例)。这个页面http://php-fpm.org/说 fpm 具有“能够以不同的 uid/gid/chroot/environment 和不同的 php.ini(替换 safe_mode)启动工人”。

我究竟做错了什么?

小智 8

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
Run Code Online (Sandbox Code Playgroud)

你的可能会有user=nobodygroup=nobody。您可以创建更多池并通过在 Apache/NGINX/任何配置中分配它们来使用它们。