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だけがバージョンアップされる状況では、ある種の罠とも言えます。 ただ、現時点ではエラーメッセージは出力されるものの動作は正常のようです。 が、あくまでも旧バージョンとの互換を考えての猶予期間によるものだと考えます。
サーバ運営・管理者は日々ログのチェックを行うようにしなければなりません。 知らないうちに時代の流れに取り残され、取り返しのつかない不具合を発生させるかもしれません。
以上。
Comments