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. 重启服务生效配置

相关推荐
lijun_xiao20096 分钟前
前端最新Vue2+Vue3基础入门到实战项目全套教程
前端
90后的晨仔19 分钟前
Pinia 状态管理原理与实战全解析
前端·vue.js
杰克尼25 分钟前
JavaWeb_p165部门管理
java·开发语言·前端
90后的晨仔27 分钟前
Vue3 状态管理完全指南:从响应式 API 到 Pinia
前端·vue.js
90后的晨仔42 分钟前
Vue 内置组件全解析:提升开发效率的五大神器
前端·vue.js
我胡为喜呀1 小时前
Vue3 中的 watch 和 watchEffect:如何优雅地监听数据变化
前端·javascript·vue.js
我登哥MVP1 小时前
Ajax 详解
java·前端·ajax·javaweb
非凡ghost2 小时前
Typora(跨平台MarkDown编辑器) v1.12.2 中文绿色版
前端·windows·智能手机·编辑器·软件需求
馨谙2 小时前
/dev/null 是什么,有什么用途?
前端·chrome
JamSlade3 小时前
流式响应 sse 系统全流程 react + fastapi为例子
前端·react.js·fastapi