我们有一个基于WAMP的服务器设置。 php.ini设置如下:
session.gc_maxlifetime = 60*60*12 session.save_path = "d:/wamp/tmp"
我们面临的问题是tmp文件夹内的会话文件被零星地删除,我们不能说明原因。 会议将持续约10分钟到40分钟,当他们应该持续12小时。
这是一个虚拟主机环境,但是我们在这些站点中使用的代码都不会覆盖这个设置(使用ini_set ,apacheconfigurationPHP值或其他),所以我们看不到为什么他们被删除。 也没有计划任务删除文件。
有没有办法可以成功地找出为什么gc_maxlifetime被忽略? 为了logging,我改变了我们的一个网站使用session_save_path('D:/wamp/tmptmp'); 暂时只是仔细检查它是垃圾收集,会话文件保持在那里没有触动 – 虽然承认这并不能提供更多的线索。
面对同样的问题,当试图群集某个项目。
我发现问题是由以下原因造成的:
/** session_regenerate_id(true); **/
尝试从代码中删除它,或将参数设置为false。
session.gc_maxlifetime的configuration将决定数据被确定为垃圾之前多久。 此后,当“垃圾收集”发生时,会话数据可能被删除。 但是这并不妨碍会话variables被删除的可能性由于其他原因。
在这里检查Gumbo的答案,他/她说:“最好的解决scheme是自己实现会话超时。