[PEAR] Strict、Deprecated error や Warning を表示させない設定方法

PHPのPEARを使い始めたら、早速エラーが大量に出てきました。

エラーの出力設定を変更できるようなので

Deprecated: Assigning the return value of new by reference is deprecated in ~

とか

Strict Standards

というエラーが出ます。

PHP: error_reporting – Manual

デフォルトの設定では以下のようになっています。

error_reporting = E_ALL | E_STRICT

これを以下のように、E_STRICT と E_DEPRECATED のエラーが出ないように設定すればOKです。

error_reporting = E_ALL & ~E_DEPRECATED

設定後に、Apacheを再起動して設定を反映します。

# /usr/local/apache2/bin/httpd -k graceful

error_reporting の設定が反映されているかの確認は # php -i | less コマンドで

Configuration File (php.ini) Path => /usr/local/lib
Loaded Configuration File => (none)

Loaded Configuration File が none となっているため、php.ini を読み込めていないようです。

何故か、僕は/usr/local/lib/php/php.ini に置いていたため読み込めていませんでした。

ちゃんと/usr/local/lib/ディレクトリ直下にphp.ini を移動させると、設定が反映されているようです。

Configuration File (php.ini) Path => /usr/local/lib
Loaded Configuration File => /usr/local/lib/php.ini
# php -i | grep error_reporting
error_reporting => 22527 => 22527

以上です。

【参考】
php5.3でDeprecatedエラーに遭遇 « kawama.jp

神経研メディアセンター: PHP5の安全設定

PHP5でPEAR::DBを教本通り使ったらStrict Standardsエラーが発生した件 – TMD45LOG!!!

PEARの呼び出しなどで出るStrict errorやWarningを一時的に消す方法 – Layer8 Reference

php5.3 Assigning the return value of new by reference is deprecated – 為せば成る・・・かもしれない