跳转至

09-onlyoffice服务部署

参考地址汇总

Centos7 mysql5.7.28 Unit mysqld.service entered failed state. https://blog.csdn.net/hai1124948893/article/details/106413747

mysql 8.0.15忘记密码重置方法 https://www.cnblogs.com/jerrys/p/10626408.html

为 CentOS 及其衍生产品安装 ONLYOFFICE Docs 社区版 https://helpcenter.onlyoffice.com/installation/docs-community-install-centos.aspx?_ga=2.183832801.691918964.1634694529-1452464364.1623375280

为 Red Hat、CentOS 和衍生产品安装 ONLYOFFICE 组 https://helpcenter.onlyoffice.com/installation/groups-install-centos.aspx#undefined

将 ONLYOFFICE Docs 连接到 ONLYOFFICE 组 https://helpcenter.onlyoffice.com/installation/docs-community-connect-groups-linux.aspx

安装 ffmpeg https://www.cnblogs.com/wpjamer/p/ffmpeg.html

MySQL8.0密码策略修改 https://blog.csdn.net/mouday/article/details/104190023

onlyoffice支持中文搜索

http://172.28.8.241/ctyun/centos-iso/onlyoffice/communityserver/elasticsearch-analysis-ik-7.9.0.zip

/usr/share/elasticsearch/plugins/ik

onlyoffice6.x高版本使用参考(主要破解20连接限制

https://www.daxueyiwu.com/post/802

效果截图

image-20211028153243079

所有软件包汇总下载地址

百度云下载地址:

链接: https://pan.baidu.com/s/1T6JXkZOtasanZ9pJkAFHYg 提取码: 95ab

ONLYOFFICE Docs(社区版)

文档服务器(documentserver)官方原版

此版本存在同时连接数限制问题,最多只能打开20个编辑文档

介绍

社区版**允许您在本地服务器上安装**ONLYOFFICE Docs,并将在线编辑器与ONLYOFFICE 协作平台其他流行系统集成

**ONLYOFFICE Docs**是一个在线办公套件,包括文本、电子表格和演示文稿的查看器和编辑器,完全兼容 Office Open XML 格式:.docx、.xlsx、.pptx 并支持实时协作编辑。

功能

  • 文件编辑器
  • 电子表格编辑器
  • 演示文稿编辑器
  • 移动网络查看器
  • 协同编辑
  • 象形文字支持
  • 支持所有流行格式:DOC、DOCX、TXT、ODT、RTF、ODP、EPUB、ODS、XLS、XLSX、CSV、PPTX、HTML

查看**ONLYOFFICE Docs** **Community Edition**可用功能详细列表

将其与**ONLYOFFICE Groups**集成,您将能够:

  • 分享文件;
  • 管理对文件的访问权限;
  • 在网站上嵌入文件;
  • 查看和编辑存储在连接到 ONLYOFFICE 的 Drive、Box、Dropbox、OneDrive、OwnCloud 上的文件。

如果您想将**ONLYOFFICE Docs**与**ONLYOFFICE Groups**一起使用,它们必须安装在两台不同的机器上

系统要求

中央处理器 双核2 GHz或更好
内存 2 GB或更多
硬盘 至少40 GB的可用空间
其他要求 至少4 GB的交换空间
操作系统 RHEL 7或 CentOS 7
其他要求
PostgreSQL : 9.1或更高版本
NGINX:版本1.3.13或更高版本
RABBITMQ

环境准备

YUM仓库配置

安装阿里云的base源与EPEL源 仓库和常用命令

rm -f /etc/yum.repos.d/*.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum repolist

配置NTP服务

安装chrony

yum -y install chrony ntp vim

编辑chrony配置文件

[root@localhost ~]# vim /etc/chrony.conf
server ntp1.aliyun.com iburst

启动chrony服务

systemctl enable chronyd.service
systemctl start chronyd.service

验证ntp服务客户端是否同步时间正常

[root@localhost ~]# ntpstat 
synchronised to NTP server (120.25.115.20) at stratum 3
   time correct to within 49 ms
   polling server every 64 s

安装依赖

安装nginx

安装**NGINX**:

yum -y localinstall nginx-1.20.1-1.el7.ngx.x86_64.rpm

之后编辑/etc/nginx/nginx.conf **NGINX**配置文件,使其看起来如下所示:

user                  nginx;
worker_processes      1;
error_log             /var/log/nginx/error.log warn;
pid                   /var/run/nginx.pid;
events {
  worker_connections  1024;
}
http {
  include             /etc/nginx/mime.types;
  default_type        application/octet-stream;
  log_format          main  '$remote_addr - $remote_user [$time_local] "$request" '
                            '$status $body_bytes_sent "$http_referer" '
                            '"$http_user_agent" "$http_x_forwarded_for"';
  access_log          /var/log/nginx/access.log  main;
  sendfile            on;
  #tcp_nopush         on;
  keepalive_timeout   65;
  #gzip               on;
  include             /etc/nginx/conf.d/*.conf;
}

检查nginx配置文件是否正确

nginx -t

安装和配置 PostgreSQL

**安装**您的 CentOS 版本中包含**的 PostgreSQL**版本:

yum -y install postgresql postgresql-server

如果您想PostgreSQL从 PostgreSQL 存储库安装其他版本,请参阅官方 PostgreSQL 文档以获取更多详细信息。

初始化 PostgreSQL 数据库

sudo service postgresql initdb 
sudo chkconfig postgresql on

打开**IPv4 和 IPv6 本地主机**的“信任”身份验证方法

/var/lib/pgsql/data/pg_hba.conf在文本编辑器中打开文件。

找到host all all 127.0.0.1/32 ident字符串并将其替换为以下字符串:

host    all             all             127.0.0.1/32            trust

然后找到该host all all ::1/128 ident字符串并将其替换为以下字符串:

host    all             all             ::1/128                 trust

保存更改。

重启 PostgreSQL 服务

service postgresql restart

创建 PostgreSQL 数据库和用户

您可以指定任何用户名和密码。

首先运行命令

cd /tmp

以防止could not change directory to "/root"从 root 运行时出现警告。然后必须创建数据库和用户:

sudo -u postgres psql -c "CREATE DATABASE onlyoffice;"
sudo -u postgres psql -c "CREATE USER onlyoffice WITH password 'onlyoffice';"
sudo -u postgres psql -c "GRANT ALL privileges ON DATABASE onlyoffice TO onlyoffice;"

安装RabbitMQ

yum -y install rabbitmq-server

CentOS 8上安装RabbitMQ请参考官方说明

启动 rabbitmq 服务并启用启动时启动:

sudo service rabbitmq-server start
sudo systemctl enable rabbitmq-server

安装 mscorefonts

安装cabextractxorg-x11-font-utils包:

yum install -y cabextract xorg-x11-font-utils

对于 CentOS 7.8(2003),fontconfig还需要:

yum -y install fontconfig

安装 msttcore 字体包:

yum -y localinstall msttcore-fonts-installer-2.6-1.noarch.rpm

安装 ONLYOFFICE 文档

执行以下命令:

cd /root/documentserver/
yum -y localinstall onlyoffice-documentserver.x86_64.rpm

运行相关服务并在启动时启用它们:

sudo service supervisord start
sudo systemctl enable supervisord
sudo service nginx start
sudo systemctl enable nginx

之后**ONLYOFFICE Docs**将作为一个进程运行。该软件包将像任何其他 rpm 软件包一样进行更新。

更改默认的 Docs 端口

默认情况下,**ONLYOFFICE Docs**使用端口**80**侦听传入连接。从**4.3**版开始,如果您打算使用**ONLYOFFICE Docs**的端口而不是默认端口,**则**可以更改它。

如果您要更改默认端口,请确保它为传入/传出连接打开。查看**ONLYOFFICE Docs**使用的端口的完整列表

为此,您需要编辑运行以下命令的**DS_PORT**环境变量:

export DS_PORT=<PORT_NUMBER>

请写端口号而不是<PORT_NUMBER>上面命令中的。

警告如果要将**ONLYOFFICE Docs**协议更改为 HTTPS,请不要将端口更改为**443**,而是使用此指令

之后,您可以继续配置**ONLYOFFICE Docs**。

配置 ONLYOFFICE 文档

运行配置脚本

运行documentserver-configure.sh脚本:

bash documentserver-configure.sh

您将被要求指定 PostgreSQL和 RabbitMQ 连接参数。使用以下数据:

For PostgreSQL:

Host: localhost
Database: onlyoffice
User: onlyoffice
Password: onlyoffice
For RabbitMQ:

Host: localhost
User: guest
Password: guest

添加防火墙例外

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload

禁用 SELinux

自 v.5.0 起已弃用

/etc/selinux/config使用任何文本编辑器打开文件,用SELINUX=enforcing或替换SELINUX=permissive字符串SELINUX=disabled并保存更改。

重新启动服务器以使更改生效。

在浏览器中启动 Docs

配置完成后,您可以在浏览器地址栏中输入http://localhost以打开**ONLYOFFICE Docs**欢迎页面,您将在其中找到有关如何使用提供的 API启用文档示例或将在线编辑器集成到您的 Web 应用程序的更多说明.

要将**ONLYOFFICE Docs**连接到**ONLYOFFICE Groups**,请参阅此说明

访问ONLYOFFICE Docs web界面

访问页面

image-20211022210003280

集成前测试

使用集成测试示例,一个简单的文档管理系统,检查编辑器是否正确运行。

开始测试示例:

sudo supervisorctl start ds:example

将其添加到自动启动:

sudo sed 's,autostart=false,autostart=true,' -i /etc/supervisord.d/ds-example.ini

如果您已经安装了测试示例,请在此处访问它:

查看集成测试页面

image-20211022210113645

ONLYOFFICE Docs(无限制版)

此部署版本为无限制版本,使用此版本目前已解决20连接数问题,无限制共同协作编辑

环境准备

YUM仓库配置

安装阿里云的base源与EPEL源 仓库和常用命令

rm -f /etc/yum.repos.d/*.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum repolist

配置NTP服务

安装chrony

yum -y install chrony ntp

编辑chrony配置文件

[root@localhost ~]# vim /etc/chrony.conf
server ntp1.aliyun.com iburst

启动chrony服务

systemctl enable chronyd.service
systemctl start chronyd.service

验证ntp服务客户端是否同步时间正常

[root@localhost ~]# ntpstat 
synchronised to NTP server (120.25.115.20) at stratum 3
   time correct to within 49 ms
   polling server every 64 s

安装启动

(1)安装docker软件

[root@docker ~]# yum install -y docker

#安装docker(CentOS7系统CentOS-Extras库中已带Docker)

修改docker的配置文件

(2)启动docker

[root@docker ~]# systemctl start docker 

(3)加入开机自启动

[root@docker ~]# systemctl enable docker

(4)查看docker版本信息

[root@docker ~]# docker version
Client: #docker     #客户端版本信息
Version: 1.8.2-el7.centos
API version: 1.20
Package Version: docker-1.8.2-10.el7.centos.x86_64
Go version: go1.4.2
Git commit: a01dc02/1.8.2
Built:
OS/Arch: linux/amd64
Server: #docker     #服务端版本信息
Version: 1.8.2-el7.centos
API version: 1.20
Package Version:
Go vesion: go1.4.2
Git commit: a01dc02/1.8.2
Built:
OS/Arch: linux/amd64

配置镜像加速器

配置镜像加速器方法02

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://1v0q5mvy.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl status docker

导入docker镜像

docker load < onlyoffice.tar.gz 
docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
<none>              <none>              db70cc70d2de        6 months ago        3.21 GB

开启内核转发

vim /etc/sysctl.conf 
最后一行添加
net.ipv4.ip_forward=1
加载内核
sysctl -p

启动容器

docker run -d -p 172.28.8.247:80:80 --name onlyoffice-server db70cc70d2de

进入容器

# cat in.sh 
#!/bin/sh
PID=$(docker inspect --format "{{.State.Pid}}" $1) 
nsenter -t $PID -u -i -n -p 


[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                              NAMES
dc8acd41578f        db70cc70d2de        "/app/ds/run-docum..."   7 hours ago         Up 7 hours          172.28.8.247:80->80/tcp, 443/tcp   onlyoffice-server
[root@localhost ~]# sh in.sh dc8acd41578f
[root@dc8acd41578f ~]# 

检查服务是否启动

进入容器以后发现80端口启动后就表示服务启动正常

[root@dc8acd41578f ~]# ss -ltnp|grep 80
LISTEN     0      128          *:80                       *:*                   users:(("nginx",pid=16119,fd=7),("nginx",pid=11086,fd=7))
LISTEN     0      128         :::8000                    :::*                   users:(("docservice",pid=11326,fd=21))
LISTEN     0      128         :::8080                    :::*                   users:(("spellchecker",pid=11042,fd=20))
LISTEN     0      128         :::80                      :::*                   users:(("nginx",pid=16119,fd=8),("nginx",pid=11086,fd=8))
[root@dc8acd41578f ~]# 

访问页面

image-20211022215908516

集成前测试

使用集成测试示例,一个简单的文档管理系统,检查编辑器是否正确运行。

开始测试示例:

sudo docker exec docker-1300d sudo supervisorctl start ds:example

将其添加到自动启动:

sudo docker exec docker-1300d sudo sed 's,autostart=false,autostart=true,' -i /etc/supervisor/conf.d/ds-example.conf

如果您已经安装了测试示例,请在此处访问它:

查看集成测试页面

image-20211022215947270

ONLYOFFICE Groups(社区版)

管理服务器(communityserver)官方原版

介绍

**ONLYOFFICE Groups**是一个免费的开源协作系统,开发用于在一个地方管理文档、项目、客户关系和电子邮件通信。

该解决方案包括**ONLYOFFICE 社区服务器**协作平台和**ONLYOFFICE 控制面板**,便于配置和定制,以及**ONLYOFFICE XMPP 服务器**。

功能

  • 跨平台解决方案:Linux、Windows
  • 文件管理
  • 与 Google Drive、Box、Dropbox、OneDrive、OwnCloud 集成
  • 文件共享
  • 文档嵌入
  • 访问权限管理
  • 可定制的客户关系管理
  • 网络潜在客户表单
  • 进销存系统
  • 项目管理
  • 甘特图
  • 里程碑、任务依赖和子任务
  • 时间跟踪
  • 自动报告
  • 博客、论坛、民意调查、维基
  • 日历
  • 电子邮件聚合器
  • 人员模块(员工数据库)
  • 即时通讯
  • 支持 20 多种语言

本指南将向您展示如何将**ONLYOFFICE Groups** Linux 版本安装到您的机器上。

系统要求

中央处理器 双核2 GHz或更好
内存 4 GB或更多
硬盘 至少20 GB的可用空间
其他要求 至少4 GB的交换空间
操作系统 内核版本为3.10或更高版本的amd64 Linux 发行版
其他要求
单声道:版本6.8
MySQL:版本8.0(或 MariaDB 版本10.1或更高版本)
Node.js:版本12
NGINX

环境准备

YUM仓库配置

安装阿里云的base源与EPEL源 仓库和常用命令

rm -f /etc/yum.repos.d/*.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum repolist

配置NTP服务

安装chrony

yum -y install chrony ntp vim

编辑chrony配置文件

[root@localhost ~]# vim /etc/chrony.conf
server ntp1.aliyun.com iburst

启动chrony服务

systemctl enable chronyd.service
systemctl start chronyd.service

验证ntp服务客户端是否同步时间正常

[root@localhost ~]# ntpstat 
synchronised to NTP server (120.25.115.20) at stratum 3
   time correct to within 49 ms
   polling server every 64 s

安装依赖

ONLYOFFICE 社区服务器**使用Mono(版本 6.8 或更高版本)NGINX、、Node.js(版本 12)和mysql-server作为数据库。在系统存储库中找到的依赖项将使用**yum install**命令在**ONLYOFFICE 社区服务器**安装时**自动****安装

安装nginx

yum -y localinstall nginx-1.20.1-1.el7.ngx.x86_64.rpm 

安装mysql

首先卸载mariadb

yum -y remove mariadb-libs

安装mysql8.0版本

yum -y localinstall mysql-community-*

启动 MySQL 服务器

使用以下命令启动 MySQL 服务器:

$> sudo service mysqld start
Starting mysqld:[ OK ]

您可以使用以下命令检查 MySQL 服务器的状态:

$> sudo service mysqld status
mysqld (pid 3066) is running.

在服务器初始启动时,假设服务器的数据目录为空,会发生以下情况:

  • 服务器已初始化。
  • SSL 证书和密钥文件在数据目录中生成。
  • validate_password 已安装并启用。
  • 'root'@'localhost创建了 一个超级用户帐户。超级用户的密码已设置并存储在错误日志文件中。要显示它,请使用以下命令:
grep 'temporary password' /var/log/mysqld.log

通过使用生成的临时密码登录并为超级用户帐户设置自定义密码,尽快更改 root 密码:

mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

配置mysql空密码

升级之后密码需要设置特别复杂,导致自己都记不住,本地开发环境我一般设置成123456,便于记忆

1、查看密码策略

show variables like 'validate_password%';

2、修改密码策略

-- 密码验证策略低要求(0或LOW代表低级)
set global validate_password.policy=0;

-- 密码至少要包含的小写字母个数和大写字母个数
set global validate_password.mixed_case_count=0;

-- 密码至少要包含的数字个数。
set global validate_password.number_count=0; 

-- 密码至少要包含的特殊字符数
set global validate_password.special_char_count=0; 

-- 密码长度
set global validate_password.length=6;  

3、修改mysql密码为空

use mysql
update user set authentication_string='' where user='root';
FLUSH PRIVILEGES;

4.退出验证mysql密码是否为空

mysql

安装Elasticsearch

Elasticsearch 需要 OpenJDK 8。要安装它,请使用以下命令:

yum -y install java-1.8.0-openjdk-headless

使用以下命令安装 Elasticsearch:

yum -y localinstall elasticsearch-7.9.0-x86_64.rpm 

安装 ffmpeg

配置 ffmpeg源

 vim /etc/yum.repos.d/nux-dextop.repo
 [nux-dextop]
name=Nux.Ro RPMs for general desktop use
baseurl=http://li.nux.ro/download/nux/dextop/el7/$basearch/ http://mirror.li.nux.ro/li.nux.ro/nux/dextop/el7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-nux.ro
protect=0

[nux-dextop-testing]
name=Nux.Ro RPMs for general desktop use - testing
baseurl=http://li.nux.ro/download/nux/dextop-testing/el7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-nux.ro
protect=0

安装ffmpeg

yum localinstall -y rpmfusion-free-release-7.noarch.rpm
yum localinstall -y SDL2-2.0.14-2.el7.x86_64.rpm

ffmpeg 公网安装
yum -y install ffmpeg ffmpeg-devel

ffmpeg 本地安装
tar xf ffmpeg.tar.gz
cd ffmpeg
yum localinstall *.rpm

安装 mono-webserver-hyperfastcgi

安装 mono-webserver-hyperfastcgi

yum -y localinstall mono-webserver-hyperfastcgi-0.4-3.noarch.rpm

安装Node.js

安装nodesjs

yum -y install unzip
\cp node-v12.0.0-linux-x64.tar.gz /usr/local/src/
cd /usr/local/src/
tar xf node-v12.0.0-linux-x64.tar.gz 

配置环境变量

vim /etc/profile
export PATH=$PATH:/usr/local/src/node-v12.0.0-linux-x64/bin/

加载环境变量

source /etc/profile

检查nodejs版本

# node -v
v12.0.0

安装 ONLYOFFICE 组

安装ONLYOFFICE 控制面板

yum -y localinstall onlyoffice-controlpanel-3.0.2-395.noarch.rpm

安装ONLYOFFICE 社区服务器

yum -y localinstall onlyoffice-communityserver-11.5.4-502.noarch.rpm
此步骤安装缓慢,请耐心等待。

安装ONLYOFFICE XMPP 服务器

yum -y localinstall onlyoffice-xmppserver-11.0.0-111.noarch.rpm

配置 ONLYOFFICE 组

启动redis服务

systemctl start redis
systemctl enable redis
systemctl status redis

解决nodejs bug问题

cp /bin/node /bin/node_bak 

检查nodejs版本是否为12 (如果是12版本则表示没有问题)

# node
Welcome to Node.js v12.0.0.
Type ".help" for more information.
> 

解决controlpanel启动后报502错误

vim /usr/lib/systemd/system/onlyofficeControlPanel.service
ExecStart=/bin/node /var/www/onlyoffice/controlpanel/www/server.js
修改为
ExecStart=/usr/local/src/node-v12.0.0-linux-x64/bin/node /var/www/onlyoffice/controlpanel/www/server.js

然后运行配置脚本:

bash communityserver-configure.sh

Configuring MySQL access... 
Host: 127.0.0.1
Database name: onlyoffice
User: root
Password: 
Trying to establish MySQL connection... OK
ERROR 1819 (HY000) at line 1: Your password does not satisfy the current policy requirements
Installing MySQL database... 
package onlyoffice-documentserver-ee is not installed
Restarting services... 
monoserve.service 
monoserveApiSystem.service 
nginx.service 
onlyofficeTelegram.service 
onlyofficeRadicale.service 
onlyofficeSocketIO.service 
onlyofficeThumb.service 
onlyofficeUrlShortener.service 
onlyofficeBackup.service 
onlyofficeFeed.service 
onlyofficeIndex.service 
onlyofficeNotify.service 
onlyofficeMailAggregator.service 
onlyofficeMailWatchdog.service 
onlyofficeMailCleaner.service 
onlyofficeRadicale.service 
onlyofficeStorageMigrate.service 
onlyofficeStorageEncryption.service 
onlyofficeThumbnailBuilder.service 
onlyofficeSsoAuth.service 
OK

该脚本将交互式地要求您输入 MySQL 连接参数、创建数据库、更新配置文件并运行所有服务。

该脚本不会为数据库创建用户,也不会更改现有用户的密码。

成功安装后,ONLYOFFICE Groups**将在http://localhost/**地址可用。

如果您在安装**ONLYOFFICE Groups 时**遇到一些问题,您可以参考我们的故障排除部分。

初始化 ONLYOFFICE 组

打开浏览器输入:http://192.168.56.77/

设置密码,邮箱和中文,点击下一步

image-20220124163137317

等待加载一会,就出来首页啦

image-20220124163253992

访问 ONLYOFFICE 组

image-20211022212952819

配置禁止服务器出外网

此步骤很重要

可以删除网关,禁止出外网

2台服务器都要禁止出外网,这样打开速度就会非常快。

将 Docs 连接到 Groups

介绍

如果要将**ONLYOFFICE Docs**连接到安装在本地或远程服务器上的**ONLYOFFICE Groups**门户,您可能需要更改安装了**ONLYOFFICE Groups**和**ONLYOFFICE Docs**的计算机上的配置文件。所以请首先确保您对两台机器都有管理员访问权限。

**ONLYOFFICE Docs**和**ONLYOFFICE Groups**必须安装在两台不同的机器上。

将**ONLYOFFICE Docs**连接到**ONLYOFFICE Groups**需要在**ONLYOFFICE Groups**门户界面的**设置**页面或配置文件中更改一些连接字符串。**ONLYOFFICE Docs**使用的以下地址必须引入**ONLYOFFICE Groups**配置中,以便它们连接:

如果您计划在本地网络上同时使用**ONLYOFFICE Docs**和**ONLYOFFICE Groups**,并且用户将**仅**使用本地网络访问它们,则可以通过以下方式更改这些地址:

但是,如果您计划从外部(使用 Internet 连接)访问服务器,则必须遵循以下规则:

  • 第一个地址由**ONLYOFFICE Docs** API 服务使用,如果编辑器从 Internet 访问,则必须使用**公共 DNS 地址**,因为它不仅会与**ONLYOFFICE Groups**机器通信,还会与用户计算机通信。
  • 第二个和第三个地址用于单独路由两台服务器(Docs**和**Groups)之间的通信,不需要任何互联网连接,所以这里使用本地网络地址是安全的,以防两台计算机在同一个本地网络,即使计划通过 Internet 从其他计算机访问**ONLYOFFICE Docs**和/或**ONLYOFFICE Groups**。
  • 如果**ONLYOFFICE Groups**和**ONLYOFFICE Docs**位于不同的网络,并且需要通过 Internet 访问编辑器,您可以只指定第一个地址。第二个字段的值将是第一个字段的值,第三个字段将取自浏览器地址栏。

以下步骤将说明在不同**ONLYOFFICE Groups**版本中的何处找到这些地址。

兼容说明

通常要将**ONLYOFFICE Docs**连接到**ONLYOFFICE Groups** 8.1 及更高版本,您只需要在门户设置中设置连接参数。为此,请转到**“设置”并选择“**集成-文档服务”。然后只需使用适当的**ONLYOFFICE Docs**服务地址填写所有字段。

请注意,并非所有**ONLYOFFICE Groups**和**ONLYOFFICE Docs**版本都可以相互连接。如果您的**ONLYOFFICE Groups**版本与当前**ONLYOFFICE Docs**版本不兼容,反之亦然,请考虑升级到最新版本或至少到最近的兼容版本。

下表显示了哪些服务器版本可以毫无问题地相互连接:

image-20211022213401151

查看旧的 ONLYOFFICE Groups 和 ONLYOFFICE Docs 版本兼容性表

image-20211022213418432

编辑 ONLYOFFICE 组的配置文件

如果这不起作用,或者您使用的是8.1 版之前的**ONLYOFFICE 社区服务器,**并且您确定**ONLYOFFICE Groups**版本与您尝试连接的**ONLYOFFICE Docs**版本兼容(请参阅上表,看看是否是这样),您需要执行以下操作,编辑配置文件。

首先,您需要更改可以在**ONLYOFFICE Groups**计算机文件夹中找到的**web.appsettings.config**文件。使用文本编辑器(例如**nano**)打开它:/var/www/onlyoffice/WebStudio/

sudo nano /var/www/onlyoffice/WebStudio/web.appsettings.config

并添加以下行(或相应地更改这些行,以防它们已经存在):

<add key="files.docservice.url.public" value="http://documentserver-publicaddress/" />
<add key="files.docservice.url.internal" value="http://documentserver-localaddress/" />
<add key="files.docservice.url.portal" value="http://communityserver/" />

哪里documentserver-publicaddress是计算机的地址**ONLYOFFICE文档**供公众网络,documentserver-localaddress是计算机的地址**ONLYOFFICE文档**可用于本地网络communityserver是计算机的地址**ONLYOFFICE组**安装。

对于**9.6**之前的**ONLYOFFICE 社区服务器**版本,您需要编辑以下几行:

<add key="files.docservice.url.converter" value="http://documentserver/ConvertService.ashx" />
<add key="files.docservice.url.api" value="http://documentserver/web-apps/apps/api/documents/api.js" />
<add key="files.docservice.url.apinew" value="http://documentserver/web-apps/apps/api/documents/api.js" />
<add key="files.docservice.url.preloader" value="http://documentserver/web-apps/apps/api/documents/cache-scripts.html" />
<add key="files.docservice.url.storage" value="http://documentserver/FileUploader.ashx" />
<add key="files.docservice.url.portal" value="http://communityserver/" />
<add key="files.docservice.url.command" value="http://documentserver/coauthoring/CommandService.ashx" />

在哪里documentservercommunityserver与该计算机的地址**ONLYOFFICE文档**和**ONLYOFFICE组**安装。

这些行必须<add key="files.docservice.secret.header" value="" />在行之后插入。

之后重启 monoserve 服务:

sudo service monoserve restart

您还需要运行 SQL 脚本才能正常工作:

sudo mysql -u root -p

输入密码,之后您应该会看到 SQL 欢迎提示:

mysql>

这意味着您成功进入了 SQL 数据库。输入命令(不省略分号):

use onlyoffice;

现在您可以运行以下命令:

DELETE FROM `webstudio_settings` WHERE `ID`='a3acbfc4-155b-4ea8-8367-bbc586319553';

如果文档有问题,您可以尝试更改**web.appsettings.config**文件的 行,输入任何其他数值而不是**3** .

web界面配置连接 Docs

image-20211022213759893

配置Groups支持中文搜索

将elasticsearch的插件elasticsearch-analysis-ik复制到对应目录

yum -y install unzip
cp elasticsearch-analysis-ik-7.9.0.zip /usr/share/elasticsearch/plugins/
cd /usr/share/elasticsearch/plugins/
mkdir -p ik
cp elasticsearch-analysis-ik-7.9.0.zip /usr/share/elasticsearch/plugins/ik
cd /usr/share/elasticsearch/plugins/ik
unzip elasticsearch-analysis-ik-7.9.0.zip
mv elasticsearch-analysis-ik-7.9.0.zip /opt

rm -f /usr/share/elasticsearch/plugins/elasticsearch-analysis-ik-7.9.0.zip

最终效果

# tree ik
ik
├── commons-codec-1.9.jar
├── commons-logging-1.2.jar
├── config
│   ├── extra_main.dic
│   ├── extra_single_word.dic
│   ├── extra_single_word_full.dic
│   ├── extra_single_word_low_freq.dic
│   ├── extra_stopword.dic
│   ├── IKAnalyzer.cfg.xml
│   ├── main.dic
│   ├── preposition.dic
│   ├── quantifier.dic
│   ├── stopword.dic
│   ├── suffix.dic
│   └── surname.dic
├── elasticsearch-analysis-ik-7.9.0.jar
├── httpclient-4.5.2.jar
├── httpcore-4.4.4.jar
├── plugin-descriptor.properties
└── plugin-security.policy

重启elasticsearch服务

systemctl restart elasticsearch

检查是否支持中文搜索

如果还是不支持请将elasticsearch服务关闭 等待服务自动拉起

systemctl stop elasticsearch

等待几分钟后服务会自动拉起

systemctl status elasticsearch

最终登陆web界面进行验证

image-20211022214454921

设置打开默认页面

image-20220124165322724

对接openldap认证

管理员登录打开控制面板

image-20220124171311157

选择ldap设置,启用

image-20220124170730821

image-20220124170747877

ONLYOCCICE常见故障汇总

Group monoserve服务频繁down

问题现象:

在使用的过程是发现monoserve服务总是频繁down,页面报502错误,但是重启以后服务就正常。

处理方式: 编写一个脚本检查服务down机后自动重启

# crontab -l

# start  service monoserve start
*/1 * * * *  /bin/sh /usr/local/src/monoserve_start.sh &>/dev/null

[root@localhost ~]# vim /usr/local/src/monoserve_start.sh 
#!/bin/bash

for n in `seq 1 60`
do  
    monoserve_count=$(systemctl status monoserve|grep Active|grep failed|wc -l)
    DATE_TIME=$(date +%F_%T)
    if [ $monoserve_count -ne 0 ];then
        echo $DATE_TIME mono base /usr/sbin/service monoserve restart >> /var/log/monoserve.log
        /usr/sbin/service monoserve restart
    else
        echo &>/dev/null
    fi
    monoserve_count02=$(systemctl status monoserve|grep Telemetry|wc -l)
        if [ $monoserve_count02 -ne 0 ];then
                echo $DATE_TIME mono Telemetry /usr/sbin/service monoserve restart >> /var/log/monoserve.log
                /usr/sbin/service monoserve restart
    fi
    sleep 1
done

chmod +x /usr/local/src/monoserve_start.sh 

ONLYOCCICE API使用技巧

获取onlyoffice文档表格的脚本

import requests

data = {"username": "", "password": ""}
header = {"Content-Type": "application/json"}
urls = "http://172.28.8.228/api/2.0/authentication.json"

# response = requests.Request(method="POST",url=url,headers=header,data=data)
res = requests.post(url=urls, data=data)
ret_dict = res.json()

new_header = {"Authorization": ret_dict["response"]["token"]}

res = requests.get(url="http://172.28.8.228/products/files/httphandlers/filehandler.ashx?action=download&fileid=484", headers=new_header)
with open("484.xlsx", "wb") as code:
    code.write(res.content)
    print(res)