gpt4 book ai didi

PHP7 + Symfony 2.8,写入 session 数据失败

转载 作者:IT王子 更新时间:2023-10-29 00:12:45 29 4
gpt4 key购买 nike

我自己编译了 php7 (974f6c2a705)。如果我使用 symfony 运行 php7 + php-fpm + nginx 我得到这个错误:

(为 session 使用 snc redis 包:)

 Warning: session_write_close(): Failed to write session data (user). Please verify that the current setting of session.save_path is correct (/tmp)

(使用 native session 支持:)

 Warning: session_write_close(): Failed to write session data (user). Please verify that the current setting of session.save_path is correct (/[...]/app/cache/dev/sessions)

问题似乎与 symfony 相关,因为 php 具有对该文件夹的读/写权限。

如果我只运行这段代码,它就可以工作:

session_start();
$_SESSION['x'] = 4234;
session_write_close();

关于 symfony 无法编写 session 的任何建议或想法?

最佳答案

PHP7 对自定义 session 处理程序的 session 处理更加严格。 Symfony 为其 write 方法定制的 session 处理程序,无论出于何种原因,都会返回 false。以前这不会触发错误,但现在会触发。

由于我们没有关于您正在使用哪个自定义 session 处理程序的大量信息,我建议您尽可能设置不同的自定义 session 处理程序,因为它们中的大多数似乎都返回 true。

这是 Symfony 的不同 session 处理程序,除了 Memcache 和 WriteCheckSessionHandler 之外,大多数似乎都显式返回 true:

https://github.com/symfony/symfony/tree/582f4753a343f230fbe18b4e9a0747d48351ddfb/src/Symfony/Component/HttpFoundation/Session/Storage/Handler

编辑:

既然您提到了 Snc Redis Bundle session 处理程序,您确定您使用的是最新版本吗?一年前,它被修改为在写入时始终返回 true:

https://github.com/snc/SncRedisBundle/blob/master/Session/Storage/Handler/RedisSessionHandler.php

更新

向 PHP 提交了一个错误,看看我们是否可以找出对 future 版本更有用的错误消息(请对错误报告投票或发表评论):

https://bugs.php.net/bug.php?id=71070

关于PHP7 + Symfony 2.8,写入 session 数据失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34117651/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com