为什么Debian用cron作业清理php会话而不是使用php的内置垃圾收集器?

Modified on: Sun, 21 Jul 2019 07:40:03 +0800

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

为什么Debian选择这样做?

最佳答案

因为Debian在/var/lib/php5(1733,所有者root,group root)上设置了非常严格的权限,以防止PHP会话被劫持。不幸的是,这也会阻止本机PHP会话垃圾收集器工作,因为它无法在那里看到会话文件。 cron作业以root身份运行,它有足够的权限查看和清理会话文件。

编辑:支持文档:该行为是为了响应bug#267720。 (以前在stock php.ini文件中有关于此的注释,但我现在没有在基于wheezy的PHP安装中看到它们。)

作者:,asciiphil

相关问答

添加新评论