&reftitle.runtime; &extension.runtime; エラーおよびロギング設定オプション &Name; &Default; &Changeable; &Changelog; error_reporting NULL PHP_INI_ALL display_errors "1" PHP_INI_ALL display_startup_errors "0" PHP_INI_ALL log_errors "0" PHP_INI_ALL log_errors_max_len "1024" PHP_INI_ALL PHP 4.3.0 以降で有効です。 ignore_repeated_errors "0" PHP_INI_ALL PHP 4.3.0 以降で有効です。 ignore_repeated_source "0" PHP_INI_ALL PHP 4.3.0 以降で有効です。 report_memleaks "1" PHP_INI_ALL PHP 4.3.0 以降で有効です。 track_errors "0" PHP_INI_ALL html_errors "1" PHP_INI_ALL PHP <= 4.2.3 では PHP_INI_SYSTEM 。 xmlrpc_errors "0" PHP_INI_SYSTEM PHP 4.1.0 以降で有効です。 xmlrpc_error_number "0" PHP_INI_ALL PHP 4.1.0 以降で有効です。 docref_root "" PHP_INI_ALL PHP 4.3.0 以降で有効です。 docref_ext "" PHP_INI_ALL PHP 4.3.2 以降で有効です。 error_prepend_string NULL PHP_INI_ALL error_append_string NULL PHP_INI_ALL error_log NULL PHP_INI_ALL
&ini.php.constants;
以下に設定ディレクティブの簡単な説明を示します。 error_reporting integer エラー出力レベルを設定します。パラメータは、あるビットフィールドを表 す整数か定数名で指定します。このerror_reportingのレベルと定数は、 定義済の定数および &php.ini;に記述されています。 実行時に設定するには、 error_reporting 関数を指定してください。 display_errors ディレクティブも参照してください。 PHP 4 と PHP 5 のデフォルトは E_ALL & ~E_NOTICE です。 この設定はE_NOTICEレベルのエラーは出力されません。 開発時にはこのエラーを表示させたい場合もあるかもしれません。 開発時にE_NOTICEを有効にすることにはいくつ かの利点があります。デバッグのために、NOTICE メッセージはコード の中のバグの可能性について警告を与えます。例えば、代入されていな い値を使用した場合は、警告を発生します。 これは、書き間違いを見付け、デバッグの時間を節約するために非常 に有用です。NOTICEメッセージは、好ましくないコードに警告します。 例えば、$arr[item]$arr['item'] と書く方が好ましいです。 これは、PHPが "item" を定数として取り扱うためです。 定数でない場合、PHPは配列の添字用の文字列と判断します。 PHP 5では新しいエラーレベルE_STRICTを使用できます。 PHP 5.4.0 より前のバージョンの場合は E_ALLE_STRICT が含まれないため、 PHP < 5.4.0 では明示的にこのエラーレベルを設定する必要があります。 開発中に E_STRICT を有効にすることはいくつかの利点があります。 STRICT メッセージの提案に従えば、コードの相互運用性を高めて将来のバージョンでも動くようする助けとなります。 メッセージに含まれる内容は、静的でないメソッドを静的に呼び出していたり 利用中のトレイトで定義しているプロパティをクラス定義でも行っていたりといった内容です。 また、PHP 5.3 より前のバージョンでは、 非推奨の機能 (インスタンス化の際にオブジェクトを参照で代入するなど) を使ったときにも E_STRICT エラーが発生していました。 PHP 定数の、PHP 以外での使用 PHP の定数を、httpd.conf など PHP の外部で使用しても何の意味もありません。外部で使用する場合には、 integer 型の値を指定しなければなりません。 また、エラーレベルはこれからも追加されることがあるので、 最大値 (E_ALL に対応する値) は変わる可能性があります。そこで、E_ALL を指定する場面では 2147483647 (E_ALL だけではなくすべてのエラーを含める) のような数を指定するようにしましょう。 これは現状の全ビットに対応した上で、かつ値が将来追加された場合にも対応できます。 display_errors string エラーをHTML出力の一部として画面に出力するかどうかを定義します。 "stderr" を指定すると、エラーの内容を stdout (標準出力) ではなく stderr (標準エラー出力) に送ります。この値は PHP 5.2.4 以降で使用可能です。それより前のバージョンでは、 このディレクティブは boolean 型でした。 開発をサポートする仕組みであり、本番のシステムでは 使用すべきではありません (例えばインターネットに接続されたシステムなど)。 display_errors は実行時にも設定可能(ini_set 関数を用いて)ですが、スクリプトが致命的(fatal)なエラーを発生した場合は その設定は反映されません。なぜなら、要求されたアクションは 実行されなかったからです。 display_startup_errors boolean display_errorsをonにした場合でも、PHPの起動シーケンスにおいて発 生したエラーは表示されません。デバッグ時を除き、 display_startup_errorsをoffにしておくことが強く推奨されます。 log_errors boolean エラーメッセージを、サーバーのエラーログまたはerror_logに記録するかどうかを指定 します。このオプションはサーバーに依存します。 実用Webサイトではエラー表示を行う代わりにエラーを記録することを 強く推奨します。 log_errors_max_len integer log_errorsの最大長をバイト単位で設定します。 error_log には、 この設定で情報が追加されます。デフォルトは 1024 で、0 を指定すると 最大長の制限は全く適用されなくなります。 この長さはエラーログへの記録や エラーの表示、そして $php_errormsg に適用されます。 &ini.shorthandbytes; ignore_repeated_errors boolean 繰り返されるメッセージを記録しません。エラーの繰り返しは、 ignore_repeated_sourceが trueに設定されるまで同じファイルの同じ行で発生します。 ignore_repeated_source boolean メッセージの繰り返しを無視する場合にメッセージのソースを無視しま す。この設定をOnにすると、異なるファイルまたはソース行からの同じ エラーメッセージの繰り返しを記録しなくなります。 report_memleaks boolean このパラメータを On (デフォルト) にすると、Zend メモリマネージャーが検出した メモリリークの報告を表示します。この報告は、Posix プラットフォームでは標準エラー出力に送られます。 Windows では、デバッガに OutputDebugString() を使って送られ、 DbgView のようなツールで見ることができます。 このパラメータが使えるのはデバッグビルドだけであり、かつ error_reporting で E_WARNING を有効にしている場合のみです。 track_errors boolean 有効にした場合、直近のエラーメッセージが、 $php_errormsg 変数に常に代入されます。 html_errors boolean エラーメッセージのHTMLタグをオフにします。htmlエラー用の新しい形 式では、ユーザーがエラーまたはエラーを発生した関数を説明するページ に導くようクリック可能なメッセージを出力します。これらのリファレ ンスは、docref_root およ び docref_extの設定に依存 します。 xmlrpc_errors boolean 通常のエラー報告を無効にし、XML-RPC 形式のエラーメッセージとします。 xmlrpc_error_number integer XML-RPC の faultCode 要素の値として使用します。 docref_root string 新しいエラーフォーマットはエラーやエラーの原因となった関数に関するマニュアル のページの情報を含んでいます。マニュアルのページによっては母国語でダウンロードが 可能であり、このiniディレクティブをマニュアルのローカルコピーのURLにセット することができます。 マニュアルのローカルコピーが "/manual/" でアクセスできるとすると、単に docref_root=/manual/とするだけです。 ローカルコピーのファイルの拡張子はdocref_ext=.html で指定できます。拡張リファレンスを使用することもできます。例えば docref_root=http://manual/en/または docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon&url=http%3A%2F%2Fwww.php.net%2F"が使用できます。 ほとんどの場合 docref_root の値の最後を "/" にしようと思うでしょう。 しかし上の二つ目の例を見ではその必要はありません。 docref_ext string docref_rootを参照して下さ い。 docref_extの値はドット "." で始まる必要があります。 error_prepend_string string エラーメッセージの前に出力する文字列。 error_append_string string エラーメッセージの後に出力する文字列。 error_log string スクリプトエラーが記録されるファイル名です。 ファイルはウェブサーバーユーザーで書き込めなければなりません。 syslog が指定されると、エラーはファイルではなく システムロガーに送られます。これは Unix では syslog(3) であり Windows NT ではイベントログのことです。システムロガーは Windows 95 ではサポートされていません。 syslog も参照してください。 このディレクティブが設定されていない場合、エラーは SAPI エラーロガーに送信されます。これは、例えば Apache のエラーログ、 あるいは CLI なら stderr になります。 error_log も参照ください。