NextCloud迁移服务器方法及问题解决

PHP, 折腾 2019/12/10

给小站的NextCloud服务器搬迁,踩了一些坑,记录一下。

一、文件备份还原

先备份整站文件数据,需要注意的

/data 目录下可能会有之前升级产生的备份文件(updater-****开头),可以删除

我用的宝塔的一键迁移功能,其他环境可以直接打包nextcloud所在目录,比如:

#tar打包
tar czvf file.bugxia.com.tar.gz /www/wwwroot/file.bugxia.com
#zip打包
zip -r file.bugxia.com.zip /www/wwwroot/file.bugxia.com

将文件数据转移到目标服务器解压即可。

如果Nextcloud在安装时使用的是MySQL数据库方案,则还需要备份还原数据库,而NextCloud迁移中易出问题的主要是数据库的还原

二、数据备份还原

1.phpmyadmin备份及导入

2.mysqldump命令备份及导入

root\asdf1234分别为MySQL数据库root用户名密码

mysqldump -u root -p asdf1234 file > /root/file.sql

得到Nextcloud的数据库备份 .sql 文件,再通过phpmyadmin或者mysql命令导入:

mysql -u root -p asdf1234 file < /root/file.sql 

三、Nginx配置备份还原

四、出现问题

迁移后,打开NextCloud网站,报错 Internal Server Error

第一反应是PHP的对应扩展没有正确安装。果然,新服务器上,PHP的fileinfo、apcu、redis都没有装……一顿捣鼓

还是不行……继续检查

先删除NextCloud目录下 /data/nextcloud.log 文件,再在网页端访问一下,然后打开这个log文件,目的是记录错误日志

果然有一堆错误,从头往下逐一看

An exception occurred while executing ‘SELECT * FROM `oc_authtoken`……Base table or view not found……Table ‘oc_authtoken’ doesn’t……

oc_authtoken表丢失了,于是返回检查数据库,果然少了一些表,重新备份数据库,手动导入,报错

#1071 – Specified key was too long; max key length is 767 bytes

想起在 宝塔面板部署NextCloud(16.0.0)逐一解决后台安全及设置警告 中曾修改过MySQL的配置

在 [mysqld] 配置段里加入

innodb_large_prefix=true
innodb_file_format=barracuda
innodb_file_per_table=1

一顿捣鼓……再次导入

导入sql文件时注意取消 不要给零值使用自增,否则又会报错,这里没截到图……

导入成功

再次打开网页,居然好了……

五、一些优化

打开设置的概览页检查,零零星星还有几个小问题,都可以参考以前的文章逐一解决

13.x对应:宝塔面板部署NextCloud逐一解决后台安全及设置警告

14.x对应:宝塔面板部署NextCloud(14.0.3)逐一解决后台安全及设置警告

16.x对应:宝塔面板部署NextCloud(16.0.0)逐一解决后台安全及设置警告

相关:宝塔面板下nextcloud完美优化配置

五、完美迁移

本文标签:


评论(本站已开启评论回复邮件通知功能,请如实填写邮箱以便及时收到回复)