Nextcloud的部署迁移过程

我的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: nextcloud
    container_name: "nextcloud"
    restart: always
    environment:
      - VERDACCIO_PORT=80
    ports:
      - "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.4
    container_name: "mysql"
    restart: "always"
    environment:
      - VERDACCIO_PORT=3306
      - MYSQL_ROOT_PASSWORD=123456
    ports:
      - "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容器内部
Bye

cd /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: redis
    container_name: "redis"
    restart: "always"
    environment:
      - VERDACCIO_PORT=6379
    ports:
      - "6379:6379"
    volumes:
      - ./redis.conf:/etc/redis.conf
      - ./redis.log:/var/log/redis.log
      - ./data:/data
    
docker-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
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 要部署 Nextcloud Talk,您需要完成以下步骤: 1. 安装 Nextcloud 服务器:您可以在官方网站上下载最新版本的 Nextcloud 服务器,然后按照官方文档进行安装和配置。 2. 安装 Nextcloud Talk 插件:在 Nextcloud 服务器上,您需要安装 Nextcloud Talk 插件。您可以在 Nextcloud 的应用商店中找到它,并按照说明进行安装。 3. 配置 Nextcloud Talk:在 Nextcloud 管理面板中,您需要配置 Nextcloud Talk。请确保您已经正确地配置了服务器设置、用户访问权限和媒体设置等。 4. 配置 STUN/TURN 服务器:为了保证 Nextcloud Talk 的最佳运行效果,您需要配置 STUN/TURN 服务器。您可以使用开源的 Coturn 服务器,或者使用第三方服务商提供的 STUN/TURN 服务。 5. 启动 Nextcloud Talk:完成上述步骤后,您可以启动 Nextcloud Talk 并开始使用它。 请注意,部署 Nextcloud Talk 需要一定的技术知识和经验。如果您不熟悉这些步骤,建议您寻求专业的技术支持和帮助。 ### 回答2: Nextcloud Talk 是一种开源的实时通信和协作工具,可以通过自己搭建的 Nextcloud 服务器进行部署。以下是关于 Nextcloud Talk 部署的简要说明。 首先,你需要一个运行 Nextcloud 服务器的环境。这可能包括一个虚拟机、云服务器或者你自己的物理服务器。确保你的服务器满足 Nextcloud 的系统要求,并安装了适当的操作系统和服务。 接下来,你需要安装和配置 Nextcloud 服务器。你可以从 Nextcloud 的官方网站上下载 Nextcloud 服务器软件包,并按照说明进行安装。安装完成后,根据你的需求进行基本设置,如创建管理员账户和配置数据库等。 然后,你需要安装 Nextcloud Talk 扩展。在 Nextcloud 的应用商店中找到 Nextcloud Talk,点击安装并根据说明完成配置。确保你的服务器上已经安装了支持 Nextcloud Talk 扩展所需的额外依赖项,如 WebRTC 和 STUN/TURN 服务器。 完成上述步骤后,你就可以开始使用 Nextcloud Talk 了。你可以通过 Nextcloud 界面中的通讯录来添加联系人,并通过邀请链接邀请其他人加入你的会话。Nextcloud Talk 提供了音频和视频通话、聊天、屏幕共享等功能,可以满足你的实时通信和协作需求。 值得注意的是,Nextcloud Talk 的部署可能因具体的环境和配置而有所差异。如果你遇到了问题,可以参考 Nextcloud 的官方文档和社区论坛,或者寻求专业的技术支持。 ### 回答3: Nextcloud Talk是一款开源的即时通讯和视频通话应用,可以在Nextcloud私有云平台上进行部署。下面是Nextcloud Talk部署的步骤和注意事项: 1. 首先,确保你已经有一个运行Nextcloud的Web服务器。如果尚未安装Nextcloud,请按照官方文档进行安装和配置。 2. 在Nextcloud中,安装Nextcloud Talk插件。在Nextcloud应用商店中搜索"Talk",然后点击安装按钮。 3. 安装完成后,进入Nextcloud的管理页面,点击“Talk”插件的设置选项。 4. 在设置选项中,你可以配置自己的服务器地址、通话设置和安全选项。根据你的需求进行相应的配置。 5. 接下来,你需要为Nextcloud Talk配置STUN/TURN服务器。STUN/TURN服务器用于在NAT后面的客户端之间建立P2P连接或进行中继。你可以使用公共的STUN/TURN服务提供商,或者自己搭建STUN/TURN服务器。 6. 配置好STUN/TURN服务器后,保存并应用设置。现在,你可以开始使用Nextcloud Talk进行即时通讯和视频通话了。 注意事项: - 确保你的服务器满足NextcloudNextcloud Talk的硬件和软件要求。 - Nextcloud Talk支持WebRTC,因此确保你的浏览器支持WebRTC技术。 - 如果你想使用最新的Nextcloud Talk功能和安全更新,保持插件处于最新版本。 - 需要注意的是,Nextcloud Talk需要较高的服务器和带宽要求,尤其是在大规模使用时。 通过按照上述步骤进行Nextcloud Talk部署和配置,你将能够在自己的Nextcloud私有云平台上使用该应用,并实现即时通讯和视频通话的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值