PR

[PHP] タイムゾーン設定が有効にならない謎

BlueOnyx でテストサーバーを構築して連続的にCMS を再評価している。SOY CMS2 を試用したとき、タイムゾーン関係のエラーが雪崩のごとく表示された。

エラー例

Warning: date_default_timezone_get(): 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.

スポンサードリンク

各種設定方法

php.ini で設定する

date.timezone="Asia/Tokyo"

.htaccess で設定する

php_value date.timezone "Asia/Tokyo"

php で設定する

date_default_timezone_set('Asia/Tokyo');

有効にならない不思議

“Etc/GMT+9″というタイムゾーンも使えるようなことがPHPマニュアルにあるんだけど、 実際はdate_default_timezone_set()、php.iniどちらに設定しても機能しなかった。 php_timezonedb.dllとか入れてみたけど駄目。 謎。
(「タイムゾーンの設定 – はらぐろブログラマン」より引用)

上記が同じ事を指しているか不明だが、少なくとも筆者環境では(BlueOnyx 上の)最上位php.ini を書き換えてもサイトごとのphp.ini を書き換えても.htaccess を書き換えても、さらにhttpd をリロードや再起動しても有効にはならなかった。

結局は(SOY CMS2 が書きだす設定ファイル)db.conf.php に設定を書き込んだところ、警告が出なくなった。もしこのエラーに遭遇してどの手を使っても解決できないときは読み込まれるどこかしらのファイルに直接書き込んでしまうのも手かもしれない。

# ところで、真偽は不明だが、タイムゾーン設定をすることでphp が少し早くなるという情報があった

参考文献

コメント