[Symfony2.8][FOSUserBundle] CSRF 令牌无效,没有使用 beta prod 部署编写的会话文件

[Symfony2.8][FOSUserBundle] CSRF Token invalid, no session file written with beta prod deployment

我首先发布了我的问题 on a french forum,但我认为在这里寻求帮助也是个好主意。
我想我会开门见山。我已经在服务器上为我在开发环境中本地工作的站点部署了测试版。我使用了 Capifony 和 DoctrineMigrations。我将 FOSUserBundle 与继承 FOSUB 的自定义 UserBundle 一起使用。一些字段被添加到用户 class 等。别担心我没有覆盖主视图并且没有 {{ form_rest(form) }} 丢失或类似的东西。

一切都在本地工作,但如您所料,在服务器上却不一样。 app/logs/prod.log returns 什么都没有,我试着把一个级别:调试到 Monolog 配置 (app/config/config_prod.yml) 但它什么也没改变。

关于会话的 app/config/config.yml 的一部分:

    session:
        handler_id:  session.handler.native_file
        save_path: "%kernel.root_dir%/sessions/"  

[TL;DR] app/sessions 和其他任何地方都没有关于此站点的服务器上的会话文件。我假设 CSRF 令牌无效的问题来自会话问题。

不可能存在权限问题,app/sessions 是 chmoded 777(与 app/logs 和 app/cache 相同),具有正确的 chown。 web/config.php returns 配置没问题。我不知道如何找到这个问题的原因,因为它完全在本地工作,如果日志中没有任何内容,你就无法在生产环境中进行调试...有什么想法吗?

所以,确实是权限问题。该问题与 Capifony 有关。 shared_children 是符号链接。当你 chmod 一个符号链接时,它不会 chmod 任何东西。例如,这里的 shared/app/sessions 目录仍在 755 中,这还不够。

如果您有类似的问题。请确保您的 Cap 项目目录 / shared 中 shared_children 的权限设置正确。

我遇到了类似的问题,最终解决方案在 php.ini 文件中

变量 post_max_size 在生产模式下等于 100Mo,这不足以 post 令牌、伪码和密码。

我被这个问题卡住了 3 天 xD