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
记录结束,希望可以帮到你。