如何部署onlyOffice documentServer 9.3.1?

Linux基础

1 基础知识

1.1 onlyOffice的简介

– onlyOffice Document Server是一个在线办公套件
– onlyOffice Document Server可用于文本、电子表格和演示文稿的查看和编辑
– onlyOffice Document Server与Office Open XML格式完全兼容
– onlyOffice Document Server支持“.docx”、“.xlsx”、“.pptx”且支持实时协作编辑

1.2 onlyOffice的版本

– Community Edition (onlyoffice-documentserver package)
– Enterprise Edition (onlyoffice-documentserver-ee package)
– Developer Edition (onlyoffice-documentserver-de package)
注:onlyOffice Document Server从6.0版本开始拆分为三个版本

1.3 onlyOffice的功能

– 文件编辑器
– 电子表格编辑器
– 适用于IOS的应用程序
– 协同编辑
– 象形文字支持
– 支持所有主流格式DOC,DOCX,TXT,ODT,RTF,ODP,EPUB,ODS,XLS,XLSX,CSV,PPTX,HTML

1.4 onlyOffice的安装要求

– 内存:4 GB以上
– CPU:双核2 GHz或更高
– 交换:至少2 GB
– 硬盘:至少2 GB的可用空间
支持的系统发行版,
– Red Hat、CentOS x64
– Debian,Ubuntu x64
– 或与其他内核版本3.8或更高版本兼容的发行版
– Docker:1.9.0或更高版本

2 最佳实践

2.1 部署前的准备

hostname = onlyOffice.cmdschool.org
ip address = 10.168.0.81
os = Oracle Linux 9.x x86_64
selinux = disable
epel = enable
open port= http https
具体请参阅以下文档完成,

如何完成CentOS 7.x的基本服务?

2.2 安装Nginx

2.2.1 安装软件包

yum install -y https://nginx.org/packages/rhel/9/x86_64/RPMS/nginx-1.30.4-1.el9.ngx.x86_64.rpm

2.2.2 修改nginx配置

cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.defautl
vim /etc/nginx/nginx.conf

配置修改如下,

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /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;
}

2.2.3 启动并设置服务自启动

systemctl start nginx.service
systemctl enable nginx.service

2.3 安装postgresql

2.3.1 安装软件包

yum install -y postgresql postgresql-server

2.3.2 初始化数据库

service postgresql initdb 

2.3.3 启动并配置服务自启动

systemctl start postgresql.service
systemctl enable postgresql.service

2.3.3 修改连接配置

cp /var/lib/pgsql/data/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf.default
vim /var/lib/pgsql/data/pg_hba.conf

修改如下配置,

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

编辑完成后,需要使用如下命令重启使配置生效,

systemctl restart postgresql.service

2.3.4 创建应用所需的库

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

另外,如果需要修改密码请使用如下命令,

sudo -u postgres psql -c "ALTER USER onlyoffice WITH password 'onlyofficepwd';"

2.4 安装RabbitMQ

2.4.1 配置安装源

vim /etc/yum.repos.d/rabbitmq.repo

加入如下配置,

# In /etc/yum.repos.d/rabbitmq.repo

##
## Zero dependency Erlang RPM
##

[modern-erlang]
name=modern-erlang-el9
# Use a set of mirrors maintained by the RabbitMQ core team.
# The mirrors have significantly higher bandwidth quotas.
baseurl=https://yum1.rabbitmq.com/erlang/el/9/$basearch
        https://yum2.rabbitmq.com/erlang/el/9/$basearch
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md

[modern-erlang-noarch]
name=modern-erlang-el9-noarch
# Use a set of mirrors maintained by the RabbitMQ core team.
# The mirrors have significantly higher bandwidth quotas.
baseurl=https://yum1.rabbitmq.com/erlang/el/9/noarch
        https://yum2.rabbitmq.com/erlang/el/9/noarch
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
       https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md


##
## RabbitMQ Server
##

[rabbitmq-el9]
name=rabbitmq-el9
baseurl=https://yum2.rabbitmq.com/rabbitmq/el/9/$basearch
        https://yum1.rabbitmq.com/rabbitmq/el/9/$basearch
repo_gpgcheck=1
enabled=1
# Cloudsmith's repository key and RabbitMQ package signing key
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
       https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md

[rabbitmq-el9-noarch]
name=rabbitmq-el9-noarch
baseurl=https://yum2.rabbitmq.com/rabbitmq/el/9/noarch
        https://yum1.rabbitmq.com/rabbitmq/el/9/noarch
repo_gpgcheck=1
enabled=1
# Cloudsmith's repository key and RabbitMQ package signing key
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
       https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md

2.4.2 安装软件包

yum install -y rabbitmq-server

如果遇到如下错误,

Error: Error downloading packages:
  Interrupted by a SIGINT signal

你可能需要执行如下命令,

rpm --import https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
rpm --import https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key

2.4.3 启动并配置服务自启动

systemctl start rabbitmq-server.service
systemctl enable rabbitmq-server.service

另外,如果启动服务遇到如下错误提示,

Nov 29 17:50:48 onlyoffice rabbitmq-server: ERROR: epmd error for host onlyoffice: address (cannot connect to host/port)

意思是不能连接主机“onlyoffice”,则需要通过配置DNS或者主机名称解析解决,具体可使用如下命令

vim /etc/hosts

加入如下配置即可,

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 onlyoffice
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 onlyoffice

2.4 安装ONLYOFFICE Docs

2.4.1 安装软件包

yum install -y https://download.onlyoffice.com/repo/centos/main/noarch/onlyoffice-repo.noarch.rpm
yum install -y onlyoffice-documentserver-9.3.1 xorg-x11-font-utils cabextract fontconfig msttcore-fonts-installer

2.4.2 配置应用

bash documentserver-configure.sh

向导如下,

Configuring database access... 
Host: localhost
Database name: onlyoffice
User: onlyoffice
Password: onlyofficepwd

Trying to establish PostgreSQL connection... OK
Installing PostgreSQL database... OK
Configuring AMQP access... 
Host: localhost
User: guest
Password: guest

Trying to establish AMQP connection... OK
Generating WOPI private key...Done
Generating WOPI public key...Done
Restarting services... OK
JWT is enabled by default. A random secret is generated automatically. Run the command '# documentserver-jwt-status.sh' to get information about JWT.

根据上面的提示,查询JWT的信息,你需要执行如下命令,

documentserver-jwt-status.sh

正常可见如下显示,

Your JWT settings:
JWT enabled -  true
JWT secret  -  ***************
JWT header  -  Authorization

如果你需要重新生成以上密码,请执行如下命令,

documentserver-configure.sh --wopienabled true

实际上以上密码在如下配置文件中定义,

cat /etc/onlyoffice/documentserver/local.json

如果你修改以上配置文件的密码,你需要执行如下命令才能使配置生效,

systemctl restart ds-docservice.service

2.4.3 配置SSL

cp /etc/nginx/conf.d/ds.conf /etc/nginx/conf.d/ds_443.conf
chmod u+w /etc/nginx/conf.d/ds_443.conf
vim /etc/nginx/conf.d/ds_443.conf

加入如下配置,

server {
  listen 0.0.0.0:443 ssl;
  listen [::]:443 ssl default_server;
  server_tokens off;
  ssl_certificate /etc/nginx/wildcard.cmdschool.org.crt;
  ssl_certificate_key /etc/nginx/cmdschool.org.key;
  ssl_session_timeout 5m;
  ssl_protocols TLSv1.2;
  ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
  ssl_prefer_server_ciphers on;

  set $secure_link_secret 8nCd3gOyRiJWWnS0hVpW;
  include /etc/nginx/includes/ds-*.conf;
}

根据以上配置文件,你需要“onlyoffice.cmdschool.org”的nginx证书,你可以通过如下链接申请(证书请自行存于“/etc/nginx/”目录),
https://cloud.tencent.com/product/ssl
配置完成后,需要执行以下命令重载使配置生效,

systemctl reload nginx.service

2.4.4 设置防火墙

firewall-cmd --permanent --add-service https --add-service http
firewall-cmd --reload
firewall-cmd --list-all

2.5 测试服务

2.5.1 测试服务欢迎页面

https://onlyoffice.cmdschool.org/welcome/

根据页面提示,你需要执行如下命令启用范例服务,

systemctl start ds-example
systemctl enable ds-example

另外,临时性的名称解析你可以按下键盘的【Win+R】键,然后输入如下命令,

notepad \Windows\System32\drivers\etc\hosts

然后加入如下配置,

10.168.0.81 onlyoffice.cmdschool.org

2.5.2 测试服务api

curl -k -s --connect-timeout 10 --max-time 30 https://onlyoffice.cmdschool.org/healthcheck

正常你可以见到如下返回值,

true

2.5.3 日志排错方法

tail -f /var/log/onlyoffice/documentserver/docservice/err.log
tail -f /var/log/onlyoffice/documentserver/docservice/out.log

2.5.4 测试文件预览

https://onlyoffice.cmdschool.org/example/

如上图所示
单击【upload】->【edit】即可进入文件的编辑测试模式

参阅文档
===============

安装onlyoffice社区版本
————————-
https://helpcenter.onlyoffice.com/docs/installation/docs-community-install-centos.aspx

配置SSL
————–
https://helpcenter.onlyoffice.com/installation/docs-community-https-linux.aspx

官方主页
————————-
https://www.onlyoffice.com/zh/

官方github
————————
https://github.com/ONLYOFFICE/DocumentServer/releases

错误处理方法
———————-
https://community.onlyoffice.com/t/onlyoffice-error-while-downloading-the-document-file-to-be-converted/9239/15

没有评论

发表回复

Linux基础
如何部署Oracle Linux 9.x RabbitMQ?

1 基础知识 1.1 RabbitMQ的简介 – RabbitMQ拥有成千上万的用户,是 …

Linux基础
如何部署onlyOffice documentServer 9.4.0?

1 基础知识 1.1 onlyOffice的简介 – onlyOffice Docume …

Linux基础
如何设置存储的多路径?

1 前言 一个问题,一篇文章,一出故事。 笔者今天需要给服务器附加一台iSCSI存储,但是存储是一个 …