-
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 の値の最後を "/"
にしようと思うでしょう。
しかし上の二つ目の例を見ではその必要はありません。
-
docref_ext
string
-
docref_rootを参照して下さ
い。
注意:
docref_extの値はドット "."
で始まる必要があります。
-
error_prepend_string
string
-
エラーメッセージの前に出力する文字列。
エラーメッセージを画面に表示する時にだけ使います。
主な目的は、
エラーメッセージの先頭に追加のHTMLマークアップを付加できるようにすることです。
-
error_append_string
string
-
エラーメッセージの後に出力する文字列。
エラーメッセージを画面に表示する時にだけ使います。
主な目的は、
エラーメッセージに追加のHTMLマークアップを付加できるようにすることです。
-
error_log
string
-
スクリプトエラーが記録されるファイル名です。
ファイルはウェブサーバーユーザーで書き込めなければなりません。
syslog
が指定されると、エラーはファイルではなく
システムロガーに送られます。これは Unix では syslog(3) であり
Windows ではイベントログのことです。
syslog も参照ください。
このディレクティブが設定されていない場合、エラーは SAPI
エラーロガーに送信されます。これは、例えば Apache のエラーログ、
あるいは CLI なら stderr
になります。
error_log も参照ください。
-
error_log_mode
int
-
error_log で設定されたファイルのモード(パーミッション)。
-
syslog.facility
string
-
どの種類のプログラムがメッセージを記録するのかを指定します。
error_log が "syslog" の場合にだけ有効です。
-
syslog.filter
string
-
記録されたメッセージをフィルタリングするフィルターの種類を指定します。
フィルターで許可された文字はそのまま記録されますが、許可されていない文字は
\x
で始まる十六進表記に変換して記録されます。
-
all
–
ロギングされる文字列は改行文字で分割され、すべての文字は変更せずに渡されます。
-
ascii
–
ロギングされる文字列は改行文字で分割され、
印刷可能な 7bit ASCII 文字以外の文字は全てエスケープされます。
-
no-ctrl
–
ロギングされる文字列は改行文字で分割され、
印刷可能な文字以外は全てエスケープされます。
-
raw
–
全ての文字はシステムロガーに変更せずに渡されます。
改行文字で分割されることもありません(PHP 7.3 より前の振る舞いと同等です)
この設定は、error_log を "syslog" に設定し、
syslog をコールした場合にのみ影響します。
注意:
raw
フィルタタイプは、PHP 7.3.8 および PHP 7.4.0 以降で使えます。
このディレクティブは、Windows ではサポートされていません。
-
syslog.ident
string
-
すべての文字列の先頭に追加する識別用文字列を指定します。
error_log が "syslog" の場合にだけ有効です。