本文紀錄了過年時除舊佈新整理房間時,因為移動了家庭服務器電腦的位置,在重啟服務遇到需要手動更新的流程。
具體狀況發生在關機後重啟服務後,打開網頁時發現 Nextcloud 強制要求更新,並且進入維護鎖定模式,這是因為我當時安裝時使用的 docker-compose 指定最新版本,而我又傻傻的沒有修改就直接執行了 docker compose up 命令,依照官方文件描述,此時需要進入容器中使用命令行來手動更新了。
安裝背景 #
本文中的 Nextcloud 安裝於 Proxmox 中的一個 CT 容器中,使用官方的 Nextcloud AIO 方案部屬。
升級版本 #
27 版 > 27 版的最新版本 > 28.0.2
過程紀錄 #
以下 php 命令開頭的指令需要在運行 Nextcloud 的 docker 容器中執行
-
在 porxmox 中選擇安裝 Nextcloud 的 CT ,進入命令行模式
-
先升級主程式 命令參考 (github.com)
# 進入 nextcloud 的 docker 容器中 sudo docker exec --user www-data -it nextcloud-aio-nextcloud bash # Switch to the beta channel php occ config:system:set updater.release.channel --value=beta # Run the update php updater/updater.phar --no-interaction --no-backup && php occ app:enable nextcloud-aio --force # Switch back to the stable channel php occ config:system:set updater.release.channel --value=stable依照 github 說明,第二步驟的 updater 可以多執行幾次
該命令一次只會升級一個小版本,等到不會升級後在進行下一步
但我這次只執行一次就升到版本 27 的最新版本了,第二次執行就會直接結束
-
升級 app
如果要繼續升級到版本 28,這次需要先進行 app 升級
php occ upgrade通常會在這邊遇到錯誤,特別是如果安裝了一些有的沒有的額外 app
這時可以查看錯誤 log,鎖定沒辦法更新的 app 名稱,然後使用 occ 命令停用該 app
# 列出所有 app 名單 php occ app:list # 停用特定 app php occ app:disable $appname停用之後再次運行,應該就沒問題了
php occ upgrade升級完成之後可以進行步驟 1 再次進行主程式升級
-
反覆步驟 1~2,可以一步步將版本升級至最新版本
-
完成主程式的更新會自動解除維護模式,就可以正常使用 Nextcloud 了