session.save 权限错误

session.save 权限错误

我的 Debain 服务器在私人临时文件夹 /home/user/tmp 中创建了一个会话,临时文件夹所有者:

drwxrwxrwx 2 user www-data 4096 2011-08-23 16:26 tmp

会话创建后,会话详细信息:

-rw------- 1 user user 0 2011-08-23 16:30 sess_66nnga09kav0747k5ek95ghne2

我将用户添加到 www-data 组,但仍然无法使用会话。我收到以下错误消息:

警告:未知:写入失败:超出磁盘配额 (122),位于未知的第 0 行 警告:未知:无法写入会话数据(文件)。请验证 session.save_path 的当前设置是否正确(/home/user/tmp),位于未知的第 0 行

如果我将会话的所有者更改为

-rw------- 1 user www-data 84 2011-08-23 16:35 sess_66nnga09kav0747k5ek95ghne2

我可以通过会话。我可以强制使用指定所有者的会话文件吗?

答案1

错误消息表明您已超出磁盘配额。请释放一些空间。

警告:未知:写入失败:磁盘配额超标

答案2

您需要更改 apache 工作的有效组和用户。

答案3

问题是 apache 不允许在目录中写入/home/user/tmp。您可以执行以下操作:

  • 将该目录的所有者更改为 www-data (apache 的用户)

或者

答案4

这应该是一条评论,但是有点长。

如果这是你的服务器,那么它应该不是在 /home 中写入文件(它也不应该在 /tmp 中写入会话文件)。如果您的 PHP 写入了该文件,那么它必须有读取文件的权限(这有例外,但需要明确启用它们以用于不适用于此处的非常特殊的目的)。如果它写入了文件,则除非守护进程以“用户”身份运行,否则该文件将不属于“用户”。也许您出于某种原因更改了系统上看到的详细信息,如果是这样,则无助于诊断此处发生的情况。也许这实际上不是您的服务器,而是您可以访问的共享服务器。也许它的配置确实很糟糕。当然,会话不应存储在具有 777 权限的目录中。

该错误表明存在配额问题。从那里开始。

相关内容