# 更新升级

网站技术日新月异,更新升级是维护工作之一,长时间不升级的程序,就如长时间不维护的建筑物一样,会加速老化、功能逐渐缺失直至无法使用。

这里注意更新与升级这两词的差异(延伸阅读 (opens new window)),例如:

  • 操作系统打个补丁常称之为更新,Ubuntu16.04 变更为 Ubuntu18.04,称之为升级
  • MySQL5.6.25-->MySQL5.6.30 常称之为更新,MySQL5.6->MySQL5.7 称之为升级

Nextcloud 完整的更新升级包括:系统级更新(操作系统和运行环境)和 Nextcloud 程序升级两种类型

# 系统级更新

运行一条更新命令,即可完成系统级更新:

#For Centos&Redhat
yum update -y

#For Ubuntu&Debian
apt update && apt upgrade -y

本部署包已预配置一个用于自动更新的计划任务。如果希望去掉自动更新,请删除对应的Cron

# Nextcloud 自助升级

Nextcloud 提供了非常人性化的升级功能,根据系统的更新提示既可以完成主版本、插件的更新。

在升级之前请做好服务器的快照备份,这个是必须的步骤,因为谁都无法保证升级100%成功。

# 主程序升级

主程序升级与插件升级略有差异,具体参考如下:

  1. 登录 Nextcloud 后台,进入【管理】>【基本设置】,若有更新请点击【打开更新管理器】按钮 Nextcloud 升级

  2. 进入 Updater(更新管理器) Nextcloud 升级

  3. 点击【Start update】开始更新

  4. 系统进入自动化升级过程,下载和升级过程比较长,请耐心等待

由于升级过程会下载最新版本,Nextcloud的下载服务器在国外,若下载不成功,需要不定期尝试

# 插件升级

升级步骤参加如下:

  1. 登录 Nextcloud 后台,进入【应用】,在应用列表中找到需更新的应用 Nextcloud 升级

  2. 点击【更新】按钮,耐心等待更新

  3. 所有更新完成后,更新清单会显示“所有应用都是最新的”

如果升级过程出现问题,例如:无法下载升级包/没有读写权限,请确保网络是通的/Nextcloud目录具有读写权限

# Nextcloud 手工升级

有时候由于网络问题,上面的基于升级界面的升级会由于网络下载速度太慢,导致升级失败。

此时,可以考虑采用如下的手工升级方案:

  1. 将 Nextcloud 的 data, config, apps 目录临时复制到服务器其他目录下

  2. 上传 Nextcloud 安装目录下的所有文件

    rm -rf /data/wwwroot/nextcloud/*
    
  3. 将本地下载的 Nextcloud 源码(除 config, apps 目录之外)上传到 /data/wwwroot/nextcloud 目录

  4. 将第1步备份的几个目录还原到 /data/wwwroot/nextcloud

  5. 使用 php occ 命令进行升级处理

    cd /data/wwwroot/nextcloud
    php occ upgrade
    
  6. 登录到 Nextcloud 后台界面,启用所需的插件

  7. 手工升级完成