前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Windows上部署onlyoffice document server并用go语言进行二次开发实现企业实时文档协作功能

Windows上部署onlyoffice document server并用go语言进行二次开发实现企业实时文档协作功能

作者头像
hotqin888
发布2018-09-11 15:13:13
2.1K0
发布2018-09-11 15:13:13
举报
文章被收录于专栏:hotqin888的专栏hotqin888的专栏

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1334542

——追求简单化的安装就能享受高雅的网络协作办公环境

最新的请移步至此:http://blog.csdn.net/hotqin888/article/details/79337881

要求:

如果是局域网,部署的电脑拥有固定ip(下文叫宿主机,切记)。电脑能打开cup的虚拟功能。

如果部署到云主机,道理是一样的。

环境是win7以上,win10以下。Win10区别就是安装的docker软件不同而已。

第一步:确定电脑打开了cpu虚拟打开。https://jingyan.baidu.com/article/22fe7ced3b4c003002617f17.html

第二步:下载和安装docker toolbox,默认安装即可。下载地址http://get.daocloud.io/,下载支持旧版windows的docker toolbox,win10就直接下载docker了。

第三步:启动docker后在里面拉取Onlyoffice Document Server 的Docker镜像

3.1拉取镜像,在docker中黏贴下面的命令(黏贴方法:鼠标右键点窗口头部,编辑——黏贴)

docker pull onlyoffice/documentserver

可以用我做好的镜像导入。见docker load < documentserver.tar命令。

拉取完成后启动documentserver

3.2启动documentserver(在docker中启动刚拉取的镜像后就叫容器了。)——并且把documentserver容器中这个服务映射至宿主机上9000端口,这样映射的目的是其他电脑访问这个宿主机端口9000就相当于访问这个宿主机中docker中容器中的documentserver了。但是windows要做端口转发。

docker run -i -t -d -p 9000:80 onlyoffice/documentserver

到此已经可以用了。不过,就是要换一下documentserver中的字体,换成文泉驿linux字体。

记录下容器id,这个后面操作都会用到,不用全记,一般前3位或4位即可。没记也没关系,后续随时用这个命令查:

3.3查看运行的容器

Docker ps

3.4进入容器(运行的镜像)内

$ docker exec -it 38e27 /bin/bash

注:38e27为容器id,此时相当于在容器内的系统操作,不是在docker里了。比如可以查看文件夹组成,如下,此时都是Linux命令啦:

root@38e27823ae92:/# dir

用find命令(Linux命令)找到字体所在目录,应该是/usr/share/fonts/truetype/msttcorefonts

root@38e27823ae92:/# find / -name arial.ttf

找到这个目录后,就用cd命令一层层进入到msttcorefonts里,删除它里面的所有字体文件,用下面命令删除:

root# rm -R dir dirname删除所有

root# rm -f *.ttf

退出容器到docker中来:exit

再把字体拷入容器的/usr/share/fonts/truetype/msttcorefonts文件夹中

Administrator@604TFALNDKDKJWC MINGW64/c/program files/git/usr/share/fonts

$ tar -cv * | docker exec -i 38e27823ae92tar x -C /usr/share/fonts/truetype/msttcorefonts

msyh.ttf

wqy-microhei.ttc

wqy-zenhei.ttc

wqy-zenhei.ttf

拷贝字体过去

再进入容器(命令:$ docker exec -it 38e27 /bin/bash)

再键入下面命令:

sudo mkfontscale (创建雅黑字体的fonts.scale文件,它用来控制字体旋转缩放)

sudo mkfontdir (创建雅黑字体的fonts.dir文件,它用来控制字体粗斜体产生)

sudo fc-cache -fv (建立字体缓存信息,也就是让系统认识雅黑)

退出到docker中来(exit命令)

执行如下命令:

$ docker exec 38e27 /usr/bin/documentserver-generate-allfonts.sh

Generating AllFonts.js, please wait...Done

onlyoffice-documentserver:docservice:stopped

onlyoffice-documentserver:docservice:started

onlyoffice-documentserver:converter: stopped

onlyoffice-documentserver:converter: started

第四步:运行engineercms

把engineercms整个文件夹拷贝到宿主机的d盘,点击里面的engineercms.exe就行了,默认是宿主机80端口,如果冲突,需要在conf中更换端口。

4.1在engineercms文件夹view中打onlyoffice文件夹,打开onlyoffice.tpl,替换里面的api.js的ip地址为你的局域网宿主机的ip,端口是容器映射端口9000,然后替换另外2个ip也为宿主机ip即可。

第五步:windows上的虚拟机端口转发

因为docker是运行在虚拟机中的,3.2节说的其他电脑访问容器里的documentserver服务,相当于访问虚拟机,让后虚拟机再转到docker里的容器。打开安装docker toolbox后生成的Oracle vm virtualbox,参考下面链接设置端口转发。

http://blog.csdn.net/maodou95838/article/details/78194830?locationNum=1&fps=1#0-qzone-1-51693-d020d2d2a4e8d1a374a433f596ad1440

有问题直接咨询我,qq504284,微信hotqin999

首先感谢cool_ccr,按这个官方文档(http://helpcenter.onlyoffice.com/server/linux/document/install-fonts.aspx),确实解决了onlyoffice中文字体乱码问题。

我是用的docker方式部署onlyoffice,具体部署方法请看neroxps的贴:https://bbs.seafile.com/t/seafile-onlyoffice/3430

现将解决流程记录下来给大家参考:

1.查看onlyoffice的容器id:docker ps

2.连接docker:docker attach 容器id

3.进入容器后转到/usr/share/fonts/下把里面的所有字体删除,包括子目录里面的都删除

4.然后再windows系统下-控制面板--字体,搜索框内输入“中文”,把搜索出来的所有字体全部复制出来

5.把第4步复制出来的字体,复制到/usr/share/fonts/下

6.进入/usr/bin目录 输入./documentserver-generate-allfonts.sh 运行完毕后清除浏览器换成重新打开,就会发现之前onlyoffice自带的其他字体都没有了,只有刚才复制进去的中文字体了。

具体使用过程中有这么几个问题:

1、确实onlyoffice对中文的文档支持不算好,打开office2016的文档,基本是等线字体的都会一堆口口,真没办法,那些有特殊符号的也是一堆??,格式还有可能错乱。

2、操作界面英文,不友好,在输入中文时,只要键入符号,就会重复输入中文,这个问题可以使用onlyoffice中的设置里面的alternate input打上勾解决。但并不友好。

3、在网页版中新建一个office文档,再进行编辑时,默认字体是carlito,无法识别输入的中文,必须手动切换到中文字体。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年02月08日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档