【发布时间】:2011-02-23 16:40:04
【问题描述】:
我最近升级到 PHP 5.3,从那以后我收到(零星的)错误消息,表明 Apache(或者可能是会话文件的更清洁者)对存储会话的文件夹没有权限。
这是随机发生的,无法通过精确的步骤重现,这让我猜测它是会话清洁器。
有人遇到过此类错误吗?
错误消息(在session_start() 行触发)是:
ps_files_cleanup_dir: opendir(/var/lib/php5) 失败: 权限被拒绝。
会话目录上的ls -ltr给出:
drwx-wx-wt 2 root root 4096 2010-05-25 12:39 php5
在这个目录中,我确实看到了属于我的 Apache 的 www-data 拥有的会话文件,并且该应用程序运行良好。 这让我想知道,session GC 在哪个用户下运行?
【问题讨论】:
-
我做了,但不是在 5.3 上。原来是过滤到会话保存路径的权限错误。我假设你已经检查了权限?
-
@Jarrod 我看到 www-data 可以读取和写入该文件夹(现在每个人、用户、组和世界都有 w & r)我应该检查其他内容吗?
-
我猜它偶尔发生的原因是在运行会话垃圾收集器时发生错误,我认为默认情况下每个会话初始化运行的机会为 1%。您是否对有关会话的 php.ini 进行了任何更改?这里的默认值之外是什么?检查会话文件夹的所有者,之后我不知所措,没有看到 .ini 或错误。
-
所有者是root,会话由www-data创建,每个人都可以访问这个文件夹。我会一一检查ini设置,寻找可疑之处。
-
ps_files_cleanup_dir: opendir(/var/lib/php5) 失败:权限被拒绝(