home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

日記/2008/11/29/YakiBikiのセッション管理、自前にしようかどうしようか。

日記/2008/11/29/YakiBikiのセッション管理、自前にしようかどうしようか。

日記 / 2008 / 11 / 29 / YakiBikiのセッション管理、自前にしようかどうしようか。
id: 15 所有者: msakamoto-sf    作成日: 2008-11-29 00:13:22
カテゴリ: YakiBiki 

どうも・・・自分のサイトにログインしてると、次の日とかになるとセッションが消えてしまうという現象に遭遇した。
セッションのexpireは2週間に設定しているし、FireFoxでCookieを確認してみても有効期限は2週間加算された日付になっていて問題はない。
ここ数日、自分のサイトでYakiBikiを使い始めて初めて遭遇したのだけれど、確実に再現できる方法が分からない。
ローカルでテストしている環境ではずーっとセッションCookieが持続していたのに。

で、いろいろローカルとサイト(レンタルサーバ)のsession関連の設定値を見比べていたら、session.gc_divisorがローカルは1000になっていたが、レンタルサーバは100になっていた。
あとsession.gc_maxlifetimeがローカル・レンタルサーバとも1440になっていた。

で、試しにレンタルサーバの方の session.gc_maxlifetime をセッションCookieのexpireに合わせて2週間の秒数にしてみたところ・・・どうにか維持できているっぽい。

なんだけれど、これやってしまうとguestユーザ相当に発行したセッションデータファイルが大量に残留してしまう。gc_divisorの頻度をいくら上げても、2週間経過したファイルでないと削除されないので。

弱った。

こうなったらXhwlayのBookmarkのGCと同じように、自前で session.save_handler を実装した方が良いかもしれない。発生頻度は1/20位にして、但しguest相当のセッションは有効期限に関係なく削除する、みたいにしないとディスクの無駄使いになる。

当面は session.gc_maxlifetime を24時間程度にして、YakiBikiの方の _YB('session.lifetime') には0を設定してブラウザを閉じるまでにしておくべきか。元々この前身となったPHPスクリプトでも、セッションはブラウザを閉じるまでにしておいて、一度ブラウザウインドウでログインしたら使い終わるまで(= PCの電源OFFるかブラウザが重たくなりすぎりか)開きっぱなしにする使い方をしていた。うーん。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2008-11-29 00:27:10
md5:ce9c59ab299736ad2eea4e79470a87e7
sha1:a640181086a998f6d61b660fe94438c90d170a43
コメント
コメントを投稿するにはログインして下さい。