現役プログラマのWordPressカスタマイズ相談

WordPress(ワードプレス)のお悩み、うまくいかなくてお困りなこと、不具合調査、新規制作依頼まで、ウェブアプリケーションエンジニアがあなたをサポートします。

WordPressでerror_log出力の際のtimezone設定

f:id:jsaz:20170302184436j:plain:w450

WordPressでerror_logでログを確認したいのに、
php.iniの設定を何度見直してもUTCで出てしまう。。。


いろいろ調べた結果、php.iniの設定ではなくwp-settings.phpの設定でした。

wp-settings.phpの修正

<?php// WordPress calculates offsets from UTC.
date_default_timezone_set( 'UTC' );


ここをUTCAsia/Toky で解決しました。
現在日時とエラーログを確認します。

$ date
Thu Mar  2 18:13:09 JST 2017
$ cat php_errors.log
[02-Mar-2017 09:12:03 UTC] debug
[02-Mar-2017 09:13:11 UTC] debug
[02-Mar-2017 09:13:12 UTC] debug
[02-Mar-2017 09:14:13 UTC] debug
[02-Mar-2017 18:14:56 Asia/Tokyo] debug
[02-Mar-2017 18:14:58 Asia/Tokyo] debug
[02-Mar-2017 18:15:12 Asia/Tokyo] debug
[02-Mar-2017 18:18:49 Asia/Tokyo] debug
[02-Mar-2017 18:19:00 Asia/Tokyo] debug


ちなみに、phpのtimezone設定はUTCでもWordPressを通すerror_logであれば問題なし。

php.iniのtimezone確認

$ php -i | grep timezone
Default timezone => UTC
date.timezone => UTC => UTC


なので逆パターンもありえます。
php.ini: Asia/Tokyo
wp-settings: UTC
この場合はエラーログはUTCで出てしまうので注意が必要です。