session_set_save_handler のバグらしいですよ。

わーい、PHP のバカー。

てか、オレ、ちゃんと調べろ。

ってことで、備忘録も込みでエントリ。

今、ウチの会社のお仕事は思いっきり Web なわけで、言語は PHP なわけで、フレームワークは Ethna なわけで。

んで、セッションを使っている時に問題が起きたわけで。

どんな問題かっつーと、認証とかでログインさせる際に透過ログインを採用しとるんですが、これがどうにも巧く動かないケースが多い。

しかもリダイレクトするとき限定で駄目っぽい。

んで、ウチはサーバの冗長化してるんで、ローカルファイルによるセッションの管理は NG なわけです。

つーことは、memcached とか db とかに書く必要がある、と。

# まぁ、nfs とかって手もあるけどね。

で、ウチは db を採用しました。

ってことは当然 session_set_save_handler 関数を用いて、db に書き込む処理を実装するわけですよ。

そこで問題が発生したわけですな。

結論から言うと、session_set_save_handler 関数はセッション名 (session_name() で取得・設定できるアレね。) が PHPSESSID 固定じゃないと駄目らしいんですわ。

詳しく調べたわけじゃないから何とも言えないけど、どうも destory の時に Fatal を起こす事があるらしいです。

前任者の人も Fatal 起きるかもー、みたいなことをコメントに残してくれていました。

とりあえず急ぎで修正しておこう。

これで解決すると良いなぁ…。

あ、詳しくは、http://hain.jp/index.php/tech-j/2006/08/11/session_set_save_handler_php を参照のこと。

ぎじゅっやさん、ありがとうございました!!w

Parallels 上の CentOS 4.6 Final の時刻がズレる

ってことで、色々調べてみた。

そもそも事の発端は、お仕事で使ってるテンプレートエンジンのコンパイル結果が稀に更新されないことがあったから。

んで、よくよく調べてみると、Parallels Desctop for Mac の上で動いている CentOS 4.6 Final の時刻が恐ろしい勢いでズレている。

どうやら 2 倍の速度で時間が増えている感じ。

おまえは、どこぞの大佐か?と。赤いのか?と。

まぁ、それでネットを徘徊していたところ、どうも、この間入った Intel Mac に於ける EFI のアップデートが問題なんじゃないか疑惑が浮かぶ。

ってか、それくらいしか原因無いしね。

っつーことで、諦めて ntp サーバに負荷をかける事に決めた。

# いや、本当にごめんなさい。

Parallels が対応するまではこんな感じなのかなぁ?

# なお、原因が EFI のアップデートじゃなかったらご愛嬌ってことで。

しねまでぃすぷれい買った

奥様との協議の結果、Apple 純正の Cinema Display 23inch を購入しました。

いやー、念願叶ったり!

これで、ボクの仕事環境のほぼ全てが整いました。

マシン
MacBook 白
キーボード
Apple Wireless Keybord
マウス
Apple Wireless Mighty Mouse
モニタ
Apple Cinema Display 23inch

うわ、めっちゃ純正ばっかり…。

こうして一人の信者が生成されましたとさ。めでたしめでたし。

Web サービスに於けるデバッグ方法とか

ボクが関わっているサービスってのはガッツリ Web サービスなわけです。

が、本番リリースされているシステムに於いて変数のデバッグとかをサックリやりたいなぁとか思うわけですよ。

んで、今日思い付いたのが…

続きを読む

PHP のオブジェクトコピーについて

いや、知らなかったオレが悪いんだけどね。

PHP の clone キーワードっていわゆるディープコピーを行うためのモノなわけですが、この子って再帰的にはコピーしないんですね。

また一つ賢くなりましたよ。

もうね、なんかね、どこまでオレは知識が浅いんだ、と…orz