如何手动升级NextCloud版本?

Cloud storage

1 前言

一个问题,一篇文章,一出故事。
笔者最近需要测试升级NextCloud,于是整理此文。
另外,如果你没有NextCloud环境部署,可以参阅以下链接,

如何部署CentOS 8.x nextCloud?

2 最佳实践

2.1 准备工作

2.1.1 迁移数据目录

如何迁移NextCloud的数据目录?

2.1.2 配置代理(可选)

如何设置NextCloud的正向代理?


注:如果服务器可以直接与Internet通讯则无需设置代理

2.1.3 准备升级包

笔者建议你根据以下页面的提示下载需要升级的兼容软件包,
https://nextcloud.cmdschool.org/index.php/settings/admin/overview
获取到软件包的路径后,你可以使用如下命令手动下载软件包,

cd ~
wget https://download.nextcloud.com/server/releases/nextcloud-25.0.4.zip
unzip nextcloud-25.0.4.zip

2.1.4 切换到维护模式

sudo -u apache /usr/bin/php --define apc.enable_cli=1 /var/www/nextcloud/occ maintenance:mode --on

2.1.5 备份NextCloud数据

rsync -av --delete /data/nextcloud-data/ /data/backup/nextcloud/nextcloud-data/
mysqldump -uroot -p --all-database > /data/dbbackup/nextcloud/nextcloud-`date "+%Y%m%d"`.sql

2.1.7 备份原代码

mv /var/www/nextcloud /var/www/nextcloud-save

2.2 部署软件包

2.2.1 部署新的源代码

cd ~
mv nextcloud /var/www/
chown apache:apache -R /var/www/nextcloud
chmod 770 -R /var/www/nextcloud

2.2.2 恢复配置文件

cp -a /var/www/nextcloud-save/config/config.php /var/www/nextcloud/config/config.php

2.2.3 恢复APP

ls /var/www/nextcloud/apps/ > ~/nextcloud-apps-new.txt
ls /var/www/nextcloud-save/apps/ > ~/nextcloud-apps-old.txt

nextcloudNewDir='/var/www/nextcloud'
nextcloudOldDir='/var/www/nextcloud-save'
nextcloudNewApps='/root/nextcloud-apps-new.txt'
nextcloudOldApps='/root/nextcloud-apps-old.txt'
for i in `diff "$nextcloudNewApps" "$nextcloudOldApps" | grep '^>' | sed 's/> //g'`; do
	appName="$i"
	rsync -avP "$nextcloudOldDir"'/apps/'"$appName"'/' "$nextcloudNewDir"'/apps/'"$appName"'/'
done

注:以上脚本对比新旧版本的APP,然后把旧版本中的APP复制到新版本的APP目录

2.3 执行升级

2.3.1 退出维护模式

sudo -u apache /usr/bin/php --define apc.enable_cli=1 /var/www/nextcloud/occ maintenance:mode --off

2.3.2 执行升级

sudo -u apache /usr/bin/php --define apc.enable_cli=1 /var/www/nextcloud/occ upgrade

2.3.3 单独执行APP升级(可选)

sudo -u apache /usr/bin/php --define apc.enable_cli=1 /var/www/nextcloud/occ app:update --all

注:如果前一个步骤由于没有网络跳过APP升级则使用如上命令

2.3.4 处理兼容性提示

笔者建议你升级完成后,查看如下页面的提示,
https://nextcloud.cmdschool.org/index.php/settings/admin/overview
注:根据具体的提示信息处理即可

没有评论

发表回复

Cloud storage
如何输出NextCloud函数参数到日志?

1 前言 一个问题,一篇文章,一出故事。 笔者最近需要调试NextCloud的代码,因为需要监视参数 …

Cloud storage
如何使用Token认证API登录NextCloud?

1 前言 一个问题,一篇文章,一出故事。 笔者最近因为更换域名迁移用户而引发NextCloud客户端 …

Cloud storage
如何将NextCloud用户数据迁移给另一用户?

1 前言 一个问题,一篇文章,一出故事。 笔者发现NextCloud官方提供的如下数据迁移命令不是十 …