nginxは、ロケーションブロックで標準の/etc/nginx/fastcgi_params
を使用して、fastcgi経由でphp-fpmに接続しています。
コマンドラインからcgi-fcgi -bind
を使用して/.status(php-fpm.ini :: ping.path)に接続すると、期待どおりに結果が返されます(X-Powered-Byセット、応答本文など)。
Nginxでリクエストすると、結果は空に戻ります(X-Powered-Byセット、本文の長さまたはコンテンツなし)。 nginxは「有効な」応答を受け取ったため、200を返します。
Tcpdumpを監視して、パリティへの要求をFCGIヘッダーに分離しました(シェルによって設定されたユーザー関連の環境変数を除いて)。
標準のfactcgi_params
ファイルには、SCRIPT_FILENAME
のキー行が含まれていません。
location ~ \.php$ {
include fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}
追加してnginxを再起動します。
さて、あなたの質問は少しあいまいです。いわゆる「死の白い画面」(WSOD)は、無限の量によって引き起こされる可能性があります。しかし、これに遭遇した場合に私がするいくつかのこと:
php.ini
で以下をアクティブにします。
display_errors = 1
display_startup_errors = 1
error_log = /path/to/file
error_reporting = -1 ; (the -1 activates absolutely everything)
log_errors = 1
php-fpm.conf
で有効化:
error_log = /path/to/file
各php-fpmプール構成に対してアクティブ化します。
catch_workers_output = 1
これでも問題を特定できない場合は、完全なシステム情報と構成を投稿してください。それなしでは誰もあなたに正確な答えを出すことはできません。