目前,清理我的 /tmp/cook 目录大约 10 天后,有 3657 个会话文件
vm645:/tmp/cook# ls | wc -l
3657
所以我认为它们自己没有清理干净。
我的 php.ini 代码片段
session.save_path = "/tmp/cook"
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
所以我认为它应该会自动清理。我认为这也与清理有关
; After this number of seconds, stored data will be seen as 'garbage' and
; cleaned up by the garbage collection process.
; http://php.net/session.gc-maxlifetime
session.gc_maxlifetime = 1440
session.gc_probability = 0
session.gc_divisor = 1000
我是不是漏掉了什么?我需要设置什么才能强制 PHP 在一段时间后清理该目录(但不终止活动会话?)
我的 PHP 版本是 PHP 5.3.3-7+squeeze3 带有 Suhosin-Patch (cli)(构建于:2011 年 6 月 28 日 08:24:40)
答案1
会话被清理的概率等于session.gc_probability / session.gc_divisor
(除非它直到session.gc_maxlifetime
过去才会被清理);简而言之,你需要使它session.gc_probability
非零。
文档是这里。