NextCloud跨版本升级

date
Apr 18, 2022
slug
nextcloud
status
Published
tags
Docker
NextCloud
summary
NextCloud长期不升级,一次升级就炸了
type
Post

安装

选择postgres版本的安装方式(因为pg秒杀mysql)
这里有个问题,需要先`docker-compose up db` `docker-compose down` 然后`docker-compose up`,具体查看https://github.com/nextcloud/docker/issues/1335#issuecomment-748933347

配合使用

版本

  1. minio verison 2022-04-12T06:55:35Z
  1. nextcloud 23.0.3
  1. aria2-pro latest

规定

创建文件由minio创建,这样minio会生成目录和管理,nextcloud和aria2只负责写入
  1. 首先创建minio,并将minio挂载到最大的路径下 如 /data
  1. 在minio界面创建bucket aria2-download
  1. 安装aria2 , 挂载 /data/aria2-download:/downloads:rw 这样aria2下载的文件,可以被minio管理了
  1. 安装nextcloud,并挂载/data:/home:rw下,进入容器执行 chmod 777 -R /home && chown -R www-data /home
  1. nextclud配置外部存储,打开 应用中的External storage support ,这样nextcloud也可以看到这些文件了
添加目录
notion image
  1. minio aria2 nextcloud公用同一个文件夹会有权限的问题
增加脚本cron-chmod.sh 找到crontab -e 每分钟执行一次,
  1. 唯一的缺点就是,文件上传后,一分钟才可以有操作的权限,这个其实也可以改(crontab -e 增加多条,分别执行sleep),但是没啥必要

配置

挂载外部磁盘

开启外部设备
 
 

文件修改出错

 

删除数据库锁定文件

关闭文件锁

config/config.php 中添加 filelocking.enabled ⇒ false 重启nextcloud

升级

通过管理员账户,进入“管理”-“概览”-“版本”,下面提示的版本是可以升级的版本,不能直接更新到latest!!!!
所以要去docker-compose中更改version,一点一点的更新
如果更新了,就无法挽救了,就只能使用下面的强制更新了

强制升级

一般情形下,通过
进入容器
可以获取到最新的nextcloud容器镜像,然后nextcloud会自行更新到最新版本。
由于我使用了一段时间nextcloud应该是在16这个版本,然后直接pull下来了18版本。此时,发现我的nextcloud无法打开,出现如下错误:
通过以下命令,查询到相关的版本
结果
通过以下命令进行升级
结果
发现不允许升级。
以下高能到来,强制进行升级 参考链接
修改以下这个文件 nextcloud/lib/private/Updater.php
搜索doUpgrade
notion image
修改保存之后,再次通过以下命令就可以升级
等待升级完成之后,使用以下命令关闭维护模式
结果
完成以上步骤之后,重新打开网页即可进入到Nextcloud里面。
一句话忠告:尽量不要夸太多版本升级,否则会出现太多的异常无法解决
 
 
这是因为nextcloud默认的防爆力破解机制所致
'auth.bruteforce.protection.enabled' => false,

© Wang Jiahao 2021 - 2024