有人可以告诉我我的会话将持续多长时间从下面的数据? - 我不确定哪一个告诉我
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
Gumbo.. 84
通常,您可以说session.gc_maxlifetime指定自上次更改会话数据以来的最长生命周期(不是最后一次session_start
调用!).但PHP的会话处理有点复杂.
因为会话数据被垃圾收集器删除,垃圾收集器仅由session.gc_divisorsession_start
划分的session.gc_probability概率调用.默认值为1和100,因此垃圾收集器仅在所有调用的1%中启动.这意味着即使会话已经在理论上超时(会话数据的更改时间超过了session.gc_maxlifetime秒前),会话数据也可以使用更长的时间.session_start
因此,我建议您实现自己的会话超时机制.请参阅我30分钟后如何使PHP会话过期的答案?更多细节.
通常,您可以说session.gc_maxlifetime指定自上次更改会话数据以来的最长生命周期(不是最后一次session_start
调用!).但PHP的会话处理有点复杂.
因为会话数据被垃圾收集器删除,垃圾收集器仅由session.gc_divisorsession_start
划分的session.gc_probability概率调用.默认值为1和100,因此垃圾收集器仅在所有调用的1%中启动.这意味着即使会话已经在理论上超时(会话数据的更改时间超过了session.gc_maxlifetime秒前),会话数据也可以使用更长的时间.session_start
因此,我建议您实现自己的会话超时机制.请参阅我30分钟后如何使PHP会话过期的答案?更多细节.
这是一个.会议将持续1440秒(24分钟).
session.gc_maxlifetime 1440 1440
如果session.cookie_lifetime
为0,则会话cookie一直存在,直到浏览器退出.
编辑:其他人提到了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分钟(默认).