CentOS9 安装Docker+Dpanel+onlyoffice(https、更改字体、字号、去除限制)的避坑笔记
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镜像源:
由于某种原因,国内从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
四、安装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
记录结束,希望可以帮到你。