php エラー起動設定
PHP エラー メッセージ
2008 年 11 月 22 日土曜日 03:16 P.M.
エラー メッセージ レポートのレベルを設定します。
構文: int error_reporting(int [level]);
戻り値: 整数
関数の種類: PHP システム関数
E_NOTICE の意味通常の状況は記録されず、存在しない変数にアクセスしようとしたり、存在しないファイルを表示するために stat() 関数を呼び出したりするなど、プログラムにエラー状況が発生した場合にのみ使用されます。
通常、E_WARNING が表示されますが、プログラムの実行は中断されません。これはデバッグに役立ちます。たとえば、問題のある正規表記を使用して ereg() を呼び出します。
通常、E_ERROR が表示され、プログラムの実行が中断されます。これは、このマスクを使用してメモリ構成やその他のエラーを追跡できないことを意味します。
E_PARSE 構文からエラーを解析します。
E_CORE_ERROR E_ERROR と似ていますが、PHP コアによって引き起こされるエラーは除外されます。
E_CORE_WARNING E_WARNING と似ていますが、PHP コア エラー警告は含まれません。
PHP エラー報告
php.ini ファイルには多くの構成設定があります。 Linux に PHP および Apache 2 をインストールする手順 (「参考文献」を参照) に記載されているように、php.ini ファイルを設定し、適切なディレクトリに配置しておく必要があります。 PHP アプリケーションをデバッグするときに注意すべき構成変数が 2 つあります。これら 2 つの変数とそのデフォルト値は次のとおりです:
ps: 上記の値の一部は間違っている可能性があります。
display_errors = Off
error_reporting = E_ALL
これら 2 つの変数の現在のデフォルト値は、php.ini ファイル内で検索すると見つかります。 display_errors 変数の目的は明らかです。この変数は、エラーを表示するかどうかを PHP に指示します。デフォルト値はオフです。ただし、開発プロセスを容易にするために、この値を On に設定します。
display_errors = On
error_reporting 変数のデフォルト値は次のとおりです。 E_ALL。この設定では、不適切なコーディング方法から無害なヒント、エラーに至るまで、あらゆるものが表示されます。 E_ALL は、ブラウザの出力を混乱させる小さな事柄 (初期化されていない変数など) についてのヒントも画面上に表示するため、開発目的には少し粒度が高すぎます。私が知りたいのはエラーと不適切なコーディング方法だけであり、無害なヒントは知りたいわけではありません。したがって、error_reporting のデフォルト値を次の値に置き換えてください:
error_reporting = E_ALL & ~E_NOTICE
Apache を再起動すると、すべてが設定されます。 。次に、Apache で同じことを行う方法を学びます。
サーバー上のエラー報告
Apache の動作によっては、コンピューター上に複数のバージョンの PHP が存在する可能性があるため、PHP でのエラー報告を有効にしても機能しない場合があります。 Apache は 1 つの php.ini ファイルしか参照できないため、Apache が使用している PHP バージョンを判断することが難しい場合があります。 Apache が自身の設定にどの php.ini ファイルを使用しているかわからないことは、セキュリティ上の問題です。ただし、正しいエラー レベルが設定されるように Apache で PHP 変数を構成する方法があります。
また、これらの構成変数をサーバー側で設定して php.ini ファイルをオーバーライドまたはプリエンプトして、より高いレベルのセキュリティを提供する方法を知っておくとよいでしょう。
Apache を構成する場合、
php.ini ファイルで既に行ったことを行うには、次の行を httpd.conf に追加して、php.ini ファイルをオーバーライドします。
php_flag display_errors on
php_value error_reporting 2039
これにより、php.ini ファイル内の display_errors にすでに設定されているフラグと error_reporting の値が上書きされます。値 2039 は E_ALL および ~E_NOTICE を表します。 E_ALL を使用する場合は、値を 2047 に設定します。繰り返しますが、Apache を再起動する必要があります。
次に、サーバー上でエラー報告をテストします。
出典: http://hi.baidu.com/chinamartin/blog/item/cb138c1a2aa1cefdae5133d8.html