Nginxとphp-fpmをポート接続からソケット接続にする場合
/etc/nginx/conf.d/*.conf(設定ファイル名は任意)
-fastcgi_pass 127.0.0.1:9000;
+fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
/etc/php-fpm.d/www.conf
-listen = 127.0.0.1:9000
+listen = /var/run/php-fpm/php-fpm.sock
とするのだけれども
systemctl stop php-fpm
とphp-fpmサービスを停止した場合
/var/run/php-fpm/ディレクトリが丸ごと消失してしまうため
再度起動するとphp-fpm.sockファイルが再生成され
オーナー情報・パーミッション情報を変えていてもリセットされてしまい
サーバー再起動などで動かなくなってしまう問題がある
この問題は以下のように
listen.owner、listen.group、listen.modeを適切に指定する事により
/etc/php-fpm.d/www.conf
-;listen.owner = nobody
-;listen.group = nobody
-;listen.mode = 0660
+listen.owner = nginx
+listen.group = nginx
+listen.mode = 0660
systemctl stop php-fpm
systemctl start php-fpm
してもphp-fpm.sockファイルがnginx所有のファイルとして正しく生成され動作するようになる
php-fpmの実行ユーザーも変更する場合
/etc/php-fpm.d/www.conf
-user = apache
-group = apache
+user = nginx
+group = nginx
セッションにアクセスできなくなるので権限を変更
chown -R nginx:nginx /var/lib/php/session/