在apache和php环境中,默认过期时间为20分钟左右,如何设置session的过期时间呢? 总结一下具体的方法吧。
我们最常用的是在php程序中设置,代码为以下:
if (! isset ($ _ session [ ' last _ access ' ]|(time )-$_SESSION['last_access'] ) 60 )
$_SESSION['last_access']=time (;
?
到此结束。 设定有效期限时,也可以通过程序来实现。 代码是下一个:
unset($_session('last_access ' ) )或$_session('last_access ' )=' ';
?
session过期的机制
session.gc_maxlifetime原本是session过期的低概率事件,分别使用session.gc_probability和session.gc_divisor
因此,更改php.ini文件中的gc_maxlifetime变量会将session的过期时间延长:秒。 例如,将过期时间更改为86400秒。 代码是下一个3360
session.gc_maxlifetime=86400
然后,重新启动你的web服务(一般是apache )就可以了。
session“回收利用”什么时候发生?
因为默认情况下每个php请求的回收概率为1/100,所以您可能会简单地理解为“每100次php请求就发生一次回收”。 该概率通过以下参数控制:
#概率为gc_probability/gc_divisor
session.gc_probability=1
session.gc_divisor=100
注意1 :假设该状况为gc_maxlifetime=120,则如果某个session文件的最终修改时间为120秒前,则在发生下一次再利用(1/100的概率)之前,该session仍然有效
注意2 :如果session在session.save_path中使用其他位置保存session,则session回收机构可能不会自动处理过期的session文件。 在这种情况下,必须定时手动(或crontab )删除过期的session:cd /path/to/sessions。 find -cmin 24 | xargs rm
(责任编辑: admin )