onlyoffice 服务搭建及配置 - 前端 office 文件预览解决方案
文章目录
- 1. 安装
- 1.1 环境要求
- 1.2 安装步骤
- 1.3 常用配置
- 1.3.1 安装目录/config/default.json
- 1.3.2 安装目录/config/local.json
- 1.3.3 安装目录/nginx/conf
- 1.3.4 配置生效
- 2. 网站嵌入
- 2.1 代码示例
- 2.2 最终效果
- 3. 常见问题
- 3.1 数据库配置错误导致加载不出来
1. 安装
写文章时使用环境 Windows 11 + onlyoffice 8.3,以满足离线部署为主,不同版本 onlyoffice 略有差异,大致流程都是相通的,有条件的话直接用 docker 最简单
1.1 环境要求
下面版本要求由官方提供,实测直接装最新就行
- Erlang: version 24.2
官网:https://www.erlang.org/
Windows 下载页:https://www.erlang.org/downloads - RabbitMQ: version 3.9.1
官网:https://www.rabbitmq.com/
Windows 下载页:https://www.rabbitmq.com/docs/install-windows - PostgreSQL: version 12.9 or later
官网:https://www.postgresql.org/
Windows 下载页:https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
1.2 安装步骤
-
安装 PostgreSQL
-
创建数据库,名字都可以(onlyoffice 默认连接参数:库名、用户名、密码都是 onlyoffice,看情况设置就好了,安装 only office 的时候可以设置)
-
安装 erlang 和 RabbitMQ,安装路径看着填,其它选项默认就好了
-
根据系统类型选择合适的 onlyoffice 版本: 下载地址
-
安装的时候看情况点就好了。到 Select Componets,这里能不选的就不选,对预览功能是没有影响的,选上下载的会很慢(老版本就没有这些选项,最近新版本出了这些,还没研究有啥作用,有知道的可以指点一下)
因为 OpenSSL 不能取消选中,所以离线安装的时候会下载失败导致报错,这里是不影响最终预览效果的,直接忽略即可。
-
数据库配置
onlyoffice 默认的数据库参数连不上数据库的,老版本还没这验证,这里点确定的话也直接就跳过了,数据库参数错了,安装好用不了的,后面还得导一遍数据库,这里点击取消,修改数据库参数即可
点击取消后弹出数据库配置信息,根据自己数据库信息填写好即可
-
安装完成
最后一步可能会很慢,慢则几个小时都有可能,耐心等待即可弹出下面弹窗点击确定即可,就是提示
到这里就安装完成了
点击完成,系统会启动一个80端口的网站,如果80端口已被占用,那这个服务是启动不起来的,不影响,后面改改配置就行
1.3 常用配置
这里就写写影响预览的一些配置
1.3.1 安装目录/config/default.json
- 允许使用本地IP文件:
比如 http://127.0.0.1/**/xxx.ppt 这种文件默认是无法使用的,将下面两个配置设置为 true 就可以了
services.CoAuthoring.request-filtering-agent.allowPrivateIPAddress
services.CoAuthoring.request-filtering-agent.allowMetaIPAddress
1.3.2 安装目录/config/local.json
- JWT 验证
onlyoffice 新版本默认启用 JWT 验证,就是前端使用的时候需要携带正确的token,这里就不展开说了。
services.CoAuthoring.token.enable:全部设置为 false 表示禁用 JWT 验证
1.3.3 安装目录/nginx/conf
-
端口修改
打开文件:安装目录/nginx/conf/ds.conf
将 两处 80 改成需要的端口即可,比如下面改成 81 端口:
-
单机环境启动配置
就是局域网环境都没有,单独一个电脑部署,nginx 启动会失败,导致网站访问不了,需要改掉配置里的 localhost,换成 127.0.0.1
打开文件:安装目录/nginx/conf/includes/http-common.conf
1.3.4 配置生效
改完配置后需要重启服务(可以 win+r 运行 services.msc 调出系统服务面板)
-
default.json 和 local.json: 重启 ONLYOFFICE Document Server Converter 和 ONLYOFFICE Document Server DocService
-
nginx 配置: 重启 ONLYOFFICE Document Server Proxy
2. 网站嵌入
2.1 代码示例
首先需要加载 onlyoffice 提供的 js 文件(地址:onlyoffice地址/web-apps/apps/api/documents/api.js),引入后全局会有个 DocsAPI 对象,下面是个简单的使用示例:
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>onlyoffice 预览测试</title>
<!-- 引入 api.js -->
<script src="http://localhost:81/web-apps/apps/api/documents/api.js"></script>
</head>
<body style="margin: 0;height: 100vh;">
<div id="onlyoffice">
</div>
<script>
const config = {
// 设置文档信息
document: {
fileType: "ppt", // 文件类型,支持 doc、ppt、pdf、xls
title: '标题',
url: 'http://localhost:5500/docs/PPT.pptx', // 文件链接
},
editorConfig: {
lang: "zh-CN", // 语言
mode: 'view', // 查看模式 view: 预览模式 edit(默认): 编辑模式
customization: {
zoom: 100 // 页面默认缩放, 默认就是 100
}
},
events: {
onDocumentReady() {
alert('加载完成')
}
}
};
new window.DocsAPI.DocEditor("onlyoffice", config);
</script>
</body>
</html>
2.2 最终效果
3. 常见问题
一般都是一些细节没处理好,翻翻 安装目录/Log/ 下面相关日志就好了
3.1 数据库配置错误导致加载不出来
日志记录: 安装目录/Log/docservice/DocService_xxx.out.log
SQL 相关的报错都适用,如下:
-
数据库配置
创建库,执行创建表 sql 安装目录\server\schema\postgresql\createdb.sql
-
确认连接参数正确
打开配置文件:安装目录/config/local.json
检查 services.CoAuthoring.sql 参数是否正确
-
重启服务生效配置