Symfony 2.8 无法写入 /var/lib/php/sessions/

Symfony 2.8 can't write in /var/lib/php/sessions/

我对 Symfony 功能术语有点困惑。我有一个网站,应该在 /var/lib/php/sessions/ 中编写会话。我在那里感到困惑,因为在 /var/www/html/myproject/ 中,所有内容都是 www-data:www-data 的递归 属性(是的,我使用的是 Apache)。但是 /var/lib/php/sessions/ 的所有者是 root,因此当 Apache 尝试写入该目录时,我收到关于该目录写入权限的 500 服务器错误。

这里我意见不一。有些人建议我修改 config.yml 以管理项目目录内的会话,而其他人则说这是一个非常糟糕的做法。但是,如何在没有文件权限错误的情况下获取所有目标 /var/lib/php/sessions/

这是我通过 Apache URL 获得的内容:

Oops! An Error Occurred
The server returned a "500 Internal Server Error".
Something is broken. Please let us know what you were doing when this error occurred. We will fix it as soon as possible. Sorry for any inconvenience caused.

这是我通过 php 开发网络服务器得到的:

Warning: SessionHandler::read(): open(/var/lib/php/sessions/sess_u3eg1842nlpkbm0rvddrq37dc2, O_RDWR) failed: Permission denied (13)
500 Internal Server Error - ContextErrorException

我真的希望你能帮助我。

为了创建文件,用户必须对目录具有写入和执行权限。

mkdir /tmp/foo
chmod 300 /tmp/foo
touch /tmp/foo/bar
test -e /tmp/foo/bar

在您的情况下,将 'other' 权限设置为 3 将允许 www-data 写入它。 chmod o+wx /var/lib/php/sessions/

要删除文件,用户还必须对该目录具有写入和执行权限。

为了列出目录中的文件名,用户必须对该目录具有读取权限。请注意,如果您知道文件名,则不需要具有列出目录的权限。

为了列出文件的属性,用户必须对该目录具有执行权限。

在我的电脑上 /var/lib/php/sessions 的权限是 drwx-wx-wt。 t 表示执行和粘滞位。目录的粘滞位意味着只有所有者才能删除它。

有关详细信息,请参阅 Unix File and Directory Permissions and Modes by Wayne Pollock