是想從 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,解決過了也不提一下,哎