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

标签 php apache session symfony-2.8

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

我在这里有不同意见。有些人建议我修改 config.yml 来管理项目目录内的 session ,而其他人则说这是一个非常糟糕的做法。但是,如何在没有文件权限错误的情况下获取所有针对 /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

在您的情况下,将“其他”权限设置为 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了解更多信息。

关于php - Symfony 2.8 无法写入/var/lib/php/sessions/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45308880/

相关文章:

php - 解析css并创建类名和背景图片的键值数组

javascript - 提交Ajax Post时如何刷新模态体?

php - 使用 PHP/JS 设置选项

apache - Hadoop 3.2.0在群集中不起作用(VirtualBox)

laravel - laravel 如何从 session 中获取用户 ID?

php - 什么最好?许多小 session 值还是一个大 session 值? PHP

php - 使用简单的 HTML DOM 遍历表格

apache - 在apache中获取客户端IP

php - 如何在网页的标题中获取内容长度或 CRC?

node.js - 重定向到 ExpressJS 中的另一个页面后, session 未定义