Ubuntu

為什麼 Debian 使用 cron 作業而不是使用 php 的內置垃圾收集器來清理 php 會話?

  • June 5, 2018

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 對 (1733, owner root, group root) 設置了非常嚴格的權限/var/lib/php5來防止 PHP 會話劫持。不幸的是,這也阻止了原生 PHP 會話垃圾收集器的工作,因為它看不到那裡的會話文件。cron 作業以 root 身份執行,它確實有足夠的訪問權限來查看和清理會話文件。

編輯:支持文件:該行為是為響應錯誤 #267720而建立的。(股票php.ini文件中曾經有關於這個的評論,但我現在在我的基於 wheezy 的 PHP 安裝中沒有看到它們。)

引用自:https://serverfault.com/questions/511609