目录
前言
方案一
方案二
方案三
后台管理系统或许有需要能在线编辑word的需求,避免了先将word下载下来编辑好了再上传的麻烦,可以说是高效办公的一种,下面两种方案是本人实践过能免费使用的方案了,如果你有更好的方案推荐欢迎评论!!!
onlyoffice应该是许多博主推荐的一套方案了,真的很方便,一个docker即可搞定,当然免费相应的会有20个连接数限制,通过实践下来这20个连接数限制指的是编辑连接数,也就是说能编辑office的连接只有20个,但查看office连接无限制,针对这个你可以做一些别的处理,比如默认走的是查看,避免想查看的用户走的是编辑而导致连接的占用!
那么我们如何解决20个连接数的限制呢?
相比onlyoffice没有连接数限制,文件可以做到秒开, 但LibreOffice本身不支持在线编辑,想使用在线编辑的话需要使用基于LibreOffice的CollaboraOnline,官方提供了docker安装教程,详情请看文档说明
CollaboraOnline文档: CODE Docker image — SDK https://sdk.collaboraonline.com/ documentation
当然你也可以选择自己编译,编译的教程可参考:
Linux下编译LibreOffice在线编辑_轻舟Canoe的博客-CSDN博客
该方案是微软提供的,所以Linux服务器就不行了,如果你是Windows server的操作系统那么你可以尝试下。方案需要部署office online server服务,链接看下方。部署好office服务后需要自行实现wopi协议,参考链接我也放下方了。
office online server部署:
部署 Office Online Server - Office Online Server | Microsoft Learn
wopi协议原理:
精读《WOPI协议》 - 掘金
实现了wopi协议的开源库:
GitHub - ethendev/wopihost: office online preview and editor
在部署office online server服务的过程中想必你会了解到需要两台机器,一台是域控,一台就是部署office服务的【注意不要在该机器上有占用了80、443、809这几个端口号的服务】 。经过我的实践下来,只有在开启office服务的时候才需要域控,当office服务正常开启后把域控给关掉也没关系,office还是能正常使用,想必大部分人的情况都是只有一台服务器可用,
而且一般都是有别的web服务在开着占用了上述的端口,我是通过虚拟机来解决的,开了两台虚拟机,一台是域控,一台就是office服务的,当我把office服务开启之后就把那台域控服务关掉,避免了资源的占用又不影响office服务后续的使用。接下来有一个问题需要解决,那就是外网如何才能访问到虚拟机里的office服务,首先需要做的是把开着office服务的虚拟机端口号映射到实体机的端口号,比如虚拟机里的office服务用的是80端口,那么你就把这个80端口映射到实体机的任意一个端口上即可,比如我映射到9999端口,到这一步你可能认为外网就可以通过这个端口号访问到office服务了,但我试过了不行。我把端口映射到80端口后就成功访问了,如果你开了https那就是只能用443端口才能成功访问。通常为了解决跨域的问题都是使用Nginx的反向代理,所以把office服务映射到80端口上虽然能正常访问,但因为环境因素不得不将office的端口映射到别的端口上,接着我借助了反向代理,反复测试,功夫不负有心人,成功的访问到了office服务。配置看下方,因为访问word、excel、ppt的后缀不一样,所以是三个配置。
location /wv {
proxy_pass http://127.0.0.1:9999;
}
location /o {
proxy_pass http://127.0.0.1:9999;
}
location /p {
proxy_pass http://127.0.0.1:9999;
}
实践才是检验真理的标准~
点赞,你的认可是我创作的动力 !
收藏,你的青睐是我努力的方向!
✏️评论,你的意见是我进步的财富!