我最近升级到 PHP 5.3,从那时起我收到(零星的)错误消息,表明 Apache(或者可能是 session 文件的清洁器)没有对存储 session 的文件夹的权限。
这是随机发生的,无法用精确的步骤重现,这让我猜测这是 session 清理器。
有没有人遇到过此类错误?
错误消息(在 session_start()
行触发)是:
ps_files_cleanup_dir: opendir(/var/lib/php5) failed: Permission denied.
session 目录上的 ls -ltr 给出:
drwx-wx-wt 2 root root 4096 2010-05-25 12:39 php5
在此目录中,我确实看到了属于我的 Apache 的 www-data 的 session 文件,并且该应用程序运行良好。 这让我想知道, session GC 在哪个用户下运行?
最佳答案
修复:在您的 php.ini
中将 session.gc_probability
设置为 0
原因 我相信我在这里找到了答案 http://somethingemporium.com/2007/06/obscure-error-with-php5-on-debian-ubuntu-session-phpini-garbage
本质上,垃圾收集设置为由某些系统(即 Ubuntu/Debian)上的 cron 作业完成。一些 php ini 可执行文件,如 php-cli 也尝试进行垃圾收集,这会导致您遇到错误。
关于php - PHP 5.3 和 session 文件夹的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5398746/