如果使用 pacman -Syu 升级所有包后由于Nextcloud版本过低而出现 This version of Nextcloud is not compatible with PHP 7.2或者由于在线升级错误而出现Nextcloud无法打开使用,可以根据以下操作手动升级Nextcloud版本。
- 备份Nextcloud数据库
通过如下命令查询Nextcloud数据库名
mysql -u root -p -e "show databases"
输入MariaDB/MySQL root 用户密码后可以查看所有数据库名如下
+--------------------------------------+
| Database |
+--------------------------------------+
| information_schema |
| mysql |
| nextcloud |
| performance_schema |
+--------------------------------------+
可以看到有Nextcloud,使用 mysqldump 备份数据库,如果有自定义名称,将名称替换为自定的。
mysqldump -u root -p nextcloud > /usr/share/nginx/nextcloud.sql
- 备份Nextcloud data和config.php
将Nextcloud备份为Nextcloud_bak,如果默认没有修改data存储位置,即可备份全部
# Backup old nextcloud version.
cd /usr/share/nginx
mv nexcloud nexcloud_bak
config.php 位于nextcloud/config目录下
- 下载最新版本Nextcloud
如果安装有wget可以通过下命令进行下载,下载缓慢时可以通过其它浏览器下载好后复制到服务器/usr/share/nginx下面
wget https://download.nextcloud.com/server/releases/nextcloud-15.0.7.zip
unzip nextcloud-15.0.7.zip
下载后可以到如下地址下载对应MD5和GPG核对下载的文件
核对地址 https://nextcloud.com/install/#instructions-server
- Nextcloud恢复备份数据
通过如下命令恢复Data及config.php,或直接将Data目录放入其它地方后直接修改config.php的Data引用位置,以方便后续数据太多时升级。
# /usr/share/nginx
cp -rf nextcloud_bak/data nextcloud
cp -rf nextcloud_bak/config/config.php nextcloud/config/
赋予http用户文件夹用权限
chown -R http:http nextcloud
find nextcloud/ -type d -exec chmod 750 {} \;
find nextcloud/ -type f -exec chmod 640 {} \;
- PHP配置修改和OCC安装更新
修改之前恢复的文件config.php里面关于Nextcloud的版本为当前下载的版本,不然更新时会提示如下错误 Exception: Updates between multiple major versions and downgrades are unsupported 修改/etc/php目录下的php.ini里如下配置,根据自己需要修改,Memory低于512M时,更新会提示The PHP memory limit is below the recommended value of 512MB
Memory Limit: 512 MB
Max Execution Time: 3600
Upload max size: 1 GB
此时打开Nextcloud的地址就会显示更新版本,提示会有更新较大,需要花费一些时间,建议使用OCC进行升级。以命令进行升级和关闭升级后维护模式
sudo -u http php occ upgrade
sudo -u http php occ maintenance:mode --off
此时就可以正常访问更新的Nextcloud. 关于数据库文件的恢复,如果之前没有删除或修改之前数据库,confg.php里面没有修改就可以直接使用之前版本设置的用户。如果有修改或删除还请参考如下恢复数据库
Nextcloud官网恢复指引 https://docs.nextcloud.com/server/15/admin_manual/maintenance/restore.html
Nextcloud官网 Upgrade manually 指引 https://docs.nextcloud.com/server/15/admin_manual/maintenance/manual_upgrade.html