新版本的禅道在使用 nginx 做 https 反向代理时,无法正常安装、升级以及登录

是想从 docker 的 12.5.3 版本升级到 16.0 版本,但是按步骤升级完成后,发现会卡在一个“禅道开源版15版本升级”的介绍页面无限循环

直接部署全新的系统,也会卡在配置数据库连接的页面无限循环

而且在容器的日志中,会有一条

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

数据库错误,很是迷惑,排查了半天数据库的原因,发现原来的版本也有这条日志,并影响系统使用,确定不是这方面的原因。

后来经过各种可能性的排查,最后想到去掉 nginx 的 https 转发试一下,果然使用 http 就可以了!

后来在部署完再加上 https 发现登录又不行了,不过顺着这个思路再找就好找原因了。

从网上搜索到的文章的看到根据官方问答中一条记录:https://www.zentao.net/ask/36770.html

看起来原因是增加了 CSRF 防御代码,与 nginx 的配置不兼容,导致了这个问题,暂时还没有继续深入研究如何配置 nginx 可以达到兼容。

不过在官方的问答区看到了最新版本已经增加了一个 CSRF 的开关:

https://www.zentao.net/ask/38485.html

通过在 config/my.php 用户配置文件中,增加一条

$config->framework->filterCSRF = false;

暂时关闭 CSRF 即可解决问题。

唔,很坑的一点,官方的安装、升级文档似乎也没有提到这一块,下面的网友回复全都是加QQ,解决过了也不提一下,哎

上一篇:CSRF


下一篇:Python 10.5.1 Django框架 :CSRF