サバとエンガワ

サーバーエンジニアしてます、地方に住んでます、、、

【スポンサーリンク】

CentOS6で動いたPHPのシステムをCentOS7に移行したら「Strict Standards」エラーが出力した

CentOS6は2020年末でサポート終了するため、CentOS7にシステムを移行しました

※CentOS6のサポート終了時期は下記ブログを参照 

www.server-engineer.net

 

CentOS7に移行したシステムを動作させると「Strict Standards」エラーが出力

 

CentOS6の時は出ていなかったのに?なぜか調査しました

f:id:adakkuma:20180518120540j:plain

 

調査

PHPのエラー設定が怪しいと思い、 error_reporting を確認

【CentOS6】

error_reporting = E_ALL

【CentOS7】

error_reporting = E_ALL

→CentOS6 と CentOS7 は、どちらも同じ設定値でした

 

phpのバージョンを確認

【CentOS6】

php 5.3

【CentOS7】

php 5.4

→phpのバージョンに差があり。error_reportingの仕様が変更されているか確認

 

PHP 5.3.X と PHP 5.4.X の差分

PHP: その他の変更 - Manual

→このページを確認すると error_reporting の仕様が変わったことを確認

 →「error_reporting において、 E_ALL に E_STRICT を含むようになりました。」

 

結論

「Strict Standards」エラーは E_STRICT があることで出るエラーであり、CentOS7でPHP5.4になり、E_ALLにE_STRICTが含まれるようになったため。

error_reporting の設定値を下記に変更することで、出力されなくなったことを確認

 error_reporting = E_ALL & ~E_STRICT

 

まだCentOS6を使用してシステムを動作させているところもあると思います。CentOS7へ移行する際のトラブル解決の一つとして参考にしていただければと思います

 

では