web-dev-qa-db-ja.com

セッションはどのくらい続きますか?

以下のデータから、セッションの継続時間を誰か教えてもらえますか? -誰が私に言っているのか分かりません

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
43
Keith Donegan

一般的に言うことができます session.gc_maxlifetime は、セッションデータの最後の変更以降の最大寿命を指定します(notsession_startが最後に呼び出されたとき!)。しかし、PHPのセッション処理はもう少し複雑です。

セッションデータは session_start によって呼び出されるガベージコレクターによって削除されるため、確率は session.gc_probabilitysession.gc_divisor で区切られています。デフォルト値は1および100であるため、ガベージコレクターはすべてのsession_start呼び出しの1%のみで開始されます。つまり、理論上、セッションがすでにタイムアウトしている場合でも(セッションデータがsession.gc_maxlifetime秒前よりも変更されていた場合)、セッションデータはそれより長く使用できます。

そのため、独自のセッションタイムアウトメカニズムを実装することをお勧めします。 への回答)PHP 30分後にセッションを終了するにはどうすればよいですか? を参照してください。

83
Gumbo

これが1つです。セッションは1440秒(24分)続きます。

session.gc_maxlifetime  1440    1440
19

_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分です(デフォルト)。

8
svens