Centos、nginx、php-fpmを実行するVPS(4コア、6GB)を使用していますが、トラフィックはほとんどありません(URLを公開したことがありません)。
数週間ごとに(異なる時間に)、php-fpmはphp-fpm.logで次のように終了します。
[10-Nov-2015 04:14:48] NOTICE: Terminating ...
[10-Nov-2015 04:14:48] NOTICE: exiting, bye-bye!
現時点では、nginx error.logまたはphp-fpm-error.logに他のイベントはありません。
この終了の原因を見つけるために他にどこを探すことができますか?
次回発生したときに詳細情報を提供するように構成できるものはありますか?
自動的に再起動するようにphp-fpmを設定できますか?
Monitとその pid test を使用すると、php-fpmがクラッシュしたときに再起動し、オプションでこれが発生したときにメールを受信できます。何かのようなもの
set mail-format {
From: [email protected]
Subject: $Host $SERVICE $EVENT | $DATE
}
set alert [email protected]
check process php_fpm pidfile /var/run/php5-fpm.pid
start program = "/etc/init.d/php5-fpm start"
stop program = "/etc/init.d/php5-fpm stop"
上記はDebian7を念頭に置いて書かれていますが、CentOSに合わせて調整することもできます。
どのPHPバージョンを使用していますか?最新にアップグレードしようとしましたか?rpm/debからインストールしましたか、それともコンパイルしましたか?
その時点で実行されているcronがあるかどうかを確認できますか?
これは、サービスを再起動しようとするlogrotateが原因であることがよくあります。
とにかく、サービスの停止を防ぐために、monitをセットアップして、サービスが実行されているかどうかを確認し、実行されていない場合は再起動することができます。また、電子メール通知もサポートしているので、それについて知ることができます。
PHPプロセスは、無期限に実行されたままの場合、特に信頼性が高くありません。 php-fpmを設定して、ワーカープロセスを時々再起動する必要があります。変更してみてください
;pm.max_requests = 500
に
pm.max_requests = 500
まずは。他の構成の問題が発生する可能性があるため、すべてが修正されるわけではありませんが、max_requestsを変更することから始めるとよいでしょう。私のサーバーは何ヶ月もダウンタイムなしで稼働しています。