本文演示如何在本地部署免费的Microsoft Office文档协作工作平台,功能类似于“Microsoft Office Online”、“腾讯文档”等在线文档协作编辑平台。虽然部署类似平台的方案有多种,但是本文介绍的方法兼顾以下特征:
服务器使用虚拟机,DzzOffice和OnlyOffice部署在虚拟机中。
OnlyOffice版本:社区版 7.2DzzOffice版本:社区版 V2.3.3操作系统的安装不再赘述。操作系统需要满足以下条件:
Windows Server 2016或更高版本。Windows IIS功能。VC++运行时库(Microsoft Visual C++ 2015-2022 Redistributable (x64))。见参考文献[1]。
DzzOffice需要支持Web服务支持PHP,因此需要为IIS安装和配置PHP。
从参考文献[2]下载适用于Windows的PHP,下图所示,有两个版本可选择:
Non Thread Safe(非线程安全)Thread Safe(线程安全)
建议使用Thread Safe版本。
下载后解压缩zip包,假设解压后放在目录:
C:\php-8.4.6
此电脑 → 属性 → 高级系统设置 → 环境变量 → 系统变量 → Path,增加PHP路径,下图所示:
进入PHP目录,将php.ini-production文件复制并改名为php.ini。php.ini是PHP的配置文件,修改php.ini以满足DzzOffice要求,修改后的配置项包括:
extension_dir = "ext" extension=curl extension=mysqli extension=zip
这些修改是必不可少的,否则后续DzzOffice安装将无法进行。
假设您已经启用了Windows IIS服务。本节将配置IIS,以支持PHP。
计算机管理 → Internat Information Service(IIS)管理器 → 处理程序映射 → 添加模块映射,按下图填写以添加PHP cgi支持。这样IIS就知道如何处理PHP文件了。
计算机管理 → Internat Information Service(IIS)管理器 → 默认文档 → 添加,将index.php添加为默认文档。
DzzOffice还需要MySQL作为后台数据库,因此,需要在安装DzzOffice之前先安装和启动MySQL服务。
从参考文献[3]下载MySQL,本文选择社区版8.4版本。
执行mysql-8.4.5-winx64.msi按照向导安装MySQL,端口默认为5432,如无特殊需求可暂不修改。安装成功的确认方法:
MySQL84的服务。mysqld.exe进程正在运行。
内网安装OnlyOffice比较麻烦的是安装依赖软件,OnlyOffice安装程序会自动从公网自动下载第三方软件,但是内网无法下载。需要手动安装第三方软件。依赖的软件包括:
详细过程可参考文献[4]。
OnlyOffice有多个版本,本文使用社区版。下载地址见参考文献[5]。
下载后的安装文件名为:onlyoffice-documentserver.exe。以管理员身份执行安装程序,先按照提示默认安装就行,可以在安装完成后再按照需求修改配置。参考文献[6]是官方的安装指导,可参阅。
本文示例OnlyOffice安装目录为:
C:\Program Files\ONLYOFFICE\DocumentServer
OnlyOffice使用nginx作为Web服务,默认端口为80。为了避免与IIS默认端口冲突,下面将nginx端口修改为8088。
修改nginx配置文件(C:\Program Files\ONLYOFFICE\DocumentServer\nginx\conf\ds.conf),将listen中的80修改为8088。
include includes/http-common.conf;
server {
listen 0.0.0.0:8088;
listen [::]:8088 default_server;
server_tokens off;
.....
重启nginx服务,如果您不知道如何重启nginx服务,那么直接重启Windows即可。
完成上述操作后,从浏览器访问以下地址:
如果能够看到以下页面,表示OnlyOffice的Web服务已正常。按照页面提示启动OnlyOffice集成服务,以便第三方程序可以调用OnlyOffice接口服务。
按照提示,使用Windows cmd执行命令:
net start DsExampleSvc sc.exe config DsExampleSvc start=auto
OnlyOffice接口服务。
OnlyOffice接口服务。
验证OnlyOffice服务是否正常:
点击以上页面中的“GO TO TEST EXAMPLE”按钮可以看到以下页面,表明OnlyOffice服务正常,可以尝试上传Office文档,并编辑或浏览。OnlyOffice只是一个编辑工具,没有提供用户管理功能,因此,下文将安装DzzOffice,用于与OnlyOffice结合实现按用户管理Office文档。
打开OnlyOffice配置文件:
C:\Program Files\ONLYOFFICE\DocumentServer\config\local.json
找到"services"."secret". "session"."string"项,记录下来,后续安装DzzOffice的插件时将会用到。
从官网(参考文献[7])下载DzzOffice,建议选择“本站下载”。
下载后解压缩dzzoffice.zip文件到IIS网站“物理路径”下。本文假设IIS物理路径为:C:\www,DzzOffice解压缩目标路径为:C:\www\dzzoffice。接下来安装DzzOffice。
在浏览器中输入:
http://192.168.4.222/dzzoffice/
自动进入安装初始化页面:
点击“开始安装”按钮,进入“检查安装环境”页面,确保所有项目自检结果都通过。上述各种配置也是为了本步骤顺利通过自检,如果有未通过的项,请按提示修改配置。
点击“下一步”进入“设置运行环境”页面,其中“站点名称”和“管理员密码”需要填写,其它可以按照需要修改或者使用默认值。
点击“下一步”继续安装,等待安装完成。
截止到目前,以上安装的DzzOffice只能算是个网盘,还无法编辑和浏览Office文件,我们还需要为DzzOffice安装两个关键插件。
安装应用方法有多种,本文假设本系统无法访问公网,因此以下采用离线安装插件方法。
通过参考文献[7]的“应用市场”搜索“onlyoffice”,结果如下图所示,注意我们仅需要后面两个插件:
下面以安装“onlyoffice编辑”插件为例,其它插件方法相同。
从以上“应用市场”下载插件,文件名为xh_onlyoffice.zip,解压缩到DzzOffice目录下,如下图所示。注意文件夹位置:
C:\www\dzzoffice\dzz\xh_onlyoffice\
将C:\www\dzzoffice\dzz\xh_onlyoffice\dzz_app_xh_onlyoffice.xml配置文件放置到浏览器可以访问到的地方。
然后,再次进入“应用管理”页面(见第5.3章节),点击“onlyoffice编辑”插件的“设置”按钮,进入“服务器配置”页面。
这个页面配置很重要,本示例填写值如下图所示。
配置后,可以使用“检测服务器”检查配置是否正确。
支持“onlyoffice编辑”插件安装完成。按照相同方法继续安装“onlyoffice浏览”插件,不再赘述。
至此,本地化部署文档协作工作平台完成。
DzzOffice插件的“服务器插配置”(第5.5章节)非常重要,这里最容易出错,一定要确保OnlyOffice和DzzOffice两个服务地址可以相互访问。有时候地址填写错误,“检测服务器”也可能会检测通过,但是系统却不能正常工作。例如,在本例中,如果“DzzOffice服务地址”填写http://192.168.4.222/,检测可以通过,但是当尝试编辑或浏览Office文档时,会返回“文件下载失败”错误。
本文第1章为了简化配置,建议先禁用Windows防火墙,主要是因为本系统需要通过多个端口例如:Web服务端口(80和8088)、数据库服务端口(5432)、以及其它网络组件服务端口。Windows防火墙可能会禁用相关端口访问,导致莫名奇妙的错误。
注意本建议仅限本示例,生产环境应该按照需求制定防火墙规则。