session.save权限错误

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

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

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

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

我将用户添加到www-data组,但仍不能使用会话。 我得到以下错误信息:

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

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

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

我可以通过会议。 我可以强制与指定的所有者的会话文件?

错误消息说你已经超出了你的磁盘配额。 释放一些空间。

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

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

问题是apache不允许在目录/home/user/tmp写入。 你可以做以下事情:

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

要么

  • 改变php的session.save_path directive

你不需要在Apache的组中。 您需要将Apache添加到您的用户组。

请记住,apache需要能够访问您指定的path中的每个文件夹,而不仅仅是目录本身。

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

如果这是你的服务器,那么它应该在/ home中写文件(它不应该在/ tmp中写会话文件)。 如果你的PHP写了这个文件,那么它必须有权限读取这个文件(这里有个例外,但是为了非常特殊的目的,这个文件不需要在这里明确的启用)。 如果写入文件,除非守护程序以“user”身份运行,否则该文件不会被“user”所拥有。 也许你正在改变你的系统出于某种原因所看到的细节,如果是这样的话,那么它不能帮助诊断这里发生的事情。 也许这不是你的服务器,而是你有权访问的共享服务器。 也许它是非常糟糕的configuration。 当然,这些会话不应该存储在一个拥有777权限的目录中。

该错误表示配额问题。 从那里开始。