Nextcloud的部署迁移过程
admin
2024-05-20 00:21:54
0

我的nextcloud原来是部署在物理机上的,并且是通过宝塔直接安装的,那么他的很多依赖软件的安装就不那么好管控,比如nextcloud本身依赖的软件还有:mysql、redis、nginx等,它们的文件路径都不好找,并且宝塔部署的nextcloud现在使用不了了,问题排查过程十分复杂,所以我决定不修复了,直接将nextcloud进行迁移,使用容器的方式重新部署安装,并将原来的数据恢复过来。
经过之前gitlab的迁移,我发现服务的迁移过程大致可以分为一下几个步骤:

  1. 备份原有服务的数据(这个数据包括他的一些服务数据以及配置文件)
  2. 在新的服务器上起新的服务(起新服务的时候需要考虑版本、依赖、配置文件等等是否相同)
  3. 恢复数据(既要保证服务的可用性,还要保障原有数据不能丢失)

部署迁移过程

新起的容器都放在172.16.10.130这台服务器上

1.在服务器上起一个nextcloud的容器

我是通过docker-compose的方式启动一个新的nextcloud的容器的,yml文件如下

vim docker-compose.yaml
cat docker-compose.yaml
version: '3'
services:nextcloud:image: nextcloudcontainer_name: "nextcloud"restart: alwaysenvironment:- VERDACCIO_PORT=80ports:- "8080:80"volumes:- "/home/docker/nextcloud/nextcloud:/var/www/html/"docker-compose up -d

2.在服务器上起一个mysql的容器

在服务器上起一个mysql的容器,并且通过mysqldump命令将原来物理机上安装的mysql数据备份到容器里
起mysql的容器,由于原来物理机上使用的mysql是mariadb10.4的版本,所以新的容器上我们使用相同的版本

vim docker-compose.yaml
cat docker-compose.yaml
version: '3'
services:mysql:image: mariadb:10.4container_name: "mysql"restart: "always"environment:- VERDACCIO_PORT=3306- MYSQL_ROOT_PASSWORD=123456ports:- "3306:3306"docker-compose up -d

在原来物理机上打包原始nextcloud的用户信息数据(存放在mysql表里)

# nextcloud的数据存放在原来物理机上mysql的cloud_easy数据库中,将它打包放到一个文件夹中
sudo mysqldump -ucloud_easy -p123456 -h127.0.0.1 --databases cloud_easy >/home/xieshan/nextcloud.sql
# 将打包好的文件复制到要起容器所在的服务器上
sudo scp nextcloud.sql docker@172.16.10.130:/home/docker/mysql

在新起的mysql容器上恢复mysqldump打包的数据

# 执行恢复数据之前,需要先吧mysqldump的备份包复制到mysql容器中,并且到mysql数据库中去创建原来物理机上相应的用户跟相应的表
docker cp nextcloud.sql mysql:/tmp    #将nextcloud.sql复制到容器中的/tmp目录下
docker exec -it mysql /bin/bash    #进入到mysql容器内部
mysql -uroot -p123456    #进入到mysql数据库内部
MariaDB [(none)]> create user 'cloud_easy'@'localhost' identified by '123456';    #创建用户
Query OK, 0 rows affected (0.002 sec)MariaDB [(none)]> create database cloud_easy;    #创建数据库
Query OK, 1 row affected (0.001 sec)MariaDB [(none)]> grant all on cloud_easy.* to 'cloud_easy'@'%' identified by '123456' with grant option;        #授权
Query OK, 0 rows affected (0.003 sec)        FLUSH PRIVILEGES;
MariaDB [(none)]> exit    #退出数据库,回到mysql容器内部
Byecd /tmp
mysql -ucloud_easy -p123456 cloud_easy < nextcloud.sql    #恢复数据
exit    #退出容器,回到130服务器上

在拷贝data数据之前,先去到web界面上访问172.16.10.130:8080,然后配置一个root用户,然后配置登录进去就OK了

3.将原来物理机上的存储文件拷贝到新的容器里

mysql是一个关系型数据库,里面没有存到具体的文件,而是一个键值映射,原来物理机上真正存放具体文件的目录是/data/www/cloud.easycomputation.com/data,将这个文件夹拷贝到130上nextcloud容器的/var/www/html/data下面
原来物理机上

sudo scp -r ./data root@172.16.10.130:/home/docker/nextcloud/nextcloud/

然后迁移就差不多完成了,去到web界面上访问192.168.0.130:8080,配置登录进去就算成功了

4.启动一个redis缓存容器

由于nextcloud使用起来很慢,经常卡顿,所以决定增加一个redis缓存,同样使用docker容器来部署Redis,docker部署的Redis本身是没有redis.conf文件的,所以需要自己在网上找一个redis的配置文件,然后映射进去(记得配置log的文件地址)

vim docker-compose.yaml
cat docker-comppose.yaml
version: '3'
services:redis:image: rediscontainer_name: "redis"restart: "always"environment:- VERDACCIO_PORT=6379ports:- "6379:6379"volumes:- ./redis.conf:/etc/redis.conf- ./redis.log:/var/log/redis.log- ./data:/datadocker-compose up -d

启动了redis之后再使redis和nextcloud联动起来,需要修改nextcloud的配置文件config.php

vim config.php'memcache.local' => '\\OC\\Memcache\\APCu',        #找到文件中的这一行,然后增加下面几行'memcache.locking' => '\OC\Memcache\Redis','redis' => array('host' => '172.16.10.130','port' => 6379,),docker restart nextcloud    #重启nextcloud

相关内容

热门资讯

大话西游外传里方寸,白骨,瑶池... 大话西游外传里方寸,白骨,瑶池3个门派比起来哪2个门派PK厉害?这个要看你是什么样的角色要是你是仙当...
我儿子今年二十多岁了,性格内向... 我儿子今年二十多岁了,性格内向,总是不愿和父母交流。怎么办?您好孩子的性格有些是与生俱来的,也有后天...
车牌号什么样的组合比较好,什么... 车牌号什么样的组合比较好,什么车牌号最好代号什么样的组合比较好?什么车牌号最好?车牌号什么样的组合比...
妲己为什么迷惑纣王 妲己为什么迷惑纣王在电视剧《封神演义》中,商纣王是一位昏君,苏妲己并非自愿服侍商纣王,而是被逼无奈,...
火影里爱情故事的结局应该是怎样... 火影里爱情故事的结局应该是怎样的?鸣人、佐助、小樱、雏田、或者香磷等等人最后到底是怎么样的呢?佐助最...
五个月给宝宝吃米糊,晚上睡觉前... 五个月给宝宝吃米糊,晚上睡觉前吃可以吗亲,如果母乳足够,是不需要的呢,如果宝宝晚上经常吃夜奶,说明宝...
蝙蝠祝寿寓言故事的道理 蝙蝠祝寿寓言故事的道理认清自己的立场。《蝙蝠祝寿》是一篇中国的寓言故事,表达了人要认清自己的立场,不...
心碎了一地是哪首歌里面的 心碎了一地是哪首歌里面的无言的另一个结局
牛,羊,龙哪个生肖大 牛,羊,龙哪个生肖大只有先后没有大小,牛排第二只有先后没有大小 ...
关于别生气了的歌曲有吗 关于别生气了的歌曲有吗宝贝,对不起
一般好兄弟在一起会发生矛盾的多... 一般好兄弟在一起会发生矛盾的多一些还是不会发生矛盾的多一些!一般就算吵架都会为兄弟之情着想吧?一般来...
中文伤感歌曲 中文伤感歌曲 张信哲槐锋 《从开始到现在》,《白月光》 罗志祥 《灰色空间》,《小丑鱼》,《自我...
音响声音断断续续,听音乐或者看... 音响声音断断续续,听音乐或者看电影的时候,每句话总有一两个字放不出来,台式机外接的那种。声音开到很音...
店小二传奇好看吗? 店小二传奇好看吗?~~~~~~~~~~~~~··
残酷人生谁落兮了岁尘什么意思 残酷人生谁落兮了岁尘什么意思人生是残酷的,谁又能左右的料红尘呢,一切由上天安排,自己只能默默去承受,...
阅读对话,回答问题 阅读对话,回答问题第一题的答案是:There,four  dolls第2题的答案是:It"red
神话故事中的“神仙”,会是远古... 神话故事中的“神仙”,会是远古拜访地球的外星人吗?甚至可能是这些外星文明主动接触了这些远古先民们,于...
人怎样通过呼吸聚集生物能量 人怎样通过呼吸聚集生物能量  能量(energy)是质量的时空分布可能变化程度的度量,用来表征物理系...
一个人呆着也很好,没觉得孤独。... 一个人呆着也很好,没觉得孤独。为何别人老以为我没有结婚一个人会很孤独呢?可能结了婚有家人陪伴,才觉得...
石家庄夏夜出游新地标!每天19... 自7月12日起至8月31日,赵州桥景区倾力打造的大型沉浸式夜游活动“梦回赵州,一眼千年”将正式拉开帷...