web-dev-qa-db-ja.com

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 /

phpinfo()によって明らかになったサーバーAPIは、FPM/FastCGIになりました。

しかし、exec('id')を含むphpスクリプトを実行すると、次のようになります。

uid=99(nobody) gid=99(nobody) groups=99(nobody)

私は、php-fpmがhttpプロセスの所有者(この場合のように)ではなく、phpスクリプトの所有者のuidとして実行されるという印象を受けました。このページ http://php-fpm.org/ は、fpmに「異なるuid/gid/chroot/environmentと異なるphp.ini(safe_modeに置き換わる)でワーカーを起動する機能」があると述べています。

何が悪いのですか?

6
zaxxon

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=nobodygroup=nobodyを持っているでしょう。より多くのプールを作成し、Apache/NGINX /どのような構成でもそれらを割り当てることで使用できます。

7
zhenech