Nextcloud的部署迁移过程
我的nextcloud原来是部署在物理机上的,并且是通过宝塔直接安装的,那么他的很多依赖软件的安装就不那么好管控,比如nextcloud本身依赖的软件还有:mysql、redis、nginx等,它们的文件路径都不好找,并且宝塔部署的nextcloud现在使用不了了,问题排查过程十分复杂,所以我决定不修复了,直接将nextcloud进行迁移,使用容器的方式重新部署安装,并将原来的数据恢复过来。
经过之前gitlab的迁移,我发现服务的迁移过程大致可以分为一下几个步骤:
- 备份原有服务的数据(这个数据包括他的一些服务数据以及配置文件)
- 在新的服务器上起新的服务(起新服务的时候需要考虑版本、依赖、配置文件等等是否相同)
- 恢复数据(既要保证服务的可用性,还要保障原有数据不能丢失)
部署迁移过程
新起的容器都放在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
Nextcloud的部署迁移过程相关推荐
- Docker+Nextcloud快速部署个人网盘
各位大佬好,,,萌新顾北清又回来更新了,今天要快速部署一个人网盘. 有多快呢,,,5分钟吧,因为我们使用Docker部署. Docker基础可以看看我之前的博文.(点这里点这里) 那么,,,开始吧. ...
- nextcloud php 部署,CentOS7环境部署Nextcloud
CentOS7环境部署NextCloud 13 介绍:Nextcloud是一款免费开源的私有网盘软件,支持存储文件,在线预览视频.图片,支持多用户(Seafile免费版只支持到3用户),支持移动端使用 ...
- Linux学习——废旧电脑再利用Ubuntu部署私有云Nextcloud
Linux学习--废旧电脑再利用Ubuntu部署私有云Nextcloud 一.引言 最近在网络上学到如何在电脑Ubuntu系统上部署私有云Nextcloud,部署完发现相当实用,可以当作自己的私有网盘 ...
- 树莓派是网盘?nextcloud在树莓派上的应用
不出意外这就是 2020 年的最后一篇博客,写个好玩的东西跟大家分享一下.话接上文,我在双十二期间买了一个树莓派4 4G 内存版,还给它配了个 64G 小固态.但好几天没想好怎么用它,在使用 oneD ...
- Debian - 搭建NextCloud私人云盘
nextcloud简介 nextcloud前身是大名鼎鼎的owncloud,两者均是开源的网络硬盘系统.nextcloud不仅可以搭建私有云存储和同步数据,也提供联系人.日程管理功能,web端还提供私 ...
- 部署next cloud
文章目录 一.文件编写 二.nextcloud配置 三.部署出现的几个问题 一.文件编写 deployment apiVersion: apps/v1 kind: Deployment metadat ...
- CentOS 7 搭建Nextcloud私有网盘
安装前准备 安装编辑等插件 yum install -y nano wget 关闭selinux nano /etc/sysconfig/selinux 重启服务器 LAMP安装 安装http服务并启 ...
- 家庭私有云盘系列教程-安装使用NextCloud个人云存储系统
2019独角兽企业重金招聘Python工程师标准>>> 方案前文:建立一个家庭私有云盘方案系列教程+N2n+Nextcloud 前一篇:家庭私有云盘系列教程-建立公网服务器实现外网访 ...
- nextclou安装配置和优化
nextcloud的手动安装 1.安装环境 1.1.安装Apache2 1.2.安装PHP7.4 1.3.安装MySQL8.0 1.4.安装各种配套模块 2.nextcloud的部署 2.1.next ...
最新文章
- 人类或起源于古菌?真假?
- 解决第一个div浮动,后面div覆盖的问题
- 【学习笔记】低代码平台(LCAP:Low-Code Application Platform)
- brew install php55redis,Mac下安装LNMP环境
- sass导入sass_如何使用Sass Mixins和Loops
- 万网域名注册查询接口(API)的说明
- aes解密算法 java_AES算法实现Java和JS互通加解密
- 招聘:以考试为主,面试为辅
- python代码转java工具_Python代码转为java代码?
- linux多线程调度设置
- IDEA安装Vue插件
- JAVA基础,输入/输出(I/O)流
- 394高校毕业设计选题
- 姚爱红计算机组成原理知识要点,计算机组成原理课程混合教学模式探究
- Mac 显示/不显示隐藏文件
- 在使用btest中的demo中遇到 multiple definition of 的问题!
- 背包问题专栏(01,完全,多重)
- 【npm】npm发布测试(beta)版和正式版
- 冠捷aoc显示器不满屏显示器上没有AUTO键解决
- Mysql第四天笔记03——高级查询