ONLYOFFICE DocumnetServer 安装踩坑记录

这篇具有很好参考价值的文章主要介绍了ONLYOFFICE DocumnetServer 安装踩坑记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ONLYOFFICE DocumnetServer 安装踩坑记录

1、安装准备:

操作系统:window server 2012 R2及以上版本

环境:

  • Erlang:version 24.2
  • RabbitMQ:version 3.9.12
  • PostgreSQL:version 12.9 or later

安装包:

  • onlyoffice-documentserver.exe
  • cerbot-beta-installer-win32.exe
  • Visual C++ 2013 Update 5 Redistributable (x64)
  • Visual C++ 2015-2022 Redistributable (x64)

注意:以上软件尽量安装给定的版本,不然会报很多奇奇怪怪的错误,操作系统尽量使用window server 2012 R2及以上的windows服务器,在win10下安装,可能会出现很多权限问题。其中红色的三个软件安装onlyoffice-documentserver.exe过程中会自动安装的,前提是在能够连接在外网的情况下,windows服务器不能连接外网的情况下,需要提前装好这些软件,cerbot 必须安装win32版本的,在github上1.24以后的版本都是win64的。

2、安装过程

  • Erlang和RabbitMQ安装一直点下一步就行了,默认安装在C盘,可以修改安装路径。

  • PostgreSQL安装的时候会让你设置数据库密码,这个要记住,后面会用到,PostgreSQL数据库的默认端口是5432,如果要修改端口,后续还要修改onlyoffice的配置文件,尽量使用默认端口,数据库默认安装在C盘,如果要修改数据库的安装路径需要提前建好文件夹,且要将当前账户设置为完全控制。

  • PostgreSQL安装完成后需要给onlyoffice设置角色\组和数据库,运行安装目录\pgAdmin 4\bin\pgAdmin4.exe,打开后输入刚开始设置的数据库密码,然后创建组:

  • 切换到“Definition”选项卡,并在“密码”字段中输入onlyoffice。

  • 转到“Privileges”选项卡,选中“Can login?”。

  • 然后单击保存。

  • 然后创建一个onlyoffice数据库,owner选择刚刚创建的onlyoffice,然后保存。

  • 或者你也可以使用命令的方式创建组和数据库。在“PostgreSQL安装目录\bin“下打开命令窗口,分别执行以下命令

  • psql -U postgres -c "CREATE USER onlyoffice WITH PASSWORD 'onlyoffice';"
    
  • psql -U postgres -c "CREATE DATABASE onlyoffice OWNER onlyoffice;"
    
  • onlyoffice-documentserver安装完成后会默认占用80端口,所以需要在安装时指定端口,在安装包路径下打开命令窗口输入:onlyoffice-documentserver.exe /DS_PORT=端口号,安装过程中会提示哪些依赖需要下载,如果已经安装了cerbot,可以去掉cerbot的勾选,没有外网还需要下载其他依赖请自行安装。安装过程如果要修改安装目录,安装完成后也需要将文件夹的权限设置为当前账户完全控制,不然没法修改配置文件。然后之后全部点下一步,就安装完成了。

3、安装完成后的配置

安装完成后访问开始安装时的端口号地址会出现以下页面:
ONLYOFFICE DocumnetServer 安装踩坑记录
点击GO TO TEST EXAMPLE,会出现以下页面
ONLYOFFICE DocumnetServer 安装踩坑记录
这是因为官方给的示例页面的服务没开启。
我们在服务器上打开任务管理器,在服务中找到下面四个服务
ONLYOFFICE DocumnetServer 安装踩坑记录
这些就是onlyoffice相关的四个服务。此时example服务是关闭的。example服务会占用3000端口,开启前请检查3000端口是否被占用。
服务打开后再次访问应该会出现以下界面,你可以在这里使用官方案例创建并编辑文档。
ONLYOFFICE DocumnetServer 安装踩坑记录
在服务器的任务管理器的详细信息中会有一个docservice.exe的进程,这个进程会占用8000端口
ONLYOFFICE DocumnetServer 安装踩坑记录
这个端口被占用也会导致文档打不开。
onlyoffice安装目录下,可能会修改以下文件夹
ONLYOFFICE DocumnetServer 安装踩坑记录

3.1 端口配置

config文件夹下,default.json和local.json是经常用到的配置文件。
ONLYOFFICE DocumnetServer 安装踩坑记录

3.1.1 docservice服务配置

修改default.json和local.json中的以下配置

"services": {
    "CoAuthoring": {
        "server": {
            "port": 8000,//默认8000
            ...
        }
            ...
     }
    ...
}

修改完成后,还需要修改http-common.conf
ONLYOFFICE DocumnetServer 安装踩坑记录
修改以下配置

## docservice的端口
upstream docservice {  
  server localhost:8000 max_fails=0 fail_timeout=0s;
}
## example服务的端口
upstream example {  
  server localhost:3000;
}

修改完成保存后,在任务管理器中将onlyoffice的四大服务重启。

3.1.2 文档服务器站点端口修改

还是nginx文件夹
ONLYOFFICE DocumnetServer 安装踩坑记录

include includes/http-common.conf;
## 默认占用80端口
server {
  listen 0.0.0.0:80;
  listen [::]:80 default_server;
  server_tokens off;
  
  set $secure_link_secret OphIwQpJulSumDiLVL4l;
  include includes/ds-*.conf;
}

修改完成保存后,在任务管理器中将onlyoffice的四大服务重启。

3.2 安装字体

onlyoffice安装时默认会读取服务器的字体文件,如果需要新增字体,请现在服务器上安装好需要的字体,然后到bin目录下运行documentserver-generate-allfonts.bat
ONLYOFFICE DocumnetServer 安装踩坑记录
执行完这个批处理文件,会自动重启相关服务,然后手动清除客户端浏览器缓存。

3.3 修改字号

在Microsoft Office word或者WPS文字中我们可以看见字号都有初号,一号,二号什么的字号,onlyoffice中是没有的,找到如图所示路径下的app.js
ONLYOFFICE DocumnetServer 安装踩坑记录
找到{value:8,displayValue:“8”},应该会有三处位置,然后将以下内容粘贴到这几个位置的前面。

{value:42,displayValue:"初号"},{value:36,displayValue:"小初"},{value:26,displayValue:"一号"},{value:24,displayValue:"小一"},{value:22,displayValue:"二号"},{value:18,displayValue:"小二"},{value:16,displayValue:"三号"},{value:15,displayValue:"小三"},{value:14,displayValue:"四号"},{value:12,displayValue:"小四"},{value:10.5,displayValue:"五号"},{value:9,displayValue:"小五"},{value:7.5,displayValue:"六号"},{value:6.5,displayValue:"小六"},{value:5.5,displayValue:"七号"},{value:5,displayValue:"八号"},

修改完成保存后,重启服务,然后手动清除客户端浏览器缓存。

3.4 其他配置

如果想修改编辑器中的其他内容,请自行研究web-apps中的源码,比如修改css样式什么的

4、接口调用注意事项

4.1 引入

如果想在项目中使用文档服务器,可以参考官方的接入文档,有前端三大框架的接入方式,Angular、React、Vue

也可以直接使用script引入,其中documentserver是文档服务器的地址

<script src="http://documentserver/web-apps/apps/api/documents/api.js"></script>

注意:官方给的Angular接入方式,必须要至少Angular 14.2版本 ,过低的版本不行

我这里的angular项目是直接在index.html中使用script引入的

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>onlyoffice</title>
  <base href="/" id="BasePath">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
  <script src="http://documentserver/web-apps/apps/api/documents/api.js"></script>
</head>
<body>
  <app-root></app-root>
</body>
</html>

4.2 调用

在调用接口的时候请参考官方文档,我这里只说明需要注意的几点:

关于key

文档中的key是指,你当前打开的文档的唯一标识,为了确保你每次的打开的文档都是新的,所以每次打开都需要随机生成。

关于token

文档中的token,是指jwt加密字符串,需要在调用后端接口生成,其中payloadClaims是生成文档编辑器的前端配置对象,如下所示:

{
    "document": {
        "key": "Khirz6zTPdfd7",
        "permissions": {
            "comment": true,
            "commentGroups": {
                "edit": ["Group2", ""],
                "remove": [""],
                "view": ""
            },
            "copy": true,
            "deleteCommentAuthorOnly": false,
            "download": true,
            "edit": true,
            "editCommentAuthorOnly": false,
            "fillForms": true,
            "modifyContentControl": true,
            "modifyFilter": true,
            "print": true,
            "review": true,
            "reviewGroups": ["Group1", "Group2", ""]
        },
        "url": "https://example.com/url-to-example-document.docx"
    },
    "editorConfig": {
        "callbackUrl": "https://example.com/url-to-callback.ashx",
        "mode": "edit",
        "user": {
            "group": "Group1",
            "id": "78e1e841",
            "name": "Smith"
        }
    }
}

java接口示例:tokenSecret 是local.json文件中的secret

public String createToken(final Map<String, Object> payloadClaims) {
        try {
            // build a HMAC signer using a SHA-256 hash
            Signer signer = HMACSigner.newSHA256Signer(tokenSecret);
            JWT jwt = new JWT();
            for (String key : payloadClaims.keySet()) {  // run through all the keys from the payload
                jwt.addClaim(key, payloadClaims.get(key));  // and write each claim to the jwt
            }
            return JWT.getEncoder().encode(jwt, signer);  // sign and encode the JWT to a JSON string representation
        } catch (Exception e) {
            return "";
        }
    }

如果不要使用jwt令牌,可以在local.json中的browser改为false

"token": {
        "enable": {
          "request": {
            "inbox": true,
            "outbox": true
          },
          "browser": true //将这个设置为false,就不会检查token了
        },
        "inbox": {
          "header": "Authorization"
        },
        "outbox": {
          "header": "Authorization"
        }
      },

修改完记得重启服务

关于callbackUrl

这是文件保存修改的关键参数,而且这个url必须是IPv4地址当文档打开,强制保存,关闭时都会调用这个回调URL,需要和你的后端对接。
在config文件夹下的default.json文件中有一个savetimeoutdelay参数,默认是5000,也就是5秒,指的是文档关闭5秒后调用callbackUrl,可以把这个设置为0,文档关闭后马上调用回调地址。具体对接方法请参考官方文档。
如果出现文件无法保存,请联系管理员等字样的提示,大部分原因是因为callbackUrl出现问题,检查这个地址是否能进入后端程序,进不去说明地址出现错误或者后端代码写法不对,这个回调地址必须返回一个"{\"error\":0}"

关于url

这是文档服务器访问你业务服务器中的文件的地址,且也必须时IPv4地址,这个地址访问后必须是产生一个文件,文件的类型参考官方文档。文章来源地址https://www.toymoban.com/news/detail-475111.html

到了这里,关于ONLYOFFICE DocumnetServer 安装踩坑记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Elasticsearch安装IK分词器踩坑记录

    在安装ES ik分词器参考如下博文进行安装时报后面的错误提示 https://blog.csdn.net/ZHHX666/article/details/125953385 错误提示: 参考如下博文得已解决: https://blog.csdn.net/Sun_shine95/article/details/126042447 结论: 可能是不同版本目录不同,建议还是使用命令进行安装,不要自己手动建目录。

    2024年01月25日
    浏览(35)
  • Window winget 包管理工具安装踩坑记录

    想在 window 上安装一个好用的包管理工具, mac 上用 homebrew , window 则考虑再三,使用官方提供的 winget 。 winget 官方使用文档。 按 win + x ,选择 Powershell(管理员) 方式打开 cmd ,执行以下命令: 结果报错: 于是去 微软商店(microsoft store) 里面搜索 winget ,发现提示已安装,那

    2024年02月08日
    浏览(47)
  • Pytorch3D Linux环境下安装(踩坑)记录

    Pytorch3D Linux环境下安装(踩坑)记录 文章目录 前言 一、准备工作 二、极简安装(Installing prebuilt binaries) 1.创建环境 2.安装Pytorch 3.安装两个核心库 4.(非必要)Tests/Linting and Demos 相关 5.安装Pytorch3D 三、手动安装(Building from source) 1.创建环境 2.安装Pytorch 3.安装两个核心库(

    2024年02月13日
    浏览(38)
  • Kubernetes轻量级日志工具Loki安装及踩坑记录

    Loki是Grafana出品的一个轻量级日志系统,熟悉ELK的都知道ELK使用起来的成本,而且仅仅是日志检索使用ELK的话有点大材小用了。Loki8技术栈中使用了以下组件。 Promtail 用来将容器日志发送到 Loki 或者 Grafana 服务上的日志收集工具,该工具主要包括发现采集目标以及给日志流添

    2024年02月03日
    浏览(55)
  • VirtualBox Ubuntu无法安装增强功能以及无法复制粘贴踩坑记录

    在VirtualBox安装增强功能想要和主机双向复制粘贴,中间查了很多资料,终于是弄好了。记录一下过程,可能对后来人也有帮助,我把我参考的几篇主要的博客都贴上来了,如果觉得我哪里讲得不清楚的,可以去对应的博客去看,讲得更加详细。 报错:未能加载虚拟光盘…到

    2024年02月14日
    浏览(50)
  • Huggingface Transformers Deberta-v3-base安装踩坑记录

    下载transformers的预训练模型时,使用bert-base-cased等模型在AutoTokenizer和AutoModel时并不会有太多问题。但在下载deberta-v3-base时可能会发生很多报错。 首先, 此时会发生报错,提示  解决方法是  继续导入tokenizer,又会有如下报错

    2024年02月09日
    浏览(32)
  • llama.cpp LLM模型 windows cpu安装部署踩坑记录

    一直想在自己的笔记本上部署一个大模型验证,早就听说了llama.cpp,可是一直没时间弄。 今天终于有时间验证了。首先本机安装好g++,cmake.我下载的cmake版本是cmake-3.27.0-rc4-windows-x86_64.msi。安装时选择增加系统变量。接着GitHub - ggerganov/llama.cpp: Port of Facebook\\\'s LLaMA model in C/C++ 执行

    2024年02月15日
    浏览(41)
  • 【paddle本地环境安装踩坑记录】libssl.so.1.1...PreconditionNotMetError...

    本机环境为ubuntu16.04,虽然版本较低,但所遇到的问题几乎适用于所有版本(如有错误请纠正) 首先确保自己通过paddlepaddle官网安装步骤是正确,CUDA版本也确认过对应无误!! 然后就在通过以下语句: python import paddle paddle.utils.run_check() 验证是否安装成功时产生了报错: 经

    2024年02月05日
    浏览(29)
  • MMCV+pytorch1.10+cu11.x离线安装踩坑记录

    cuda11.4(cuda11.x) ubuntu20.04 python3.7/python3.8 mmcv/mmdet/mmpose/mmengine 依赖的其他wheel包对python版本有要求,安装过程中请注意! 在官网找到和cuda版本对应的pytorch版本 https://pytorch.org/get-started/previous-versions/ 如果需要其他版本可以直接到下载目录查找http://download.pytorch.org/whl/torch_stable.

    2024年02月11日
    浏览(51)
  • Docker无法部署Onlyoffice问题记录

    国产操作系统(麒麟v10-x86-64bit,openEuler20.03 64bit x86),安装docker之后,通过docker run之后Onlyoffice无法成功跑起来,且会消耗大量cpu资源,甚至导致系统卡死 镜像的entrypoint中指向运行一个sh脚本,脚本中通过service命令启动rabbitmq,但是一直无法成功启动,且一直处于循环尝试导

    2024年01月18日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包