WordPress - PHP5.1.0以降はタイムゾーンの設定注意!

Updated:


PHP5.1.0以降では「date_default_timezone_set」関数で無効なパラメータを指定するとエラー(正確にはE_NOTICE(エラーを発しうる状況))となります。 (参照 → PHP: date_default_timezone_set - Manual) 最近のPHPなら大体5.1.0より新しいバージョンだと思います。(当方のサーバはPHP5.3.3)

WordPressのアクセスカウンター用プラグイン「CounterizeII」でUTCとの9時間の時差による不具合を解消するために、「wp-settings.php」内で

date_default_timezone_set( 'UTC+9' );

などとしている方も多いと思います。

しかしこれでは、何らかの処理で「wp-settings.php」が呼び出された際、以下のようにApacheのエラーログにエラーとして出力されるはずです。

[Fri Aug 05 20:27:36 2011] [error] [client 192.168.11.13] PHP Notice:  date_default_timezone_set(): Timezone ID 'UTC+9' is invalid in /var/www/wordpress/wp-settings.php on line 37, referer: http://www.mk-mode.com/wordpress/wp-admin/edit.php

PHP: サポートされるタイムゾーンのリスト - Manual」によると’UTC+9’は有効なパラメータの一覧に存在しません。 正しくは’Asia/Tokyo’です。

ですから、「wp-settings.php」内では、

date_default_timezone_set( 'Asia/Tokyo' );

と設定しなければなりません。

以前の設定のまま、PHPだけがバージョンアップされる状況では、ある種の罠とも言えます。 ただ、現時点ではエラーメッセージは出力されるものの動作は正常のようです。 が、あくまでも旧バージョンとの互換を考えての猶予期間によるものだと考えます。

サーバ運営・管理者は日々ログのチェックを行うようにしなければなりません。 知らないうちに時代の流れに取り残され、取り返しのつかない不具合を発生させるかもしれません。

以上。





 

Sponsored Link

 

Comments