web-dev-qa-db-ja.com

PHP非推奨の警告と通知を無効にする

私はPHPを使用および構成してきましたが、今では奇妙な問題に悩まされているので、皆さんに助けを求めます。

運用サーバーで非推奨の警告と通知を表示したくないのですが、たとえば構文エラーなどの他のエラーメッセージを表示したいと考えています。

PHP 5.3.3-1ubuntu9.3をUbuntu 10.10のSuhosin-Patchで実行しています。

/etc/php5/Apache2/php.iniに次の行を追加しました。

error_reporting = E_ALL&〜E_DEPRECATED&〜E_NOTICE

ウェブサーバーを再起動しました。仮想ホストの設定では、php_admin_valueがこの設定に干渉することはなく、フォルダーには.htaccessファイルがありません。

それにもかかわらず、非推奨の警告と通知が引き続き表示されます。

誰でも手伝ってくれる?前もって感謝します!

5
stivlo

まず、この質問に答えてくれたbinfalseに感謝したいのですが、私の問題は彼の提案で解決されず、通知が引き続き表示されました。

これは、PHPに構成を設定できる場所がいくつかあるためです。これらの設定の優先順位はわかっていましたが、実験的にテストして、これから行う内容を確認することにしました。この答えで。

よりグローバルなものから具体的なものまで、これらの場所のリストを次に示します。リストの下の各設定は、前の設定を上書きできます。

  1. php.ini構成ファイル。 Ubuntuの場合は2つあります。/etc/php5/Apache2/php.iniは、php Apacheモジュールに使用されるものです。すべての仮想ホストにグローバルな影響を与えます。

  2. conf.dディレクトリ。実際、すべてのインストールがこのモジュール化された構成を持つわけではありませんが、Ubuntuの場合、Apacheモジュールの/etc/php5/Apache2/conf.dにあります。このディレクトリに追加されたファイルは、php.iniよりも高い優先順位でメインのphp.ini設定に追加されます。つまり、ここでの設定はphp.iniの設定よりも優先されます。error.iniの追加をテストしました。それはすべての仮想ホストにグローバルな影響を与えます。

  3. Apache仮想ホスト構成。通常、/ etc/Apache2/sites-availableで設定され、すべての仮想ホストは異なる設定を持つことができます。 VirtualHostタグ内に「php_value error_reporting」を含めることができます。ここで、valueは定数に対するブール演算の数値結果です。この構成では、実際にはニーモニック定数を使用することはできず、数値のみを使用できます。単一の仮想ホストにのみ影響します。上記の設定を上書きします。

  4. 。htaccess。構成値、特に.htaccessのerror_reporting設定も、3で説明した同じ構文で設定できます。これは、.htaccessが配置されているディレクトリとすべてのサブディレクトリにのみ影響します。上記の設定を上書きします。この場合、Apacheを再起動する必要はありません。

  5. ソースコード。この設定を変更できる最後の場所は、実行されたPHPソースです。使用すると、以前のすべての設定が上書きされます。これがまさに私が直面していたことです。これは、関数を呼び出して設定できます。 "error_reporting()"または "ini_set(" error_reporting "、)"を使用すると、スクリプトが実行されないため、コンパイルエラーが表示される可能性があります。

8
stivlo

/etc/php5/Apache2/php.iniの変数を

error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR

これはエラーのみを表示します。

4
binfalse