【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分でセッションが切れる(はず)。