CentOS9 安装Docker+Dpanel+onlyoffice(https、更改字体、字号、去除限制)的避坑笔记

ops/2025/1/24 13:52:03/

CentOS9 安装Docker+onlyoffice(https、更改字体、字号、去除文件大小限制)的避坑笔记

  • 一、安装Docker
  • 二、更新docker镜像源:
  • 三、安装Dpanel
  • 四、安装onlyoffice(开启https及一些碰到的问题)
  • 五、更改字体和字号
  • 六、去除限制

动手前,预防遭遇各种莫名奇妙的问题,先把selinux给disabled掉:

nano /etc/selinux/config

SELINUX=enforcing,改为:SELINUX=disabled,然后reboot一下系统。

一、安装Docker

1.方法一:使用docker执行脚本安装:

curl -sSL https://get.docker.com/ | sh 

2.方法二:使用dnf安装:
添加docker仓库:

dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

安装docker

dnf install docker-ce

安装完毕后,在执行:

#设为开机启动
systemctl enable --now docker#启动docker
systemctl start docker#查看状态
systemctl status docker#查看版本
docker -v

docker_39">二、更新docker镜像源:

由于某种原因,国内从DockerHub拉取镜像速度会很慢,反正我这里根本无法使用,所以找了一些可用的源,把源添加到:/etc/docker/daemon.json就可以了

nano /etc/docker/daemon.json

把下面内容复制进去,然后ctrl+o,ctrl+x保存退出:

{"registry-mirrors": ["https://docker.registry.cyou","https://docker-cf.registry.cyou","https://dockercf.jsdelivr.fyi","https://docker.jsdelivr.fyi","https://dockertest.jsdelivr.fyi","https://mirror.aliyuncs.com","https://dockerproxy.com","https://mirror.baidubce.com","https://docker.m.daocloud.io","https://docker.nju.edu.cn","https://docker.mirrors.sjtug.sjtu.edu.cn","https://docker.mirrors.ustc.edu.cn","https://mirror.iscas.ac.cn","https://docker.rainbond.cc"]
}

重启docker

systemctl daemon-reload
systemctl restart docker

至此,我们的docker已经可以正常使用了。

三、安装Dpanel

用途和使用就不说了,详见官方介绍,官方地址:https://dpanel.cc
我选择的是lite版:

docker run -it -d --name dpanel --restart=always \-p 8807:8080 -e APP_NAME=dpanel \-v /var/run/docker.sock:/var/run/docker.sock \-v dpanel:/dpanel dpanel/dpanel:lite

防火墙放行8807端口:

firewall-cmd --add-port=8807/tcp --permanent
firewall-cmd --reload

好了,你的dpanel面板已经安装好了,打开你的浏览器访问:http://你的IP:8807

onlyofficehttps_91">四、安装onlyoffice(开启https及一些碰到的问题)

1.执行下面命令,安装onlyoffice社区版,目前最新版本为8.2.2,

docker run -i -t -d -p 443:443 --name office --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 -e JWT_ENABLED=false onlyoffice/documentserver

2.防火墙放行443端口:

firewall-cmd --add-port=443/tcp --permanent
firewall-cmd --reload

3.添加证书:
进入:/app/onlyoffice/DocumentServer/data目录,mkdir certs创建certs目录,然后把证书上传到这个目录下。
我用的是mkcert生成的自签证书,如果你对mkcert有兴趣,可以到我另一个帖子看:https://blog.csdn.net/alinathz/article/details/106440017

mkcert生成出来的是pem文件,这里需要把证书和key都改名为:
证书改名为:onlyoffice.crt
key改名为:onlyoffice.key
接着把证书上传到/app/onlyoffice/DocumentServer/data/certs目录下。

4.开启https访问:
A.在容器输入:service nginx stop,把容器的nginx停用掉;
B.复制ds-ssl.conf.tmpl替换ds.conf文件:

sudo cp -f /etc/onlyoffice/documentserver/nginx/ds-ssl.conf.tmpl /etc/onlyoffice/documentserver/nginx/ds.conf

C.修改/etc/onlyoffice/documentserver/nginx/ds.conf文件,把里面的{{SSL_CERTIFICATE_PATH}} 和{{SSL_KEY_PATH}} 替换为证书的路径:

nano /etc/onlyoffice/documentserver/nginx/ds.conf# 证书
ssl_certificate /var/www/onlyoffice/Data/certs/onlyoffice.crt;
# 证书key
ssl_certificate_key /var/www/onlyoffice/Data/certs/onlyoffice.key;

D.修改完后,重启容器的nginx:service nginx start

E.执行下面的脚本:

bash /usr/bin/documentserver-update-securelink.sh

5.进入onlyoffice容器修改/etc/onlyoffice/documentserver/default.json
进入onlyoffice容器,我们上面创建的是office,so…

docker exec -it office /bin/bash

进入后粗暴些,直接:nano /etc/onlyoffice/documentserver/default.json,找到:

"requestDefaults": {"headers": {"User-Agent": "Node.js/6.13","Connection": "Keep-Alive"},"gzip": true,"rejectUnauthorized": true
}

"rejectUnauthorized": true 改为 "rejectUnauthorized": false,这个是解决自签证书无法访问未授权的问题。

接着,找到:

"request-filtering-agent" : {"allowPrivateIPAddress": false,"allowMetaIPAddress": false
}

把两个false改为true,这个解决无法打开document.url指向的文件,提示“无法下载”的问题。

好了,经过上面的操作,你现在可以用https://docker服务器地址,来访问你的onlyoffice了。

我打算用它的API,直接来编辑我网站里面的文档,所以做了一个测试:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>ONLYOFFICE Document Editor Code Sample</title><meta name="viewport" content="width=device-width,initial-scale=1"><style>body {height: 100vh; margin: 0}</style><script src="https://docker服务器地址/web-apps/apps/api/documents/api.js"></script></head><body><div id="placeholder"></div><script type="module">const config = {document: {fileType: "docx",key: "随机生成的KEY",title: "Playground Document",url: "https://你的网站地址/test.docx"},documentType: "word",editorConfig: {lang: "zh"},height: "100%",width: "100%"}const editor = new DocsAPI.DocEditor("placeholder", config)</script></body>
</html>

然后直接访问上面的html文件,如果可以直接看到test.docx的内容,那就证明已经OK了。

五、更改字体和字号

刚刚发现,字号显示是正常的,所以不用改,哈哈…现在说说怎么换上自己的字体吧!
1、进入onlyoffice容器,我们上面创建的是office,so…

docker exec -it office /bin/bash

2、删除自带的字体,有两个目录:

cd /usr/share/fonts/
rm -rf *cd /var/www/onlyoffice/documentserver/core-fonts/
rm -rf *

删除完后退出exit容器。

3、到c:\windows\fonts目录下面找需要用的字体,然后复制到其他地方;

4、把复制出来的字体,上传到宿主机上(U盘,tftp,MobaXterm等方式),如我复制到/home/fonts目录里,然后用下面命令复制到office容器里:

docker cp /home/fonts office:/usr/share/fonts/truetype/custom

5、在进入容器docker exec -it office /bin/bash执行下面命令重新生成:

/usr/bin/documentserver-generate-allfonts.sh

重新生成完毕后,刷新下页面就可以看到改好的字体了。

六、去除限制

去除文件大小限制
参考:https://blog.csdn.net/g401946949/article/details/144337540
A.进入容器docker exec -it office /bin/bash,编辑/etc/onlyoffice/documentserver/default.json

nano /etc/onlyoffice/documentserver/default.json

找到并修改limits_tempfile_upload(模板上传限制),maxDownloadBytes(最大下载限制),uncompressed(未压缩限制):

limits_tempfile_upload:104857600(默认10M)
maxDownloadBytes:104857600(默认10M)
uncompressed:“50M”(默认50M)

根据需求自己修改,保存后,退出容器,重启容器:docker restart office

记录结束,希望可以帮到你。


http://www.ppmy.cn/ops/152753.html

相关文章

Spring Boot 启动流程解析及重点源码

文章目录 引言Spring Boot 启动类分析1、SpringBootApplication 注解2、 SpringApplication.run() 方法3、Spring Boot 启动流程详解3.1 创建 SpringApplication 实例3.2 准备环境&#xff08;Environment&#xff09;3.3 执行 ApplicationListeners3.4 刷新应用上下文&#xf…

回归算法、聚类算法、决策树、随机森林、神经网络

这也太全了&#xff01;回归算法、聚类算法、决策树、随机森林、神经网络、贝叶斯算法、支持向量机等十大机器学习算法一口气学完&#xff01;_哔哩哔哩_bilibili 【线性回归、代价函数、损失函数】动画讲解_哔哩哔哩_bilibili 14分钟详解所有机器学习算法&#xff1a;…

T-SQL语言的语法

T-SQL深度解析与应用 T-SQL&#xff08;Transact-SQL&#xff09;是微软SQL Server使用的一种扩展SQL&#xff08;结构化查询语言&#xff09;。它不仅支持标准SQL的所有功能&#xff0c;而且增加了许多实用的扩展和特性&#xff0c;使得数据库的操作更加灵活和强大。本文将对…

Mysql索引(学习自用)

目录 一、索引概述 优缺点 二、索引结构 1、索引数据结构 2、索引支持结构 3、B树 4、B树 5、hash索引 6、为啥采用B树索引 三、索引分类 四、索引语法 五、索引性能分析 5.1查看执行频率 5.2慢查询日志 5.3profiling 5.4explain 六、索引使用规则 6.1验证索…

HOW - 基于master的a分支和基于a的b分支合流问题

目录 背景&问题方案解决方式1. 直接将 master 合并到 b 分支2. 重建 b 分支&#xff08;如果冲突过多&#xff0c;建议此方式&#xff09;3. 使用 Git 的“ours”或“theirs”策略解决冲突 总结 背景&问题 我有一个master分支&#xff0c;然后基于此创建了一个a分支&am…

安卓动态设置Unity图形API

命令行方式 Unity图像api设置为自动,安卓动态设置Vulkan、OpenGLES Unity设置 安卓设置 创建自定义活动并将其设置为应用程序入口点。 在自定义活动中,覆盖字符串UnityPlayerActivity。updateunitycommandlineararguments (String cmdLine)方法。 在该方法中,将cmdLine…

mysql my.ini 配置参数结束

配置参数 #[client] #MySQL默认密码 #password88888888 [mysqld] #MySQL以什么用户运行 #usermysql #MySQL运行在哪个端口 #port3306 #改参数指定了安装MySQL的安装路径&#xff0c;填写全路径可以解决相对路径所造成的问题 #basedir #指定MySQL的数据库文件放在什么路径下 da…

【算法】经典博弈论问题——巴什博弈 python

目录 前言巴什博弈(Bash Game)小试牛刀PN分析实战检验总结 前言 博弈类问题大致分为&#xff1a; 公平组合游戏、非公平组合游戏&#xff08;绝大多数的棋类游戏&#xff09;和 反常游戏 巴什博弈(Bash Game) 一共有n颗石子&#xff0c;两个人轮流拿&#xff0c;每次可以拿1~m颗…