以下のデータから、セッションの継続時間を誰か教えてもらえますか? -誰が私に言っているのか分かりません
session.auto_start Off Off
session.bug_compat_42 Off Off
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 1000 1000
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 5 5
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /var/lib/php/session /var/lib/php/session
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 0 0
一般的に言うことができます session.gc_maxlifetime は、セッションデータの最後の変更以降の最大寿命を指定します(notsession_start
が最後に呼び出されたとき!)。しかし、PHPのセッション処理はもう少し複雑です。
セッションデータは session_start
によって呼び出されるガベージコレクターによって削除されるため、確率は session.gc_probabilitysession.gc_divisor で区切られています。デフォルト値は1および100であるため、ガベージコレクターはすべてのsession_start
呼び出しの1%のみで開始されます。つまり、理論上、セッションがすでにタイムアウトしている場合でも(セッションデータがsession.gc_maxlifetime秒前よりも変更されていた場合)、セッションデータはそれより長く使用できます。
そのため、独自のセッションタイムアウトメカニズムを実装することをお勧めします。 への回答)PHP 30分後にセッションを終了するにはどうすればよいですか? を参照してください。
これが1つです。セッションは1440秒(24分)続きます。
session.gc_maxlifetime 1440 1440
_session.cookie_lifetime
_が0の場合、セッションCookieはブラウザーが終了するまで存続します。
[〜#〜] edit [〜#〜]:他の人は_session.gc_maxlifetime
_設定に言及しています。セッションガベージコレクションが発生すると、ガベージコレクタは、_session.gc_maxlifetime
_秒よりも長くアクセスされていないセッションデータを削除します。セッションCookieの有効期間を設定するには、 session_set_cookie_params()
を呼び出すか、_session.cookie_lifetime
_ PHP設定を定義します。設定が_session.gc_maxlifetime
_より大きい場合、セッションが期限切れにならないように、_session.gc_maxlifetime
_をCookieの有効期間以上の値に増やす必要があります。
Gc_maxlifetimeを検索しています。説明については http://php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime を参照してください。
セッションは1440秒で、24分です(デフォルト)。