docker搭建nextcloud与onlyoffice(最详细)

1.前言

由于需要搭建一个带有权限系统并且能够实时编辑的文件上传系统,经过查询找到了nextcloud+onlyoffice的组合,nextcloud主要是实现带有权限的文件上传,onlyoffice是使nextcloud能够实时编辑文档,包括world,excel等常见文档格式。本文中我使用的是nextcloud23.0.0版本,onlyoffice7.4.0版本具体的版本可以去官网查看对应,如果不对应的话可能会连接不上。

我是在http://apps/nextcloud.com中搜索onlyoffice就能看到具体的版本对应

2.docker拉取mysql、nextcloud、onlyoffice

nextcloud使用时可以选择是否需要数据库,不使用数据库的话能够导入的文件就少,所以我使用的是mysql。数据库可以使用已经搭建好的mysql或者psql。


docker pull mysql:latest
docker pull nextcloud:23.0.0
docker pull onlyoffice/documentserver:7.4.0

下载需要时间会有一些长,耐性等待即可

3.安装,配置mysql


docker run -p 3306:3306 --name mysql --restart="always" -v /usr/local/mysql/conf:/etc/mysql/conf.d -v /usr/local/mysql/logs:/logs -v /usr/local/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql

***********04d8c735c3b6133fb3af83d321bc72*************

docker ps |grep mysql

757******bbb4 mysql               "docker-entrypoint.s…"   32 seconds ago      Up 31 seconds       0.0.0.0:3306->3306/tcp, 33060/tcp   fno_mysql

docker exec -it 757******bbb4 /bin/bash

root@75767208bbb4:/# mysql -uroot -p

Enter password: 

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.20 MySQL Community Server - GPL
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;  #授权root登录

Query OK, 0 rows affected (0.01 sec)
#修改root账号的密码验证插件类型为mysql_native_password这是mysql8之后的问题:

mysql> ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;

Query OK, 0 rows affected (0.02 sec)

mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

Query OK, 0 rows affected (0.01 sec)

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.01 sec)

#创建一个存储nextcloud 数据的数据库

mysql>create database nextcloud;

4.安装nextcloud

#请自行修改端口号与映射地址
docker run -d \
-v /root/nextcloud/html:/var/www/html \
-v /root/nextcloud/apps:/var/www/html/custom_apps \
-v /root/nextcloud/config:/var/www/html/config \
-v /root/nextcloud/nextcloud/data:/var/www/html/data \
-v /root/nextcloud/themes:/var/www/html/themes  \
-p 8080:80   --name nextcloud --restart="always" nextcloud:23.0.0

安装后一定要检查防火墙是否已经关闭,如防火墙处于开启状态,Nextcloud 则无法登录 MySQL 数据库,关闭防火墙后再进行登录。

查看防火墙状态

 systemctl status firewalld

暂时关闭防火墙

 systemctl stop firewalld

永久关闭防火墙

 systemctl disable firewalld

访问 http://安装主机ip:8080/ 

创建管理员账号密码,密码不可以太简单

配置mysql信息,数据库为上面创建的数据库名称

这一步需要很长时间,在这时间之内我们可以去配置onlyoffice

5.安装onlyoffice


docker run -i -t -d -p 6060:80 --restart=always \
-v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
-v /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice \
-v /app/onlyoffice/DocumentServer/db:/var/lib/postgresql  --name onlyoffice --restart="always" onlyoffice/documentserver:7.4.0

启动之后可以去登录 ip:6060访问,查看是否启动成功

6.配置nextcloud连接onlyoffice

这个问题真是困扰我很久时间,不知道如何连接,最后突发奇想,需要在nextcloud中的apps下添加一个onlyoffice的连接器,需要去http://apps/nextcloud.com 中搜索onlyoffice中下载

注:此操作需要魔法上网,不然很慢

搜索onlyoffice

找到23版本的nextcloud

点击23

找到7.4.0之后下载

下载之后需要放到虚拟机中,解压然后放到nextcloud中的映射在本地的文件/root/nextcloud/apps之中,重新启动nextcloud之后登录就可以在 应用中看到 onlyoffice,将onlyoffice开启

然后找到设置找到onlyoffice进行配置

在onlyoffice7.2版本之后,需要使用秘钥才能连接上

在命令行界面执行命令

#此命令可以访问http://你的ip:6060时会出现

sudo docker exec onlyoffice /var/www/onlyoffice/documentserver/npm/json -f /etc/onlyoffice/documentserver/local.json 'services.CoAuthoring.secret.session.string' 

onlyoffice doc地址填入http://ip:6060

将得到的秘钥输入进去

点击保存,OK了 可以使用了

7.删除

如果在安装过程中遇到了版本问题,想要删除镜像,请不要忘记映射在本地的文件,其中有配置文件,如果不进行删除的话,在重新创建管理员账号时会出现问题

8.补充

此方法只支持在局域网中的设备使用

服务器每次重启,onlyoffice的秘钥就会进行改变,请不要忘记配置

nextcloud创建新用户时密码不能过于简单,nextcloud中有一万种以上的简易密码组合,如果过于简单则无法创建新用户,报错信息只出现一瞬间,极难发现

  • 29
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值