17.11 OnlyOffice 部署(基于 PostgreSQL)

OnlyOffice 是一个开源的在线文档编辑器,可以与 Nextcloud 等平台集成。本节将介绍基于 PostgreSQL 数据库在 FreeBSD 上部署 OnlyOffice 的方法。

安装 Nextcloud 和 Nginx

OnlyOffice 需要与 Nextcloud 配合使用,首先请读者在其他机器上安装 Nextcloud 和 Nginx。

安装 OnlyOffice

Nextcloud 和 Nginx 准备好后,可以开始安装 OnlyOffice 文档服务器。

使用 pkg 包管理器安装 OnlyOffice 是最快捷的方式,执行以下命令即可完成安装。

# pkg install onlyoffice-documentserver

或者使用 Ports 方式安装 OnlyOffice,需要先进入对应的目录再执行编译安装命令。

# cd /usr/ports/www/onlyoffice-documentserver/ 
# make install clean

查看 OnlyOffice 安装信息

目录结构:

/
├── usr
   └── local
       ├── etc
          ├── onlyoffice
             └── documentserver
                 ├── local.json                      # OnlyOffice 本地配置文件
                 ├── default.json                    # OnlyOffice 默认配置文件
                 ├── nginx
                    └── ds.conf                     # OnlyOffice Nginx 配置
                 └── supervisor
                     └── *.conf                      # OnlyOffice supervisord 配置
          └── supervisord.conf                        # supervisord 主配置文件
       ├── bin
          ├── documentserver-pluginsmanager.sh       # 插件管理器脚本
          └── documentserver-update-securelink.sh    # 安全链接更新脚本
       └── www
           └── onlyoffice
               └── documentserver
                   └── server
                       └── schema
                           ├── postgresql
                              ├── createdb.sql      # PostgreSQL 数据库创建脚本
                              └── upgrade           # PostgreSQL 升级脚本
                           └── mysql
                               ├── createdb.sql      # MySQL 数据库创建脚本
                               └── upgrade           # MySQL 升级脚本
└── var
    ├── log
       └── onlyoffice
           └── documentserver
               └── converter
                   └── out.log                        # OnlyOffice 日志文件
    └── db
        └── rabbitmq
            └── .erlang.cookie                          # RabbitMQ Erlang Cookie

安装完成后,建议查看安装包的说明文档,了解必要的配置和注意事项:

配置服务

了解完安装信息后,需要配置 OnlyOffice 相关服务的开机自启。

配置数据库

OnlyOffice 需要一个数据库来存储数据,本节使用 PostgreSQL 作为数据库。请读者自行参照本书其他章节,完成 PostgreSQL 数据库的安装、初始化和服务自启。

然后执行以下命令使用数据库:

配置 rabbitmq

OnlyOffice 需要使用 RabbitMQ 作为消息队列服务。开启服务:

第一步:

第二步:

第三步:

允许局域网访问

OnlyOffice 默认配置不允许私有 IP 地址访问,需要修改配置以允许局域网访问。故需将以下片段加入 /usr/local/etc/onlyoffice/documentserver/local.json

即:

配置 Nginx

需要配置 Nginx 来提供 OnlyOffice 的 Web 访问服务。编辑 /usr/local/etc/nginx/nginx.conf

放到 http 的括号里:

示例:

配置 supervisord

OnlyOffice 使用 supervisord 来管理其服务进程。编辑 /usr/local/etc/supervisord.conf,翻到最底下,找到 ;[include],并删去前面的分号:

即:

启动文档

所有配置完成后,可以启动 OnlyOffice 文档服务。

直接打开 IP 地址,应如下图所示:

Document Server is running

配置 Nextcloud

OnlyOffice 文档服务启动后,需要在 Nextcloud 中配置 OnlyOffice 插件。打开 Nextcloud:

安装 onlyoffice 插件,可以直接访问 ip/nextcloud/index.php/settings/apps/office/onlyoffice

onlyoffice

点击头像——> 管理设置,找到 onlyoffice,设置如下(注意看看那个密钥是不是真的为空):

onlyoffice

完成

所有配置完成后,可以测试 OnlyOffice 功能,预览几个文件:

onlyoffice
onlyoffice
onlyoffice

参考文献

故障排除与未竟事宜

在使用 OnlyOffice 过程中如遇到问题,可以查看相关日志文件进行排查。本节还列出了一些有待完善的事项。

OnlyOffice 的日志位于 /var/log/onlyoffice/documentserver/converter/out.log

课后习题

  1. 在 Apache 服务器上部署 OnlyOffice。

  2. 重构 OnlyOffice 最小化部署方案,移除 supervisord 进程管理器,改用 FreeBSD rc.d 脚本直接管理各个服务进程,贡献至上游。

  3. 修改 OnlyOffice 默认的请求过滤配置,重新启用私有 IP 地址限制,同时配置仅允许来自特定 Nextcloud 实例的请求,验证配置变更效果。

最后更新于