web-dev-qa-db-ja.com

Nginx + PHP-FPMは致命的なエラーの代わりに502の悪いゲートウェイを生成しますか?

私は現在、NginxとPHP-FPMを使用してSymfony2をテストしています。 Xdebugも使用します。

Symfony2にはデモバンドルが付属しています。Acme/ Demoバンドルに構文エラーを作成して、Symfony2.2.0に付属する致命的なエラーの新しい処理をテストしたいと思いました。なぜそうするのか、サーバーの応答は502悪いゲートウェイです。

しかし、app_dev.phpファイルで構文エラーを(フレームワークが起動する前に)すると、Xdebugは致命的なエラーを通知します。

そして驚くべきことに、そのタイプミスを修正してから、Acme/Demoバンドルで構文エラーを再作成すると、Symfonyエラーハンドラーが期待どおりに表示されます。そして最後に、すべてのタイプミス(ページが機能する)を修正してから、同じタイプミスを再度作成すると(Acme/Bundleで)、ゲートウェイが不良になります。

これについて何か手がかりはありますか?

11
jchatard

これは昨日私に起こりました.nginxからphp5-fpmへのハンドオフでエラーが発生し、php-fpmサービスが間違ったソケットでリッスンするように構成されていることが判明しました。

/etc/php5/php-fpm.confで私は次のように変更しました:

listen = /var/run/php5-fpm.sock

/ etc/nginx /のすべてで、fastcgi_pass unix:/var/run/php5-fpm.sockを確認してください

HTH

1
windsor

Nginxログを確認することで、正確な問題を追跡できます。

/var/log/nginx/sitename.error.log

502は、php-fpmプロセスへの接続に問題があるためです。ログはあなたに詳細を与えることができます。ログを分離したい場合は、phpアプリケーションの場所の下に別のerror_logを記載してください。

    location <name> {

    error_log /var/log/nginx/site_location.error.log;
  #  error_log /var/log/nginx/site_location.error.log debug;

    }

(nginxが別のポート/ phpfpm/socketに接続しようとしている場合は、これから答えを得ることができます)

0
Anto