流浪汉摧毁/与Symfony一起失去会话

时间:2014-11-09 14:39:33

标签: symfony session vagrant

我在有共享文件夹的vagrant上运行Symfony应用程序。

问题是,对于我的队友,他们提供流浪汉后一切正常,但我无法登录。

经过一番调查后,我得出结论,这是一个失败的会议。 我正在使用标准配置进行会话。

我已成功通过身份验证,但重定向后,会话值不再存在。

使用xdebug我确认身份验证效果很好我得到身份验证为真的令牌, 在访问日志中,我可以看到在login_check之后,下一个请求是登录用户的主页,但我被重定向回登录页面,因为我不再进行身份验证。

我已经检查了缓存目录,在那里创建了文件,无论如何都给了它777。

当一切运作良好但我发生同样的事情时,我试图在一些旧的本地分支上重新创建流浪汉。

我删除了vagrant和VirtualBox并安装了最新版本,再没有运气。

我是唯一一个受影响的人,我的同事可以结账主人,流浪汉,这对他们有用。

同样的事情发生在不同的浏览器中。我最近做的其他改变是操作系统升级到Yosemite(osx)

知道在哪里寻找原因吗?

1 个答案:

答案 0 :(得分:0)

所以最后我通过将会话处理程序设置为默认的php.ini

来解决它

在config.yml

  session:
    handler_id: ~

由于流浪汉共享文件夹存在竞争条件

来自:https://github.com/symfony/symfony/issues/7885

  

共享的vagrant文​​件夹必须进行大量的同步并且很多   比VM上的其他文件夹慢。我想会发生什么   Symfony记录用户,写入会话文件然后去读取   会话文件,它还没有(因为文件夹很慢)。在   这一点Symfony失去了会话,用户是有效的   退出了。将会话缓存移动到更快的文件夹修复了   问题,因为当Symfony期望它时文件就在那里。对我来说是   实际上在具有SSD(更快的IO)的计算机上工作并且失败了   电脑与传统硬盘。 SSD的速度足够快   支持缓存到共享文件夹,但硬盘驱动器无法跟上。   将缓存移到共享文件夹之外会修复它。