実行時設定
php.ini の設定により動作が変化します。
名前 | デフォルト | 変更可能 | 変更履歴 |
---|---|---|---|
error_reporting | NULL | INI_ALL |
|
display_errors | "1" | INI_ALL |
|
display_startup_errors | "1" | INI_ALL |
PHP 8.0.0 より前のバージョンでは、デフォルト値は "0" でした。
|
log_errors | "0" | INI_ALL |
|
log_errors_max_len | "1024" | INI_ALL |
PHP 8.0.0 以降は意味をなさなくなり、PHP 8.1.0 で削除されました。 |
ignore_repeated_errors | "0" | INI_ALL |
|
ignore_repeated_source | "0" | INI_ALL |
|
report_memleaks | "1" | INI_ALL |
|
track_errors | "0" | INI_ALL |
PHP 7.2.0 以降で非推奨になり、PHP 8.0.0 で削除されました。 |
html_errors | "1" | INI_ALL |
|
xmlrpc_errors | "0" | INI_SYSTEM |
|
xmlrpc_error_number | "0" | INI_ALL |
|
docref_root | "" | INI_ALL |
|
docref_ext | "" | INI_ALL |
|
error_prepend_string | NULL | INI_ALL |
|
error_append_string | NULL | INI_ALL |
|
error_log | NULL | INI_ALL |
|
error_log_mode | 0o644 | INI_ALL |
PHP 8.2.0 以降で有効です。 |
syslog.facility | "LOG_USER" | INI_SYSTEM |
PHP 7.3.0 以降で有効です。 |
syslog.filter | "no-ctrl" | INI_ALL |
PHP 7.3.0 以降で有効です。 |
syslog.ident | "php" | INI_SYSTEM |
PHP 7.3.0 以降で有効です。 |
以下に設定ディレクティブの簡単な説明を示します。
-
error_reporting
int -
エラー出力レベルを設定します。パラメータは、あるビットフィールドを表 す整数か定数名で指定します。このerror_reportingのレベルと定数は、 定義済の定数および php.iniに記述されています。 実行時に設定するには、 error_reporting() 関数を指定してください。 display_errors ディレクティブも参照ください。
デフォルト値は
E_ALL
です。PHP 8.0.0 より前のバージョンでは、
E_ALL
& ~E_NOTICE
& ~E_STRICT
& ~E_DEPRECATED
でした。 これは、E_NOTICE
、E_STRICT
、 そしてE_DEPRECATED
レベルのエラーが出力されないということです。注意: PHP 定数の、PHP 以外での使用
PHP の定数を、httpd.conf など PHP の外部で使用しても何の意味もありません。外部で使用する場合には、 int 型の値を指定しなければなりません。 また、エラーレベルはこれからも追加されることがあるので、 最大値 (
E_ALL
に対応する値) は変わる可能性があります。そこで、E_ALL
を指定する場面では2147483647
(E_ALL
だけではなくすべてのエラーを含める) のような数を指定するようにしましょう。 これは現状の全ビットに対応した上で、かつ値が将来追加された場合にも対応できます。 -
display_errors
string -
エラーをHTML出力の一部として画面に出力するかどうかを定義します。
"stderr" を指定すると、エラーの内容を
stdout
(標準出力) ではなくstderr
(標準エラー出力) に送ります。注意:
開発をサポートする仕組みであり、本番のシステムでは 使用すべきではありません (例えばインターネットに接続されたシステムなど)。
注意:
display_errors は実行時にも設定可能(ini_set() 関数を用いて)ですが、スクリプトが致命的(fatal)なエラーを発生した場合は その設定は反映されません。なぜなら、要求されたアクションは 実行されなかったからです。
-
display_startup_errors
bool -
display_errorsをonにした場合でも、PHPの起動シーケンスにおいて発 生したエラーは表示されません。デバッグ時を除き、 display_startup_errorsをoffにしておくことが強く推奨されます。
-
log_errors
bool -
エラーメッセージを、サーバーのエラーログまたはerror_logに記録するかどうかを指定 します。このオプションはサーバーに依存します。
注意:
実用Webサイトではエラー表示を行う代わりにエラーを記録することを 強く推奨します。
-
log_errors_max_len
int -
log_errorsの最大長をバイト単位で設定します。 error_log には、 この設定で情報が追加されます。デフォルトは 1024 で、0 を指定すると 最大長の制限は全く適用されなくなります。 この長さはエラーログへの記録や エラーの表示、そして $php_errormsg に適用されます。 しかし、明示的に呼び出される error_log() のような関数には適用されません。
intを使用する際、 その値はバイト単位で測られます。 この FAQ に記載された 短縮表記を使用することも可能です。 -
ignore_repeated_errors
bool -
繰り返されるメッセージを記録しません。エラーの繰り返しは、 ignore_repeated_sourceが trueに設定されるまで同じファイルの同じ行で発生します。
-
ignore_repeated_source
bool -
メッセージの繰り返しを無視する場合にメッセージのソースを無視しま す。この設定をOnにすると、異なるファイルまたはソース行からの同じ エラーメッセージの繰り返しを記録しなくなります。
-
report_memleaks
bool -
このパラメータを On (デフォルト) にすると、Zend メモリマネージャーが検出した メモリリークの報告を表示します。この報告は、Posix プラットフォームでは標準エラー出力に送られます。 Windows では、デバッガに OutputDebugString() を使って送られ、 » DbgView のようなツールで見ることができます。 このパラメータが使えるのはデバッグビルドだけであり、かつ error_reporting で
E_WARNING
を有効にしている場合のみです。 -
track_errors
bool -
有効にした場合、直近のエラーメッセージが、 $php_errormsg 変数に常に代入されます。
-
html_errors
bool -
有効にすると、エラーメッセージにHTMLタグが含まれるようになります。 HTML形式のエラーメッセージでは、ユーザーがエラーまたはエラーを発生した関数を説明するページ に導くようクリック可能なメッセージを出力します。これらのリファレ ンスは、docref_root およ び docref_extの設定に依存 します。
無効にすると、エラーメッセージは単なるプレーンテキストになります。
-
xmlrpc_errors
bool -
有効にすると、通常のエラー報告を無効にして XML-RPC 形式のエラーメッセージとします。
-
xmlrpc_error_number
int -
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 の値の最後を
"/"
にしようと思うでしょう。 しかし上の二つ目の例を見ではその必要はありません。