OwnCloud跨版本迁移至NextCloud

背 景

为满足同事之间及给客户分享文件的目标,使用CentOS7.9搭建了一套owncloud平台,基于LNMP架构,MySQL、PHP都是源码编译安装,nginx发布,并支持https协议;

最近公司强抓网络安全、信息安全,经安全扫描,扫描到该平台存在很多安全漏洞;

包含PHP的安全漏洞、owncloud本身对用户密码、错误登录次数、密码复杂度,没有要求;

基于以上,升级PHP的麻烦,owncloud用户账号安全漏洞,想到将owncloud平台迁移至nextcloud;

为了简化安装部署的过程,这里选择适用docker部署方式,选择最新版本的nextcloud镜像,其内部封装了最新版本的php,这样就不用再手动部署php;

owncloud_v10.6.0------>nextcloud_v24.0.2

数据库继续使用CentOS主机上的MySQL;

一、创建nextcloud数据库及nextcloud用户,授权

#create database nextcloud default character set utf8mb4 collate utf8mb4_unicode_ci;
#CREATE USER 'nextcloud'@'%' IDENTIFIED BY 'NextCloudPassword';
#GRANT ALL ON nextcloud.* TO 'nextcloud'@'%';

二、拉取nextcloud的docker镜像,创建nextcloud容器

#docker search nextcloud
#docker pull nextcloud
#mkdir -pv /data/nextCloud/data
#docker run --name nextCloud \
-p 8081:80  \
-v /data/nextCloud/data:/var/www/html/data \
--restart unless-stopped \
-d nextcloud:latest \

三、owncloud上的数据迁移至nextcloud

我也尝试过从owncloud数据库备份,恢复到nextcloud数据库上,升级失败;

经过分析nextcloud和owncloud数据库,表的数量都差很多,数据结构有很大差异,所以这种方式无法实现自动升级;

只能一个用户一个用户的数据进行迁移;

步骤:

a、先在nextcloud创建owncloud已有的用户(如果知道所有用户的密码,保持密码不变可实现客户无感知升级);

b、将owncloud的各个用户的数据目录下的文件cp到nextcloud对应的用户数据目录下;

/data/owncloud/data/user1/files -----> /data/nextcloud/data/user1/files/

/data/owncloud/data/user2/files -----> /data/nextcloud/data/user2/files/

/data/owncloud/data/user3/files -----> /data/nextcloud/data/user3/files/

c、重新扫描nextcloud的文件:

所有用户的数据cp完后;

#docker exec -u www-data nextCloud php occ files:scan --all

扫描后,就可以登录nextcloud检查验证数据的完整性了。


扫一扫关注作者公众号

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值