私はubuntu10.04+ nginx +php-fpm5.4を実行しています
display_errors = On
php.iniで設定すると、すべてのエラーが出力されます。代わりに、それをオフに設定してから、ini_set('display_errors、' 1');を使用します。スクリプトに直接表示されますが、解析エラーは表示されず、空白のページのみが表示されます。error_reportingとE_STRICTも試してみましたが、方法が見つかりませんでした。
私はubuntu10.04+ nginx +php-fpm5.4を実行しています
display_errors = On
php.iniで設定すると、すべてのエラーが出力されます。代わりに、それをオフに設定してから、ini_set('display_errors、' 1');を使用します。スクリプトに直接表示されますが、解析エラーは表示されず、空白のページのみが表示されます。error_reportingとE_STRICTも試してみましたが、方法が見つかりませんでした。
で無効display_errors
にし、後でを使用しphp.ini
てPHPスクリプトで有効にすると、その呼び出しを含む行が実行された後にのみ有効になります。ini_set()
ini_set()
解析エラーは、PHPスクリプトが開始する前、つまりPHPファイルが解析されるときに発生します(したがって、「解析エラー」という名前が付けられます)。
ini_set()
つまり、実行される前に発生します。つまり、このdisplay_errors
場合、解析エラーが発生したときに有効になりません。その結果、何も表示されません。
ここで私はこれが答えられてから何年も経っていますが、私はこれを回避する方法を見つけました。
私が書いているスクリプトのために、ini_set()ディレクティブを含む2番目のスクリプトを作成し、その後に実際に作業しているスクリプトのインクルードを作成しました。
とに、ここにtest_run.phpがあります
<?php
ini_set('display_errors', '1');
ini_set('error_reporting', E_ALL);
include('./my_script.php');
?>
オンにする以外にdisplay_errors
、エラーログを監視することもできます。通常、Ubuntu + apacheを実行すると、エラーログはになります/var/log/apache2/error_log
。何が起こっているかをリアルタイムで監視するには、のようなものを実行しますtail -f /var/log/apache2/error_log
。
これは、php設定に煩わされるよりも簡単な場合があります。
**php.iniファイルでのエラー表示を有効にする必要があります**
次の行を追加(コメントなし)しましたが、解析エラーが表示されています。
error_reporting
Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
Development Value: E_ALL
Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
試してみてくださいerror_reporting(E_ALL);
。またはドキュメント