「広告」

php-fpm、VirtualHost毎にユーザ、グループを設定

「広告」
記事内に広告が含まれています。
「広告」

suexec、で、php、perlをVirtualHost毎に実行ユーザを設定できますが、今回は、phpの実行ユーザをphp-fpmで設定をします。
(かつては、suPHPというツールもありましたが、今の時代は、利用しているサーバーは少ないでしょう・・・)

「広告」

php-fpmの設定変更

サーバーは、nginxで利用しています。

# ps ax |grep php
17159 ?        Ss     0:00 php-fpm: master process (/usr/local/etc/php-fpm.conf)
17160 ?        S      0:49 php-fpm: pool www
17161 ?        S      0:49 php-fpm: pool www
18223 ?        S      0:33 php-fpm: pool www

↑ 上記のようにphp-fpmが起動しています。

# cp /usr/local/etc/php-fpm.d/www.conf /usr/local/etc/php-fpm.d/test.conf

↑設定ファイルをコピーします。

vi /usr/local/etc/php-fpm.d/test.conf

[www]
 ↓
[tests]

user = nginx
group = nginx
 ↓
user = tests
group = users

listen = 127.0.0.1:9000
 ↓
listen = /var/run/php-fpm-tests.sock

↑設定内容を変更します。「user」が、実行ユーザになりますので、VirtualHostで設定したユーザ名と一致させます。
(FTPのユーザ名と一致させます)

# systemctl restart php-fpm
# ps ax |grep php
26118 ?        Ss     0:00 php-fpm: master process (/usr/local/etc/php-fpm.conf)
26119 ?        S      0:00 php-fpm: pool tests
26120 ?        S      0:00 php-fpm: pool tests
26121 ?        S      0:00 php-fpm: pool www
26122 ?        S      0:00 php-fpm: pool www

↑「pool tests」というプロセスが増えました。

「広告」

nginxの設定変更

vi /usr/local/nginx/conf/xxxx.conf

server {

}
の中の

fastcgi_pass   127.0.0.1:9000;
 ↓
fastcgi_pass   unix:/var/run/php-fpm-tests.sock;

↑該当の、「VirtualHost」の「server」ブロックの中の「fastcgi_pass」をソケットタイプに変更をして、php-fpmで指定したソケットと一致をさせます。

# systemctl restart nginx

↑ nginxを再起動させます。

「広告」

502 Bad Gateway

↑ もし、「502 Bad Gateway」
となってしまったら、

vi /usr/local/etc/php-fpm.d/test.conf

;listen.owner = nginx
;listen.group = nginx
 ↓
listen.owner = nginx
listen.group = nginx

とします。

これは、nginx(今回は)で、動作する、ユーザ名とグループになります。

タイトルとURLをコピーしました