【PHP】セッションタイムアウトの時間を設定する

実際にどの設定でセッションタイムアウトが制御されているのか分からなかったので、調査したときのメモ。

基本はブラウザ側でクッキーを使えないとセッションは使えない。携帯の場合はこちらの記事を参考に。

そのクッキーの有効期限は最初にサーバにアクセスしたときにサーバ側で設定可能。多くのセッション管理のプログラムはセッションスタート時に

session_set_cookie_params($lifetime);

を実行して有効期限を設定している。

デフォルト値はphp.iniにある

session.cookie_lifetime

の設定(秒)。lamppやhttpdのインストール直後は0(ブラウザが閉じるまで有効)となっている。

session.cookie_lifetime = 0
のとき(「セッションクッキー」というらしい)はどの設定でセッションを管理しているかというと、それが

session.gc_maxlifetime

デフォルト値は1440秒(24分)。この値が過ぎるとサーバ側のセッションファイルが削除されるので実質セッションが切れる。

詳しい説明は下記ブログが参考に。

セッション(session)の有効期限を設定するには

セッションの設定を気にせずWebサーバを構築した際は基本24分でセッションが切れる(はず)。

コメント

  1. http://pentan.info/php/session_gc.html

    GCが走り、24分より古いセッションファイルが削除さますが、このときセッションの値が取れたりします

    返信削除
  2. コメントありがとうございます。
    リンク先の情報大変参考になりました。

    返信削除

コメントを投稿

このブログの人気の投稿

【.NET】DataGridViewを選択した際に背景色を変更しない

Can't open PID file /var/run/nginx.pid (yet?) after start: Too many levels of symbolic links

【PostgreSQL】ROWNUMのように行番号(現在行)を取得するROW_NUMBER