【PHP開発ガイド】session.cookie_lifetime と session.gc_maxlifetime
セッションの有効期限
PHPでのセッションの有効期限は以下の設定値を確認します。
session.cookie_lifetime
session.cookie_lifetimeではサーバから送信されてクライアント側(Webブラウザ)に保存されるクッキーの有効期限(秒)を設定します。
デフォルトの設定値 0 ではブラウザを閉じるまでクッキー(セッションクッキー)が保持されます。
※「ブラウザを閉じる」タブではなく、ウィンドウ全体のこと
2回目以降のリクエストでsession_start関数により、ブラウザから送信されたクッキーに含まれるセッションIDからセッションが復元されます。
session.gc_maxlifetime
session.gc_maxlifetimeはサーバ側で保存するセッションの有効期限が設定されています。
デフォルトでは1440秒(24分)が設定されていますが、時間が過ぎれば必ずセッションが破棄されるわけではなく、
別な設定値、session.gc_probabilityとsession.gc_divisorの値に依存しており確率ベースでの実行となります。
(デフォルト値)
session.gc_probability (1) / session.gc_divisor (100)
デフォルトでは1/100の確率でセッションデータをゴミとしてガベージコレクション(破棄)が実行されています。
PHPの他のセッション設定項目については以下も参照ください。