我的会话将持续多长时间?

2022-08-30 10:49:52

有人可以从下面的数据中告诉我我的会话将持续多长时间吗?- 我不确定哪一个告诉我

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

答案 1

通常,您可以说session.gc_maxlifetime指定自上次更改会话数据以来的最大生存期(不是上次调用的时间!但是PHP的会话处理有点复杂。session_start

因为会话数据由垃圾回收器删除,该垃圾回收器仅由session_start调用,session.gc_divisor session.gc_probability 的可能性。默认值为 1 和 100,因此垃圾回收器仅在所有调用的 1% 中启动。这意味着即使会话在理论上已经超时(会话数据在session.gc_maxlifetime秒前已更改),会话数据的使用时间也可以超过此时间。session_start

因此,我建议您实现自己的会话超时机制。有关更多详细信息,请参阅我如何在 30 分钟后使 PHP 会话过期的答案


答案 2

这是其一。会话将持续 1440 秒(24 分钟)。

session.gc_maxlifetime  1440    1440

推荐