onlyoffice 服务搭建及配置 - 前端 office 文件预览解决方案

文章目录

  • [1. 安装](#1. 安装)
    • [1.1 环境要求](#1.1 环境要求)
    • [1.2 安装步骤](#1.2 安装步骤)
    • [1.3 常用配置](#1.3 常用配置)
      • [1.3.1 安装目录/config/default.json](#1.3.1 安装目录/config/default.json)
      • [1.3.2 安装目录/config/local.json](#1.3.2 安装目录/config/local.json)
      • [1.3.3 安装目录/nginx/conf](#1.3.3 安装目录/nginx/conf)
      • [1.3.4 配置生效](#1.3.4 配置生效)
  • [2. 网站嵌入](#2. 网站嵌入)
    • [2.1 代码示例](#2.1 代码示例)
    • [2.2 最终效果](#2.2 最终效果)
  • [3. 常见问题](#3. 常见问题)
    • [3.1 数据库配置错误导致加载不出来](#3.1 数据库配置错误导致加载不出来)

1. 安装

写文章时使用环境 Windows 11 + onlyoffice 8.3,以满足离线部署为主,不同版本 onlyoffice 略有差异,大致流程都是相通的,有条件的话直接用 docker 最简单

1.1 环境要求

下面版本要求由官方提供,实测直接装最新就行

1.2 安装步骤

  1. 安装 PostgreSQL

  2. 创建数据库,名字都可以(onlyoffice 默认连接参数:库名、用户名、密码都是 onlyoffice,看情况设置就好了,安装 only office 的时候可以设置)

  3. 安装 erlang 和 RabbitMQ,安装路径看着填,其它选项默认就好了

  4. 根据系统类型选择合适的 onlyoffice 版本: 下载地址

  5. 安装的时候看情况点就好了。到 Select Componets,这里能不选的就不选,对预览功能是没有影响的,选上下载的会很慢(老版本就没有这些选项,最近新版本出了这些,还没研究有啥作用,有知道的可以指点一下)

    因为 OpenSSL 不能取消选中,所以离线安装的时候会下载失败导致报错,这里是不影响最终预览效果的,直接忽略即可。

  6. 数据库配置

    onlyoffice 默认的数据库参数连不上数据库的,老版本还没这验证,这里点确定的话也直接就跳过了,数据库参数错了,安装好用不了的,后面还得导一遍数据库 ,这里点击取消,修改数据库参数即可

    点击取消后弹出数据库配置信息,根据自己数据库信息填写好即可

  7. 安装完成

    最后一步可能会很慢,慢则几个小时都有可能,耐心等待即可

    弹出下面弹窗点击确定即可,就是提示

    到这里就安装完成了

    点击完成,系统会启动一个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 ConverterONLYOFFICE Document Server DocService

  • nginx 配置: 重启 ONLYOFFICE Document Server Proxy

2. 网站嵌入

2.1 代码示例

首先需要加载 onlyoffice 提供的 js 文件(地址:onlyoffice地址/web-apps/apps/api/documents/api.js),引入后全局会有个 DocsAPI 对象,下面是个简单的使用示例:

js 复制代码
<!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 相关的报错都适用,如下:


  1. 数据库配置

    创建库,执行创建表 sql 安装目录\server\schema\postgresql\createdb.sql

  2. 确认连接参数正确

    打开配置文件:安装目录/config/local.json

    检查 services.CoAuthoring.sql 参数是否正确

  3. 重启服务生效配置

相关推荐
北海-cherish2 小时前
Wouter 和 React Router的区别
前端·react.js·前端框架
郝学胜-神的一滴2 小时前
深入理解前端 Axios 框架:特性、使用场景与最佳实践
开发语言·前端·程序人生·软件工程
笨笨狗吞噬者3 小时前
【uniapp】小程序端实现分包异步化
前端·微信小程序·uni-app
Filotimo_3 小时前
2.CSS3.(1).html
前端·css
YAY_tyy3 小时前
【JavaScript 性能优化实战】第五篇:运行时性能优化进阶(懒加载 + 预加载 + 资源优先级)
前端·javascript·性能优化
1024小神3 小时前
flutter 使用dio发送本地https请求报错
前端
正义的大古3 小时前
OpenLayers地图交互 -- 章节七:指针交互详解
前端·javascript·vue.js·openlayers
小中12343 小时前
文件导出的几种方式
前端
qwy7152292581634 小时前
vue自定义指令
前端·javascript·vue.js