强烈推荐手动升级,因为由于在国内连接国外的 NextCloud 服务器在线升级,网络问题等原因真的会容易出现各种更新失败的问题,之后解决问题就更麻烦。
升级 NextCloud 之前,首先要考虑备份数据库,除非数据库并不那么重要,可以不用备份数据库。比如我自己使用的 NextCloud 的数据库实际上不是那么的重要。因为现阶段我主要使用的功能是存储文件,PC端也有同步盘,所以只要我的文件还在,没有丢失,数据库实际上并不那么的重要。除非我们的资料文件记录了许多的版本,而且我们重度使用文件版本,就必需备份好数据库。我没有备份数据库的最根本的原因,还是因为懒!并一直认为升级会顺利完成的,存在侥幸的心理。
从 NextCloud 19.0.1 升级到 NextCloud 19.0.2
如果你使用的版本是 NextCloud 19.0.1
的话,强烈建议升级到 NextCloud 19.0.2
。新版本修复了很多问题。我的运行环境是 CentOS7 + Apache + MySQL + PHP
参考官方的步骤方法
https://docs.nextcloud.com/server/19/admin_manual/maintenance/manual_upgrade.html
1、停止服务器和计划任务
停止 httpd
systemctl stop httpd
停止 cron.php
计划任务
查看 apache
执行的计划任务,用 #
注释掉,保存。
crontab -u apache -e
2、备份旧版本文件
重命名 nextcloud
目录为 nextcloud-old
3、上传新版本文件
使用 WinSCP
上传新版 nextcloud 19.0.2
所有文件到服务器 nextcloud
目录。
4、恢复备份文件与应用
从备份目录 nextcloud-old
复制配置文件到 nextcloud
对应目录
cp /var/www/html/nextcloud-old/config/config.php /var/www/html/nextcloud/config/
如有安装第三方应用,从备份目录 nextcloud-old
移动第三方应用到 nextcloud
对应目录
mv /var/www/html/nextcloud-old/apps/onlyoffice /var/www/html/nextcloud/apps/
从备份目录 nextcloud-old
移动 data
目录到 nextcloud
对应目录
mv /var/www/html/nextcloud-old/data /var/www/html/nextcloud/
5、授予权限
进入 html
目录
cd /var/www/html
授予权限
chown -R apache:apache nextcloud
find nextcloud/ -type d -exec chmod 750 {} \;
find nextcloud/ -type f -exec chmod 640 {} \;
重启 httpd
systemctl restart httpd
6、执行升级
必需进入 nextcloud
目录进行升级
进入 nextcloud
目录
cd /var/www/html/nextcloud
执行升级
sudo -u apache php occ upgrade
升级完成后,登录管理页面,检查 nextcloud
的版本号是否已经升级成功,以及检查第三方应用。
7、恢复计划任务
查看 apache
计划任务,把 #
注释去掉,保存。
crontab -u apache -e
8、升级完成后删除旧文件
顺利完美升级之后,我们再决定删除 nextcloud-old
目录。