Php session.gc_maxlifetime何时开始计数

Php session.gc_maxlifetime何时开始计数,php,session,Php,Session,每次加载页面时,我都运行session\u start()以恢复当前会话。session.gc\u maxlifetime从何时开始计数?第一次调用session\u start()并设置该会话的cookie时?或者计时器是否会在每次会话\u start()时重新启动 将session.gc\u maxlifest设置为大约24分钟,在此时间线中,会话数据是否应被垃圾收集 1. 12:00:00 First page load, session_start(), session cookie

每次加载页面时,我都运行
session\u start()
以恢复当前会话。
session.gc\u maxlifetime
从何时开始计数?第一次调用
session\u start()
并设置该会话的cookie时?或者计时器是否会在每次
会话\u start()
时重新启动

session.gc\u maxlifest
设置为大约24分钟,在此时间线中,会话数据是否应被垃圾收集

 1. 12:00:00 First page load, session_start(), session cookie created
 2. 12:10:00 page load, session_start() 
 3. 12:26:00 page load, session_start()
 4. 12:55:00 page load, session_start()
如果计时器在第一页加载时启动
session\u start()
,那么我希望它会在加载3时进行垃圾收集。但是,如果它重置每个
会话\u start()
,那么它在加载4之前不会收集

我希望是后者,因为这样我就可以每隔几分钟做一次javascript心跳来调用一个运行
session\u start()
的页面


如果是前者,
session.gc\u maxlifetime
从创建会话cookie开始计数我需要销毁/重新创建或重新生成\u id来重置计数?

它是从上次会话\u start()调用或/和上次写入它的时间开始的。我的猜测是后者,因为这将改变PHP垃圾收集器用来确定是否需要删除它的“上次修改”时间戳。在这种情况下,它从使用session_start()的最后一个脚本开始计数,或者通过调用session_uwrite_uuclose()显式地在脚本中间结束


另外,这将使“心跳”变得简单明了(一行):

您使用的是默认的会话处理程序还是其他的会话处理程序?这是一个哲学问题还是您试图解决的问题?我正试图集中精力解决这个问题,我无法增加session.gc\u maxlifetime,因为它是一个共享环境。如果它从会话创建开始计数,那么javascript心跳无法解决它。