前言

最近在写项目的时候正好遇到这方面的需求,需要在线预览PPT、DOC等office文档,在网上搜了一下,发现目前市面上阿里云、WPS等都提供有这方面的服务。花了点时间去大概看了一下发现价格都不算低,且阿里云的服务还存在算量的风险(指不定什么时候房子就易主了)找了一圈居然让我发现了怎么一个良心的软件(onlyoffice),有免费社区版可供大家使用,赶紧拿起来用了下,感觉很不错,于是便有了这篇文章的由来

下图为阿里云的价格

aliyun

下图为WPS收费标准:

WPS

正文

准备工作

  • VPS台
  • 域名一个

开始安装

这里我选择使用腾讯云的轻量应用服务器,最近不是正好腾讯云的轻量又升级了带宽嘛,我这台2H4G的轻量本来带宽是6Mbps的,直接给我提到了8Mbps,感觉还是很不错的,腾讯云YYDS。

qinglaing

且现在腾讯云的长期秒杀活动(限首单)中的轻量也进行了带宽的提升(好评),100%的CPU、60G SSD、6Mbps带宽可以算是目前市面上最好的“学生机”级别的服务器了吧,感兴趣的朋友一定不要错过呦。

huodong

有了服务器之后我们先给服务器装个宝塔(主要是为了更直观的展示内容,不喜欢用宝塔的大佬可以直接无视,不影响),这步的主要目的是比较快速的搭建起一个网站,后边我们拿来反代用。

使用腾讯云的轻量可以很快速的安装好宝塔相关的环境,这里鱿鱼不是本文的重点就先略过了。

baota

装好宝塔之后我们登陆面板。安装Ngnix作为WEB环境,其他环境可以先不安装,因为此处我们仅是用来反代用。

接着我们在给服务器安装上Docker,使用命令一键安装

curl -sSL https://get.daocloud.io/docker | sh

安装好之后再运行一下命令启动Docker服务

service docker start

由于国内对hub.docker.com的速度不太理想,安装完之后记得切换为mirro源、腾讯云、阿里云、华为云等大厂都有直接的内网mirro加速,这里就不在赘述了。

安装好Docker之后我们运行如下命令来启动一个onlyffice document server容器,此容器的作用是把office文档解析成javascrip可以读取的数据格式。

docker run -i -t -d -p 2133:80 --restart=always onlyoffice/documentserver

这里我们将容器的80端口映射到2133端口上,再容器启动好之后,我们来到宝塔面板中,新建一个站点后为其添加反向代理,目标url为我们的容器,host随便填不影响,反代目录为/根目录

fandai

这里做反代的目的主要是为了更好的添加SSL证书以及管理网站等作用,毕竟专业的事就让专业的人去干。

弄好之后反问域名就是这样一个效果:

xiaoguotu

到了这一步其实就可以直接用了,网上很多搬来搬去的教程通常多会让你装一个onlyoffice/communityserver的容器来对接这个容器的接口,其实完全没必要,且这个community再网上的不知道搬了多少次的教程安装之后还出现了Mysql连接不上错误,原因是新版的景象已经不再内置Mysql了,需要有人为其配置Mysql。若读者仍想要坎壈这个communityserver是啥样的话,可以运行一下命令:

sudo docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-community-server -p 80:80 -p 443:443 -p 5222:5222 \
 -e MYSQL_SERVER_HOST="127.0.0.1"\
 -e MYSQL_SERVER_PORT="3306"\
 -e MYSQL_SERVER_DB_NAME=onlyoffice\
 -e MYSQL_SERVER_USER=onlyoffice_user\
 -e MYSQL_SERVER_PASS=onlyoffice_pass\
 -v /app/onlyoffice/CommunityServer/data:/var/www/onlyoffice/Data \
 -v /app/onlyoffice/CommunityServer/logs:/var/log/onlyoffice \
 onlyoffice/communityserver

在上述命令中,端口映射关系。卷的挂载、MYSQL_SEVER_HOST与MASQL_SERVER_POST等读者需要根据自身情况做出相应的修改。

我们在宝塔中在新建一个网站(此处用test.com做演示)来看看效果怎么样,新建号之后编辑宝塔默认生成的index.html文件,修改成如下代码

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>ONLYOFFICE 效果展示</title>
        <!-- 引入OnlyOffice的JavaScript文件 -->
        <script type="text/javascript" src="http://你的OnlyOffice反代域名/web-apps/apps/api/documents/api.js"></script>
        <style>
            body {margin: 0;}
            iframe {height: 100vh;}
        </style>
    </head>
    <body>
        <div id="placeholder"></div>
        <script language="javascript" type="text/javascript">
            var docEditor = new DocsAPI.DocEditor("placeholder",{
                "document": {
                    "fileType": "pptx",
                    "key": "Khirz6zTPdfd7",
                    "title": "TEST.pptx",
                    "url": "http://test.com/TEST.pptx"
                },
                "documentType": "slide"
            });
        </script>
    </body>
</html>

修改好之后,我们随便上传一个pptx到test.com的网站根目录下面,打开test.com查看效果:

test.com

可以看到Onlyoffice效果还是很棒的,支持的功能也很多,而且界面风格与微软家的office多事一样的,看起来十分的美观,完全不输再前言中提到的两个收费服务。

好了,以上就是整篇文章的内容啦,关于Onlyoffice更多功能的使用。更多的配置等请到官网的文档进行查阅,链接再最后的附录当中

后话

总体来说这个应用所呈现出的效果着实不错有这方面需求的朋友也可以考虑入手付费版,非商业版149刀、商业版1200刀。都是终身许可(仅限购买的那个版本),对于真正有需要的朋友来说还是挺值得考虑的。

最后就是强推腾讯云的轻量应用服务器,福利多多,配置良心,这还不直接买爆?

附录

最后修改:2022 年 02 月 17 日
如果觉得我的文章对你有用,请随意赞赏