今日、現在関わっている仕事のクライアントさんのテストサーバーにCakePHPの本体をアップロードしたんですけど、そしたら見たことないエラーが出ました。
Warning: date() [http://php.net/function.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’
どうやらタイムゾーンが設定されていないせいでdate()関数が使えませんよ~ってなことらしいです。
PHP5.1以降は、デフォルトのタイムゾーンが設定されていないとこんなエラーが出るみたいですね。今まで見たことなかったってことは、今まで関わってきたサーバーはどれもちゃんとそのデフォルトのタイムゾーンが設定されていたってことなんですかね。
これを解決するには、php.iniの設定を書き換えるか、date_default_timezone_set()関数を使うと良いようです。
//php.ini
date.timezone = Asia/Tokyo
//date_default_timezone_set()を使う場合
date_default_timezone_set('Asia/Tokyo');
こういうときはphp.iniを直接書き替えたいところなんですけど、すでに動いているサイトのphp.iniを書き換えるのはちょっとあれなので、てゆーか、どこにphp.iniファイルがあるか分からなかったので、date何ちゃら関数の方で対処しました。
bootstrap.phpにでも書いとけば大丈夫かなって思ったんですけど、どうやらbootstrap.phpが呼ばれる前にdate()関数が発動している部分があるようで、仕方ないのでindex.phpに書きました。
いいんかいな……?
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。