Docker搭建nextcloud应用及迁移


环境准备:docker(本次搭建版本为 24.0.7)
Docker-compose(版本:v2.22.0)
1、创建Docker Compose文件:
在你的项目目录中创建一个名为docker-compose.yml的文件,并添加以下内容:

version: '2'
volumes:
  nextcloud:
  db:
services:
  db:
    image: mariadb:10.6
    restart: always
    command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
    volumes:
      - /home/zkah/nextcloud/db:/var/lib/mysql //这里用相对路径可能会出bug,最好使用绝对路径
    environment:
      - MYSQL_ROOT_PASSWORD=your_password
      - MYSQL_PASSWORD=your_password
      - MYSQL_DATABASE=your_database
      - MYSQL_USER=your_name
  app:
    image: nextcloud
    restart: always
    ports:
      - 6000:80  //可根据服务器内端口占据情况更改,6000端口是保留端口不能用
    links:
      - db
    volumes:
      - /home/zkah/nextcloud/nextcloud:/var/www/html  //这里用相对路径可能会出bug,最好使用绝对路径
    environment:
      - MYSQL_PASSWORD=your_password
      - MYSQL_DATABASE=your_database
      - MYSQL_USER=your_name
      - MYSQL_HOST=db


2、启动Docker容器:

打开终端,导航到存放docker-compose.yml文件的目录,然后运行以下命令:
 

docker-compose up -d


这会下载并启动Nextcloud和MariaDB容器。
3、访问Nextcloud:
打开浏览器,访问 http://localhost:6000。在第一次访问时,你需要设置管理员账户和密码。
## 问题一:网站无法访问
原因一:防火墙的端口策略未放开,打开防火墙(sudo ufw allow 80

## 原因二:局域网内可能不能访问,可修改config.php文件
通常此配置文件在/home/zkah/nextcloud/nextcloud/config路径下,
通常情况下此文件的权限属于root,需要更改,否则更改之后数据无法写入

<?php
$CONFIG = array (
  'htaccess.RewriteBase' => '/',
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'apps_paths' =>
  array (
    0 =>
    array (
      'path' => '/var/www/html/apps',
      'url' => '/apps',
      'writable' => false,
    ),
    1 =>
    array (
      'path' => '/var/www/html/custom_apps',
      'url' => '/custom_apps',
      'writable' => true,
    ),
  ),
  'upgrade.disable-web' => true,
  'instanceid' => 'oc41wr1ir13z',
  'passwordsalt' => 'mmgKQ9LnSe1ihCWVXQd6+++vwPW5l5',
  'secret' => 'Fhzxg3ppD4OcNxcDwTSRlwJujK9NaUA2sH3ckHSjUxJ4jFla',
  'trusted_domains' =>
  array (
    0 => '192.168.1.123:6000',//这里填写访问的地址
  ),
  'datadirectory' => '/var/www/html/data',
  'dbtype' => 'mysql',
  'version' => '28.0.1.1',
  'overwrite.cli.url' => 'http://192.168.1.123:6000', //这里填写访问的地址
  'dbname' => 'your_name',
  'dbhost' => 'db',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'mysql.utf8mb4' => true,
  'dbuser' => 'user',
  'dbpassword' => 'passwd',
  'installed' => true,
  'appstoreenabled' => true,
  'appstoreurl' => 'https://www.orcy.net/ncapps/v2/',
);
​
#另一种修改方式(不进入此目录修改)

vim config.php

//写入更改后的内容

docker scp /path/to/your/local/config.php CONTAINER_ID:/var/www/html/config/config.php


# 将 /path/to/your/local/config.php 替换为修改后的文件路径,CONTAINER_ID 替换为 Nextcloud 容器的 ID。您可以使用 docker ps 命令查看运行中的容器及其 ID。

docker ps //查看对应docker id
#修改权限
Sudo  chown  www-data:www-data /path/to/your/local/config.php/config.php  
Chmod 740 /path/to/your/local/config.php/config.php
docker-compose restart app //重启docker 容器


​


## 问题三:nextcloud应用商城无法访问的情况,此两行为应用商店加速服务
 

'appstoreenabled' => true,
 'appstoreurl' => 'https://www.orcy.net/ncapps/v1/',

# 问题四:若是还是不能访问,可关闭服务(进入docker-compose.yml所在的文件夹)

docker-compose down //关闭
docker-compose up -d //开启


4、通常在nextcloud的创建用户界面会选择数据库,将docker-compose.yml文件中所创建的数据库用户和密码填入其中就行。

数据迁移
步骤1:备份数据
1、备份 Nextcloud 数据目录:

tar czf nextcloud_data_backup.tar.gz -C /path/to/your/local/nextcloud .


2、备份数据库

docker exec -i nextcloud_db_1 mysqldump -u dbuser -pyou_passwd dbname > nextcloud_db_backup.sql


步骤2:传输备份文件到新服务器
将上述备份文件传输到新服务器,例如使用 scp 或其他文件传输工具。
步骤3:在新服务器上准备 Nextcloud
1、在新服务器上安装 Docker 和 Docker Compose:
根据新服务器的操作系统,安装 Docker 和 Docker Compose。
2、创建新的目录用于 Nextcloud 数据和数据库:

mkdir -p /path/to/your/local/nextcloud /path/to/your/local/db


步骤4:编辑新的 docker-compose.yml 文件(可于迁移之前的一样,之后就没有创建账户这一步填写数据库密码和之前一样就行)
步骤5:在新服务器上启动 Nextcloud
在新服务器上运行以下命令以启动 Nextcloud:

docker-compose up -d


步骤6:导入备份数据
1、将数据目录导入:

tar xzf nextcloud_data_backup.tar.gz -C /path/to/your/local/nextcloud


2、将数据库导入:

docker exec -i new_nextcloud_db_1 mysql -u dbuser -pyou_passwd dbname < nextcloud_db_backup.sql


步骤7:验证和测试
在浏览器中访问新服务器的 Nextcloud 实例,确保能够登录,并且用户数据和应用程序都可用。

问题五:不联网之后,点击应用界面一直转圈圈
解决方法:
禁用或修改设置检查: 在 config/config.php 中,你可以尝试禁用互联网连接检查。在配置中添加以下行:

'appstoreenabled' => false,
'appstoreurl' => '',
'check_for_working_internet_connection' => false,


这将禁用应用商店和互联网连接检查。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值