Debian和衍生产品(Ubuntu)不使用php会话垃圾回收器
session.gc_probability = 0
而是使用cron /etc/cron.d/php5
09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete
为什么Debianselect这样做?
因为Debian在/var/lib/php5
(1733,owner root,group root)上设置了非常严格的权限来防止PHP会话被劫持。 不幸的是,这也阻止了本地PHP会话垃圾回收器的工作,因为它不能在那里看到会话文件。 cron作业以root身份运行,它具有足够的访问权限来查看和清理会话文件。
编辑 :支持文档:行为是为了响应错误#267720而build立的。 (以前在股票php.ini
文件中有关于此的评论,但是我现在在我的基于wheezy的PHP安装中看不到它们。)
在stream量较低的站点上可能会更可靠一些(如果你每天只有几百次点击,GC每隔一千次就会发生一次,会话可能会比他们应该更长),我想这可能是一个如果你有很多的会话,那么服务器上的内容要比原生GC要less一些。