解決策 1:
error_log を確認しましたか php-fpm のファイル ?そのファイルの場所は php-fpm.conf で宣言する必要があります (Ubuntu の構成は /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
たぶん、これは何か面白いことを示しています。
解決策 2:
標準的なトラブルシューティング手順:
- ログ ファイルを確認します。どこにあるかわからない場合は、構成を確認するか、特定のことを把握するために
ps aux | grep php-fpm
で pid を見つけてください。 、次にlsof -p $PID | grep log
を実行します (何も表示されない場合は grep を省略してください)。 - 時間ログ ファイルの 99% で原因が示されます。そうでない場合は、構成でログ レベルを探し、レベルを上げて再試行してください。
- おそらくすぐに終了し、プロセスを検査するための PID を取得できません。フォアグラウンドでプロセスを開始することもできますが、これは、使用する必要があるコマンドライン スイッチを特定することを意味します。通常は、既存の構成を指すだけで済みます。
- ログ ファイルにも stdout/stderr (フォアグラウンド出力) にも手がかりが含まれていない場合は、strace の時間です... しかし、それは別の投稿です。
解決策 3:
このメモは私を助けました:https://bugs.launchpad.net/nginx/+bug/1366651
私の場合、nginx> 1.6.1 に更新すると、php5-fpm に渡されるパラメーターが fastcgi_params ではなく fastcgi.conf に配置されるため、PHP は常に 200 (ok) を返しますが、コンテンツは決して返しません。 SCRIPT_FILENAME は設定されなくなりました。
他の人にも役立つことを願っています。
解決策 4:
私にとって、問題は私の 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 ]