NextCloud迁移服务器方法及问题解决
给小站的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)逐一解决后台安全及设置警告