今天登陆ownCloud发现有新版本,但是启动自动更新以后提示504,无法下载更新,就尝试自己手动更新一下ownCloud版本,备份前已经做好了文件和数据库备份

开启ownCloud维护模式

#进到程序目录
cd /opt/www/wwwroot/cloud
#执行命令开启维护模式
sudo -u nginx php74 occ maintenance:mode --on
#解释: -u后面为web程序的执行用户,根据实际情况替换
#      php74为php-fpm的全局变量,如果没有配置的话就指定php程序的绝对路径
#      occ 是ownCloud的控制台程序,执行命令前确认相对路径内有这个可执行文件
#      maintenance:mode --on 表示开启维护模式

备份原文件

#备份前可以先关闭web程序,nginx或者apache等,我这里没关
#如果主目录和我不同,记得替换成正确路径
cd /opt/www/wwwroot
#我这里直接改名了一下,因为一会要用到,所以没有挪走
mv cloud back

下载官方文件包并解压

#可以去官网下载需要的版本 https://download.owncloud.org/community
wget https://download.owncloud.org/community/owncloud-10.9.1.tar.bz2
#解压文件
tar jxvf owncloud-10.9.1.tar.bz2
#改名(我nginx里的主目录配置的是这个,根据实际情况更改)
mv owncloud cloud

开始更新

首先将配置文件从原目录覆盖到新目录

\cp -ar back/config/config.php cloud/config/

然后复制app目录

\cp -ar back/apps cloud
\cp -ar back/apps-external cloud
#有些时候回提示代码完整性异常,可以删除apps-external内容使用下面命令重新复制后再更新一次
#\cp -ar back//apps-external cloud
#如果之前data目录也在程序目录内,一定要复制回来,要是像我一样是自己配置的目录,可以忽略复制data目录

进到新目录执行更新命令

cd cloud
#更新,命令格式参考开启维护模式
sudo -u nginx php74 occ upgrade
#更新过程中会卡一下,可以多等一会
没有报错的话,就已经更新完成了

接着关闭维护模式

sudo -u nginx php74 occ maintenance:mode --off
#如果之前有关闭nginx或者apache的话记得开启

重新访问地址就会发现已经更新完成了

本文的升级方式参考自官方文档,之前版本就是这么手动更新的,如果有相关问题可以翻阅官方文档,里面会有各种状况的解释