如果使用 pacman -Syu 升级所有包后由于Nextcloud版本过低而出现 This version of Nextcloud is not compatible with PHP 7.2或者由于在线升级错误而出现Nextcloud无法打开使用,可以根据以下操作手动升级Nextcloud版本。 备份Nextcloud数据库
通过如下命令查询Nextcloud数据库名
```bash mysql -u root -p -e "show databases" ``` 输入MariaDB/MySQL root 用户密码后可以查看所有数据库名如下 ```other +--------------------------------------+ | Database | +--------------------------------------+ | information_schema | | mysql | | nextcloud | | performance_schema | +--------------------------------------+ ``` 可以看到有Nextcloud,使用 mysqldump 备份数据库,如果有自定义名称,将名称替换为自定的。 ```bash mysqldump -u root -p nextcloud > /usr/share/nginx/nextcloud.sql ``` 备份Nextcloud data和config.php 将Nextcloud备份为Nextcloud_bak,如果默认没有修改data存储位置,即可备份全部 ```bash # Backup old nextcloud version. cd /usr/share/nginx mv nexcloud nexcloud_bak ``` config.php 位于nextcloud/config目录下-
下载最新版本Nextcloud
核对地址 https://nextcloud.com/install/#instructions-serverNextcloud恢复备份数据
通过如下命令恢复Data及config.php,或直接将Data目录放入其它地方后直接修改config.php的Data引用位置,以方便后续数据太多时升级。
```bash # /usr/share/nginx cp -rf nextcloud_bak/data nextcloud cp -rf nextcloud_bak/config/config.php nextcloud/config/ ``` 赋予http用户文件夹用权限 ```bash 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 ```php Memory Limit: 512 MB Max Execution Time: 3600 Upload max size: 1 GB ``` 此时打开Nextcloud的地址就会显示更新版本,提示会有更新较大,需要花费一些时间,建议使用OCC进行升级。以命令进行升级和关闭升级后维护模式 ```bash 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