docker部署nextcloud+onlyoffice详细教程【外置MySQL】

news2024/11/17 1:35:05

一、部署环境

系统版本:CentOS Linux release 7.9.2009 (Core)

配置:16C 16G

MySQL:5.7.20

二、部署过程

1、安装docker和docker-compose

请百度

2、创建数据库和用户,并授权

因为我使用外置MySQL,所以需要先创建数据库和授权

create database nextcloud;

grant all on nextcloud.* to nextcloud@'%' identified by '123456';

注意:因为用的是docker安装,所以授权最好授权%。

3、安装nextcloud

[root@云盘 nextcloud]# mkdir /data/nextcloud/nextcloud
[root@云盘 nextcloud]# cd /data/nextcloud
[root@云盘 nextcloud]# cat docker-compose.yml
version: '2'
services:
  app:
    container_name: "nextcloud"
    image: nextcloud:27.0.1   # 安装的版本号,这个是我装的时候最新版的版号
    restart: always
    ports:
      - 8080:80  # 映射到服务器端口
    volumes:
      - /data/nextcloud/nextcloud:/var/www/html  # 将代码挂载出来,方便以后修改
    environment:  # 我使用的是外置数据库,所以要配置下面账密,nextcloud提示要MySQL8.0 以上版本的,我用的是MySQL5.7.20 不过使用好像没啥问题
      - MYSQL_PASSWORD=123456
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=192.168.2.204


[root@云盘 nextcloud]# docker-compose up -d # 执行之后会拉取镜像,并运行容器。
[root@云盘 nextcloud]# docker ps 
CONTAINER ID   IMAGE                       COMMAND                  CREATED        STATUS          PORTS                                            NAMES
c3930bc2768d   nextcloud:27.0.1            "/entrypoint.sh apac…"   14 hours ago   Up 55 minutes   0.0.0.0:8080->80/tcp, :::8080->80/tcp            nextcloud

使用浏览器打开nextcloud,http://192.168.204:8080

设置管理员账号,程序会自动创建库表。但是如果报错的话会提示你选择哪些数据库。

可能报错的原因:

docker容器连不上MySQL数据库,上面配置的MySQL数据库没有授权。

如果都没问题,等几分钟就可以配置好了。

4、安装onlyoffice

把docker-compose.yml改成下面内容

[root@云盘 nextcloud]# cat docker-compose.yml
version: '3'
services:
  only-office:
    image: onlyoffice/documentserver
    container_name: onlyoffice
    ports:
      - 8081:80
    volumes:
      - /data/nextcloud/onlyoffice:/var/www/onlyoffice/Data
      - /data/nextcloud/onlyoffice/logs:/var/log/onlyoffice
    restart: always
    privileged: true

[root@云盘 nextcloud]# docker-compose up -d
[root@云盘 nextcloud]# docker ps 
CONTAINER ID   IMAGE                       COMMAND                  CREATED        STATUS          PORTS                                            NAMES
44be2cd04717   onlyoffice/documentserver   "/app/ds/run-documen…"   14 hours ago   Up 14 hours     443/tcp, 0.0.0.0:8081->80/tcp, :::8081->80/tcp   onlyoffice
c3930bc2768d   nextcloud:27.0.1            "/entrypoint.sh apac…"   14 hours ago   Up 55 minutes   0.0.0.0:8080->80/tcp, :::8080->80/tcp            nextcloud

使用浏览器打开:http://192.168.2.204:8081 没问题即可。

5、nextcloud接入onlyoffice

【应用】

Ctrl+F搜索onlyoffice,下载并启用

新版本需要输入管理员密码:

管理应用:

服务器执行生成密钥的命令:否则会报系统内部错误

[root@云盘 nextcloud]# docker exec 你onlyoffice容器ID /var/www/onlyoffice/documentserver/npm/json -f /etc/onlyoffice/documentserver/local.json 'services.CoAuthoring.secret.session.string'

rCxhmpEAL05VqWyfbqyUh5p9j53RT4EM # 会输出一个密钥

添加成功之后我新增了下面哪些文件后缀,再往下拉点击保存即可。

接入成功之后多了下面选项:

6、接入onlyoffice可能会遇到的报错:

1)报错1:打开应用转了很久之后,打开之后发现找不到 onlyoffice应用,无法下载和启动。

点击【个人设置】--【日志】看到日志报错:

Could not connect to appstore: cURL error 28: Operation timed out after 60000 milliseconds with 3035136 bytes received (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://apps.nextcloud.com/api/v1/apps.json

解决方法:

应用要请求海外的的接口。要降超时时间调长一点。

修改文件:/data/nextcloud/nextcloud/lib/private/Installer.php timeout那行代码

上面是将容器代码挂在出来服务器的路径,每个人的都不一样!但是lib/private/Installer.php 是一样的。

修改之后重启容器。

如果改了超时时间之后还是一样刷不出来,日志还是报超时的错。可以清理浏览器缓存,先用浏览器打开这个应用接口URL(https://apps.nextcloud.com/api/v1/apps.json)。

再重新登录打开应用。

$tempFile = $this->tempManager->getTemporaryFile('.tar.gz');

$timeout = $this->isCLI ? 0 : 360; # 默认是120,改成360,如果不行再继续调大,甚至要连VPN才可以获取到onlyoffice应用。

$client = $this->clientService->newClient();

接口请求异常,页面是这样的:无法加载出来其他的应用

正常应该是这样的:

2)报错2:nextcloud添加onlyoffice 报错连接是发生异常 (文档服务内部发生异常: Invalid token)

解决:

打开onlyoffice server首页,复制执行这个命令,容器ID改成你的onlyoffice容器ID。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/800496.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从零开始学Docker(一):Docker的安装部署

前述:本次学习与整理来至B站【Python开发_老6哥】老师分享的课程,有兴趣的小伙伴可以去加油啦,附链接 Linux 环境:RockyLinux 9 版本管理 Docker引擎主要有两个版本:企业版(EE)和社区版&#…

C语言爱心代码

代码&#xff1a; #include <stdio.h> int main() { int i, j, k, l, m; char c3; //ASCII码里面 3 就是一个字符小爱心 for (i1; i<5; i) printf("\n"); //开头空出5行 for (i1; i<3; i) { //前3行中间有空隙分开来写 for (j1; j<32-2*i; j) p…

计算机图形学十三加速结构

加速光线追踪 摘要 在上一节中&#xff0c;我们介绍了whited-style 光线追踪的原理&#xff0c;以及实现细节。相比与光栅化中所使用的blinn-phong模型&#xff0c;光线追踪显著提升了图像质量&#xff0c;但是随之而来的问题是渲染速度过慢。因为在判断光线与场景交点的时候…

面试典中典之线程池的七大参数

文章目录 一、七大元素解释1.corePoolSize&#xff08;核心线程数&#xff09;&#xff1a;2.maximumPoolSize&#xff08;最大线程数&#xff09;&#xff1a;3.keepAliveTime&#xff08;线程空闲时间&#xff09;&#xff1a;4.unit&#xff08;时间单位&#xff09;&#x…

MATLAB与ROS联合仿真(慕羽☆)全套开源资料索引

自2021年9月份开始进行MATLAB与ROS联合仿真相关的研究&#xff0c;至2021年12月份研究基本上结束&#xff0c;至今&#xff0c;已经近两年时间&#xff0c;期间曾收到过很多小伙伴的私信&#xff0c;想让我出点教程&#xff0c;期间我也曾多次想要抽点时间出教程&#xff0c;但…

地矿人专属的二次开发工具——地矿Web二次开发平台

工欲善其事必先利其器&#xff0c;随着互联网信息化时代的不断发展&#xff0c;信息系统和管理规范也越来越复杂&#xff0c;现有的软件产品功能会需要重新完善升级或更改&#xff0c;所以使用一套灵活应变可二次开发的软件产品是必不可少的&#xff0c;一款好的二次开发平台可…

【Apollo学习笔记】—— Routing模块

Routing模块功能 Apollo的routing模块读取高精地图原始信息&#xff0c;用于根据输入RoutingRequest信息在base_map中选取匹配最近的点作为导航轨迹的起点和终点&#xff0c;读取依据base_map生成的routing_map作为生成topo_graph的&#xff0c;然后通过Astar算法在拓扑图中搜…

Java中I/O流是什么?输入/输出流又是什么?

在 Java中所有数据都是使用流读写的。流是一组有序的数据序列&#xff0c;将数据从一个地方带到另一个地方。根据数据流向的不同&#xff0c;可以分为输入&#xff08;Input&#xff09;流和输出&#xff08;Output&#xff09;流两种。 在学习输入和输出流之前&#xff0c;我们…

监控和可观察性在 DevOps 中的作用!

在不断发展的DevOps世界中&#xff0c;深入了解系统行为、诊断问题和提高整体性能的能力是首要任务之一。监控和可观察性是促进这一过程的两个关键概念&#xff0c;为系统的健康状况和性能提供有价值的可见性。虽然这些术语经常互换使用&#xff0c;但它们代表了理解和管理复杂…

R730服务器用光盘安装系统(Esxi系统)

准备阶段&#xff1a;dell R730服务器&#xff0c;本教程一般适用于dell所有服务器&#xff0c;移动光盘&#xff0c;光碟做好镜像系统。在这里我安装的系统是Esxi系统&#xff0c;其他操作系统类似&#xff0c;只是安装的步骤不一样而已。 1、将系统盘插入光驱(移动光盘)&…

LeetCode 2500. Delete Greatest Value in Each Row【数组,排序】简单

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…

【深度学习中常见的优化器总结】SGD+Adagrad+RMSprop+Adam优化算法总结及代码实现

文章目录 一、SGD&#xff0c;随机梯度下降1.1、算法详解1&#xff09;MBSGD&#xff08;Mini-batch Stochastic Gradient Descent&#xff09;2&#xff09;动量法&#xff1a;momentum3&#xff09;NAG(Nesterov accelerated gradient)4&#xff09;权重衰减项&#xff08;we…

c++网络编程

网络编程模型 c/s 模型&#xff1a;客户端服务器模型b/s 模型&#xff1a;浏览器服务器模型1.tcp网络流程 服务器流程&#xff1a; 1.创建套接字2.完善服务器网络信息结构体3.绑定服务器网络信息结构体4.让服务器处于监听状态5.accept阻塞等待客户端连接信号6.收发数据7.关闭套…

C++那些事之template disambiguator

template disambiguator 1.背景 最近看到一段代码&#xff1a; auto chunk_left first_sort_key.template GetChunk<ArrayType>(left); 请问&#xff0c;这里的.template代表什么意义&#xff1f; 本节将从实际例子出发&#xff0c;探讨这个意义。 2.template disambigu…

mac不识别移动硬盘导致无法拷贝资源

背景 硬盘插入到Mac电脑上之后&#xff0c;mac不识别移动硬盘导致无法拷贝资源。 移动硬盘在Mac上无法被识别的原因可能有很多&#xff0c;多数情况下&#xff0c;是硬盘的格式与Mac电脑不兼容。 文件系统格式不兼容 macOS使用的文件系统是HFS或APFS&#xff0c;如果移动硬盘是…

【java】【面对对象高级4】内部类、枚举、泛型

目录 1、内部类 1.1 成员内部类【了解】 1.1.1 定义 1.1.2 扩展变量 1.2 静态内部类【了解】 1.2.1 定义 1.2.2 扩展变量 1.3 局部内部类【了解】 1.4 匿名内部类【重点】 1.4.1 定义 1.4.1.1 常规写法 1.4.1.2 匿名内部类改造 1.4.2 匿名内部类的常见使用场景 1.4.2…

超卖等高并发秒杀场景的问题及解决方案

超卖等高并发秒杀场景的问题及解决方案 1. 超卖问题&#xff08;多人秒杀&#xff09;1.1 原因1.2 解决方案1.3 总结 2. 锁失效问题&#xff08;单人重复抢&#xff09;2.1 原因2.2 解决方案 3. 事务边界问题&#xff08;单人重复抢&#xff09;3.1 原因3.2 解决方案3.3 总结 4…

【踩坑】三种方式解决 Homebrew failing to install - fatal: not in a git directory

问题描述 解决方法一 添加安全目录&#xff0c;没有测试。 git config --global --add safe.directory /opt/homebrew/Library/Taps/homebrew/homebrew- git config --global --add safe.directory /opt/homebrew/Library/Taps/homebrew/homebrew-cask 解决方法二 取消挂载这…

Redis 主从同步原理

一、什么是主从同步&#xff1f; 主从同步&#xff0c;就是将数据冗余备份&#xff0c;主库&#xff08;Master&#xff09;将自己库中的数据&#xff0c;同步给从库&#xff08;Slave&#xff09;。 从库可以一个&#xff0c;也可以多个&#xff0c;如图所示&#xff1a; 二…

Acwing.291 蒙德里安的梦想

题目 求把NM的棋盘分割成若干个12的的长方形&#xff0c;有多少种方案。 例如当N2&#xff0c;M4时&#xff0c;共有5种方案。当N2&#xff0c;M3时&#xff0c;共有3种方案。如下图所示: 输入格式 输入包含多组测试用例。 每组测试用例占一行&#xff0c;包含两个整数N和M…