nextcloud php 部署,Nextcloud 源码部署迁移到容器部署

在以前我们部署 Nextcloud 都是采用 LNMPA 架构和源码来直接部署,到版本升级时一般都需要比较复杂的操作,虽然也还算比较可以接受,但是相比较 Docker 方式而言,这就显得复杂多了,而且还对宿主机的环境还有所要求。因此,今天就来尝试一下从源码部署迁移到容器部署。

备份数据

源码部署方式需要管理员时常备份的数据主要是 Mysql 数据库、程序配置文件 config.php、存储数据三部分,而迁移到 Docker 部署也是需要这三部分即可。

对于 Docker 方式部署来说,存储数据文件夹只需要在启动应用时挂载目录到容器应用的对应目录即可,因此无需做任何更改。

由于配置文件 config/config.php 文件会在 Docker 应用创建是重新生成,只需保证文件中重要部分相同即可。

所以只需备份数据库。

备份数据库

从 phpMyadmin 中备份

这种方式只需要在数据库中选中导出功能,并且将 sql 文件保存到服务器本地目录即可。

从命令行备份

这种方式需要登录服务器操作(如果开放对外访问,那也可在远程操作)。

# 服务器本地操作

mysqldump -u root -p yun > ~/yun.sql

# 文件导出到本地用户主目录

恢复数据

默认服务器已安装 docker-ce 和 docker-compose 工具。

启动容器

首先在 /home/ubuntu/nextcloud 目录下编写如下 docker-compose.yml 文件。

version: '2'

services:

db:

image: mariadb

restart: always

volumes:

- ./db:/var/lib/mysql

environment:

- MYSQL_ROOT_PASSWORD=root

- MYSQL_PASSWORD=nextcloud

- MYSQL_DATABASE=nextcloud

- MYSQL_USER=nextcloud

app:

image: nextcloud

ports:

- 7009:80

links:

- db

volumes:

- ./www:/var/www/html

- /home/data/:/var/www/html/data

restart: always

使用 docker-compose up -d 启动应用。由于数据库和应用配置尚未恢复,此时无法在浏览器上通过http://127.0.0.1:7009访问。

恢复数据库

# 拷贝数据库备份至容器应用中

docker cp /home/ubuntu/yun.sql nextcloud_db_1:/opt/yun.sql

# 导入数据库

mysql -u root -p

# 输入密码 nextcloud

mysql> use nextcloud;

mysql> source /opt/yun.sql

# 导入需要一段时间,稍加等待一下即可

恢复应用配置

数据库恢复完成之后,由于应用配置尚未配置,此时访问会要求应用重新安装一次,其实已经没有再次安装的必要了。

通过拷贝旧配置中的内容即可初始化容器应用,主要内容如下所示:

'passwordsalt' => '一大串文本',

'secret' => '一大串文本',

'datadirectory' => '/var/www/html/data',

'overwrite.cli.url' => 'http://127.0.0.1:7009',

'dbtype' => 'mysql',

'version' => '13.0.3.2',

'dbname' => 'nextcloud',

'dbhost' => 'db',

'dbport' => '',

'dbtableprefix' => 'oc_',

'dbuser' => 'nextcloud',

'dbpassword' => 'nextcloud',

'installed' => true,

'theme' => '',

'loglevel' => 0,

'maintenance' => false,

其中主要包含数据库配置、应用是否安装标志位、关闭维护模式等。

这一步完成之后,浏览器中可以正常访问到应用界面。

不过,如果源码部署的应用版本与 Docker 镜像的应用版本不符时(通常是落后),还需要执行以下命令先升级某些插件之后才能正常访问:

docker exec -u www-data -ti nextcloud_app_1 php occ upgrade

当升级插件完成后,就可以正常使用 Docker 部署的 Nextcloud 了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值