新版本的禅道在使用 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,解决过了也不提一下,哎