タグ

セッションと設定に関するwogawaraのブックマーク (3)

  • PHP のセッション寿命の設定

    PHP のセッションの寿命 (有効期限) に関する仕組みはややわかりにくく、いつもすぐに忘れてしまうのでメモしておく。 以下、PHP がセッションデータをどのように格納し、ブラウザからのリクエストによってどのようにデータを返すか、仕組みを理解していることが前提。 (1) セッションの保持方法の選択 ブラウザ側でのセッションIDの保持のしかたによってやや事情が異なる。 ブラウザがセッションを維持する方法は、セッションIDをパラメータ渡しする方法と、ブラウザの Cookie に持つ方法の2つがある。 セッションIDをブラウザの Cookie として持つには、たとえば以下のように設定する。 ini_set('session.use_cookies', 1); ini_set('session.use_only_cookies', 1); ini_set('session.use_trans_si

    PHP のセッション寿命の設定
  • symfonyのユーザ自動ログアウトとセッションタイムアウトについて - ゆっくり*ゆっくり

    これは僕がアホというか、単純にわかってなかっただけの話なのですが。 symfonyでは一定時間経つとユーザをログアウトさせるという設定が可能です。アプリケーションのfactories.ymlでuserのパラメータにtimeoutという値が設定でき、そこに秒数を指定するとできるようになります。 sfBasicSecurityUserクラスのinitialize()メソッドの中で、現在の時間と最終アクセス時の差分が設定したtimeoutよりも大きい場合、自動的にログアウトする処理を行っています。 その際にiniのsession.gc_maxlifetimeという値をユーザの自動ログアウトと同じ時間に設定しています。 session.gc_maxlifetimeという設定はセッションをクリアするまでの秒数を設定するものなのですが、てっきりここでセッションの有効時間もちゃんと設定してくれてすごいな

    symfonyのユーザ自動ログアウトとセッションタイムアウトについて - ゆっくり*ゆっくり
  • PHPセッションのGCを非同期にする

    Ruby on Rails, Web Services, Software Development, Startups 概要 PHPのセッションハンドラをデフォルトで使っている場合のガーベージコレクタ(GC)の話。PHPはサーバ上で保存してあるセッション情報を保存してあるファイルをを定期的に削除している。削除するタイミングはPHPが起動する時、HTTPリクエストまたはコマンドラインからPHPが起動した際に一定の確率でGCが起動するようになっている。Javaのアプリケーションサーバならメモリ上にJVMが常駐しているからプログラムの起動とは非同期にできるが、PHPは同期で処理している。そのため、PHPではGCが起動したときにプログラムの実行時間が長ってしまう。よって、大規模サイトになったときには必然的にセッションファイルが扱うセッションが多くなるため、GCにかかる時間が長くってしまうから、同期

    PHPセッションのGCを非同期にする
  • 1