PHP - タイムゾーンエラー!

Updated:


当方の自宅サーバ(ScientificLinux6.0)で何か動きが重いことがあるのでログをチェックしてみると、 apacheのエラーログに以下のようなエラーが非常に大量に出力されていました。 ログローテーションしているけどファイルが2GB以上になっていて、Tripwireのファイル改ざんチェックでも引っかかっています。

[Sun Jul 03 03:55:52 2011] [error] [client 999.999.999.999] PHP Warning:  strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Tokyo' for 'JST/9.0/no DST' instead in /var/www/wordpress/wp-includes/functions.php on line 33
[Sun Jul 03 03:55:52 2011] [error] [client 999.999.999.999] PHP Warning:  date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Tokyo' for 'JST/9.0/no DST' instead in /var/www/wordpress/wp-includes/functions.php on line 105

調べてみるとPHPのドキュメントに以下のような記述がありました。

date.timezone string

PHP 5.3.0 より前のバージョンで、 環境変数 TZ が設定されていない場合に 全ての日付/時刻関数で使用されるデフォルトのタイムゾーン (PHP 5.3.0 以降では 環境変数 TZ を参照しなくなりました)。 優先順については、date_default_timezone_get() のページで解説されています。サポートしているタイムゾーンについては サポートされるタイムゾーンのリスト を参照ください。

解決策を調べてみると、php.ini内の”date.timezone”部分を以下のようにすればよいようです。

date.timezone = Asia/Tokyo

(date_default_timezone_set関数を設定する方法もあるようですが未確認)

これでログが肥大化しなくなり、今までより動作が軽くなったようにも感じます。

以上。





 

Sponsored Link

 

Comments