web-dev-qa-db-ja.com

php5-fpmが起動しなかった理由を知るにはどうすればよいですか?

サーバーに到達しようとすると504ゲートウェイタイムアウトが発生します。小さなチェックでphp5-fpmログにログが見つかりませんでしたが、念のため、再起動を試みました。それを再起動しようとしているとき:

Sudo service php5-fpm restart

[fail]しかし、私がするとき

Sudo service php5-fpm stop
Sudo service php5-fpm start

エラーは出ません。

ログがない場合、どうすれば調査できますか?私に何ができる?

10
Liad Livnat

error_logファイルでphp-fpmを確認しましたか?そのファイルの場所はphp-fpm.confで宣言する必要があります(Ubuntuではconfigは/etc/php5/fpm/php-fpm.conf、ログファイルは/ var/log/php5-fpmです。/log)、log_levelも確認してください。無効になっている場合(; log_level)、有効にしてdebugに変更してください。その後、php5-fpmサービスを再起動してログを確認してください。

フォアグラウンドモードでphp5-fpmを実行することもできます。

# php5-fpm -y /etc/php5/fpm/php-fpm.conf

多分これはあなたに何か面白いものを示しています。

17
jamzed

標準的なトラブルシューティング手順:

  • ログファイルを確認してください。どこにあるかわからない場合は、設定を確認するか、またはps aux | grep php-fpm、次にlsof -p $PID | grep log(何も表示されない場合はgrepを省略してください)。
  • 時間のログファイルの99%が原因を示します。そうでない場合は、設定でログレベルを探し、それを上げて再試行してください。
  • おそらくそれは即座に終了し、PIDを取得してプロセスを検査することはできません。プロセスをフォアグラウンドで開始することもできますが、これは、使用する必要があるコマンドラインスイッチを特定することを意味します。通常は、既存の設定を指定するだけです。
  • ログファイルまたはstdout/stderr(フォアグラウンド出力)のどちらにも手掛かりが含まれていない場合は、straceの時間ですが、それは別の投稿です。
4
Alex Forbes

このメモは私を助けました: https://bugs.launchpad.net/nginx/+bug/1366651

私の場合、nginx> 1.6.1に更新すると、php5-fpmに渡されるパラメータがfastcgi_paramsではなくfastcgi.confにあるため、PHPが常に200(ok )。ただし、SCRIPT_FILENAMEが設定されなくなったため、コンテンツはありません。

それが他の誰かにも役立つことを願っています。

私にとって、問題はphp-fpm.confファイルがデフォルトの構成ファイル名を使用していないことでした-/etc/php5/fpm/php5-fpm.confという名前が付けられました(php5-fpm.conf vs php-fpm.conf

php5-fpm -t  

[26-Jul-2014 22:39:16] ERROR: failed to open configuration file '/etc/php5/fpm/php-fpm.conf': No such file or directory (2)
[26-Jul-2014 22:39:16] ERROR: failed to load configuration file '/etc/php5/fpm/php-fpm.conf'
[26-Jul-2014 22:39:16] ERROR: FPM initialization failed

Confファイルの名前をphp-fpm.confに変更すると、問題が解決しました。

Sudo mv /etc/php5/fpm/php5-fpm.conf /etc/php5/fpm/php-fpm.conf
Sudo service php5-fpm restart
 * Restarting PHP5 FastCGI Process Manager php5-fpm                                                                           [ OK ]
2
David Thomas

Php 7がphp-fpmを代わりに使用するため、Ubuntu dist-upgradeでパッケージphp5-fpmがアンインストールされる場合があります。コンソールでこれを実行してみてください:

php5-fpm

存在しない場合は、おそらくphp 7を使用しているので、インストールしてください。

apt-get install php-fpm

php7バージョンをインストールします

0
rubo77

ログファイルがないというこの問題を経験したところ、HTTPではなくHTTPSを介してURLにアクセスしていて、そのプロトコルがNginxで設定されていなかったため、PHP5-FPMがトラフィックを取得していませんでした。

誰かを助けるかもしれません。

0
Dave Hilditch