C-limber's highへようこそ。
C-limber's highは山登りのサイトではなく、福岡システム開発WEB制作会社 C-limber(クライマー)株式会社の技術メモブログです。
福岡システム開発ホームページ制作をお探しの方はお気軽にご相談下さい。

2013年11月22日金曜日

[php][Pear] default_timezone がずれる

19:56 Posted by 井口達也 , No comments
PearのMail_Queueを使って、
大量のメールを送信出来るものを作ろうと思ってたときに起こった事。

テストでcronでメールキューを作ると同時に送信する => 問題なく送信。

別に管理画面からキュー登録、その後cronがキュー送信 => 送れない。

本当に原因がわからなくてPearのソース追っかけて
dumpしまくりながら調べた結果・・

原因はtimezoneにありました。

php.iniが Asia/Tokyo にセットされていて安心していたのに、
cronでメールキューを処理する時点でのtimezoneが Europe/Berlin になってました。

なんでなのかは調査が必要ですが、
とりあえずapache経由でのアクセスでは無い時は、(ターミナルとかでやってる時)
apacheが読んでるphp.iniとは違うものを読み込んでいるいる可能性がある。
っていうのを思い知りました。

ちなみにtimezoneを設定するときは、

// タイムゾーンを設定する
date_default_timezone_set('Asia/Tokyo');

// タイムゾーンを表示させる
echo date_default_timezone_get();



Pear+PHP5 は strict_standard(値か参照かの警告) やら deprecated(非推奨) やら エラーでまくるし嫌ですね・・



0 コメント:

コメントを投稿