display_errors がオフで、PHP がセーフ モードで実行されている場合、PHP スクリプトをデバッグするにはどうすればよいですか?
6 に答える
最良の方法は、error_log() http://php.net/manual/en/function.error-log.phpを使用 することです。そして、そのメソッドに特定のハンドラーを設定できます。データベースまたはファイルに記録するか、単にエラーを表示します。
ハンドラメソッドを設定する場合は、次を使用できます:set_error_handler
開発環境にいる場合は、無効safe_mode
にしてから有効にする必要がありますerror_reporting
。実稼働環境では、おそらくライブ デバッグを行うべきではありません (ライブであるため)。本番環境にのみ存在すると思われるエラーを追跡する場合はerror_log
、 を使用するか、使用しているフレームワークのロギング メカニズムを使用して、後でログを確認します。こうすることで、本番環境の通常の操作が中断されることはありません。一部のフレームワークはsymfony
、別の環境でシステムにアクセスするための別のインターフェイスを提供します (たとえば、アクセスでindex.php
はエラー レポートが無効になっfrontend_dev.php
ていますが、そうではありません) 。
本番環境と開発環境を別々に持っていない場合は、この 2 つを分離する時期です。たとえばXAMPP
、開発用 PC にインストールするか、同様の方法で開発を行うことができ、既にコードのデバッグ/テスト/その他を行っている場合にのみ、ライブ サーバーにデプロイできます。
あなたはそれを使うことができます:
error_reporting(E_ALL);
ini_set('display_errors','On');
ini_set('error_log','my_file.log');
PHPはログファイルをファイルに書き込みます。
表示エラーディレクティブを有効にできない場合は、var_dump、debug_backtrace、および例外を使用してphpソースコードをデバッグできます。
echo $var; exit;
エラー表示がオフの場合は、 ORを使用してコードをデバッグできる唯一の方法var_dump($list); exit;
var_dump($variable);
exit;
また
echo $variable;
exit;
また
echo "<pre>";
print_r($variable);
exit;
「印刷ステートメントまたはデバッガー式に何かを入力したくなるときはいつでも、代わりにテストとして記述してください」
――マーティン・ファウラー