最近 Matomo 發布了 5.7.0 版本,本以為像往常一樣在後台點選「一鍵自動更新」即可,沒想到這次更新後網站直接癱瘓,瀏覽器噴出 ERR_TOO_MANY_REDIRECTS(重新導向次數過多)的錯誤訊息,且即便清除 Cookie 或換瀏覽器也無濟於事。經過排查,這與 5.7.0 版本強化了反向代理(Reverse Proxy)識別機制有關。如果你也遇到同樣的慘案,可以參考我這次的手動修復與強迫更新流程。

為什麼會發生無限導向?
在 Matomo 5.7.0 中,系統對於 SSL 識別與代理伺服器標頭(Headers)的處理變得更為敏感。如果你的環境位於 Docker、OpenLiteSpeed 或 Nginx 反向代理後方,自動更新程序可能無法在第一時間修正 config.ini.php 中的安全配置,導致系統不斷在 HTTP 與 HTTPS 之間產生跳轉迴圈。
手動修復與強迫更新步驟
當網頁端已無法進入時,建議改用 SSH 終端機進行「手動覆蓋」與「命令行更新」,這通常是最穩妥的解法。
1. 備份關鍵設定檔
在動手之前,請務必透過 FTP 或終端機備份最重要的檔案:
- 路徑:
config/config.ini.php - 說明:這包含資料庫密鑰、外掛清單與環境設定。
2. 下載新版並手動覆蓋
由於 FTP 上傳大量小檔案非常緩慢,建議直接在伺服器上下載並解壓縮:
# 下載 5.7.0 版本
wget https://builds.matomo.org/matomo.zip
# 強制解壓縮並覆蓋現有檔案 (-o)
unzip -o matomo.zip
3. 透過命令行觸發資料庫更新 (核心步驟)
這是修復跳轉問題的關鍵!不要嘗試開啟網頁,直接在終端機執行 Matomo 控制台指令:
php console core:update
在執行過程中,你會看到系統提示需要從 5.6.x 遷移至 5.7.0。其中最重要的一步是:
Executing ./console config:set 'General.proxy_scheme_headers=["HTTP_X_FORWARDED_PROTO",...]'... Done.
這行指令會自動修正設定檔,正確識別代理伺服器的協定,進而終結無限跳轉的迴圈。
4. 權限修復與環境清理
更新完畢後,別忘了將檔案權限還原給網頁伺服器(如 www-data),並清理更新留下的殘骸:
# 修正檔案擁有者 (視伺服器環境而定)
chown -R www-data:www-data /var/www/html
# 清除系統緩存
php console cache:clear
# 刪除過時或自動更新失敗留下的多餘檔案
php console diagnostics:unexpected-files --delete
結語與站長建議
- 大版本號更新建議用 CLI:當涉及到像 5.7.0 這種對底層配置有變動的版本,透過 SSH 執行
core:update比後台按鈕更安全,也能即時看到錯誤訊息。 - 注意反向代理配置:若更新後遇到重定向問題,優先檢查
config.ini.php裡的proxy_scheme_headers。
希望這篇心得能幫助同樣卡在更新迴圈的站長們快速恢復系統運作!
《上一篇》Google AI Plus 方案正式在台登場:以實惠價格補完 AI 生態圈的最後一塊拼圖 









留言區 / Comments
萌芽論壇