【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の他のセッション設定項目については以下も参照ください。

【PHP】session_set_cookie_params関数でセッションクッキーを安全な設定にする

Follow me!