最近の顧客の Web サイトを開いたときに、502 不正なゲートウェイが発生しました。サーバーを設定しておらず、パゴダ型の管理ソフトウェアをインストールしていなかったために、ひどい頭痛がしました。原因を調べてみると、サーバーのnginxとphpのインストールパスが完全にカスタマイズされており、原因を見つけるまでに時間がかかり、原因を見つけて色々試してみましたが、うまくいきませんでした。最後にphp-fpmを再起動すればOKでしたので、オンラインチュートリアルをもとにphp-fpmの再起動方法を簡単に整理してみました。
php-fpm を起動する最も簡単な操作は /usr/local/php/sbin/php-fpm ですが、php 5.3.3 以降の php-fpm は、php-fpm が以前に備えていた /usr/local/php/sbin/ をサポートしなくなりました。 php-fpm (start|stop|reload) およびその他のコマンドなので、この昔ながらのコマンドはもう見ないでください。シグナル制御を使用する必要があります。
マスター プロセスは次の信号を理解できます。
INT, TERM 立刻终止
QUIT 平滑终止
USR1 重新打开日志文件
USR2 平滑重载所有worker进程并重新载入配置和二进制模块
シンプルで直接的な再起動方法:
まずphp-fpmのマスタープロセス番号を確認します。
[root@test ~]# ps -ef|grep php-fpm
nginx 55507 1168 1 4月25 ? 01:23:01 php-fpm: pool www
nginx 55508 1168 1 4月25 ? 01:23:39 php-fpm: pool www
nginx 55509 1168 1 4月25 ? 01:22:59 php-fpm: pool www
nginx 55510 1168 1 4月25 ? 01:23:28 php-fpm: pool www
nginx 55511 1168 1 4月25 ? 01:23:24 php-fpm: pool www
nginx 55512 1168 1 4月25 ? 01:23:14 php-fpm: pool www
nginx 55513 1168 1 4月25 ? 01:00:42 php-fpm: pool www
nginx 55514 1168 1 4月25 ? 01:19:57 php-fpm: pool www
nginx 55515 1168 1 4月25 ? 01:23:42 php-fpm: pool www
php-fpm を再起動します。
kill -USR2 1168
それで大丈夫です。
上記の解決策は通常、php-fpm.pid ファイルが生成されない場合に使用されますが、php-fpm.pid を生成したい場合は、次の解決策を使用してください。
php-fpm のシャットダウン:
kill -INT 'cat /usr/local/php/var/run/php-fpm.pid'
注意:/usr/local/php/var/run换成您的php-fpm.pid的文件路径
php-fpm を再起動します。
kill -USR2 'cat /usr/local/php/var/run/php-fpm.pid'
注意:/usr/local/php/var/run换成您的php-fpm.pid的文件路径
ちなみに、nginxの起動コマンドを記録しておきます。
重启nginx
启动命令:nginx -c /etc/nginx/nginx.conf
停止命令:nginx -s stop