如何在CentOS 7上安装ONLYOFFICE文档服务器
ONLYOFFICE Community Server 是一个多功能办公套件,具有基于 Web 的界面,可以安装在任何 Linux 服务器上。它是一个开源办公和生产力套件,与 CRM 系统、文档服务器、项目管理工具和电子邮件聚合器集成。
ONLYOFFICE文档服务器是一个开源在线办公套件,类似于微软提供的“Office Online”。它是用于查看和编辑文本、电子表格和演示文稿的在线办公套件。 ONLYOFFICE 文档服务器与 .docx、.xlsx 和 .pptx 等 Open XML 格式完全兼容。借助 Document Server,您可以为您的团队启用实时协作编辑。
ONLYOFFICE 文档服务器可以通过两种方式安装。我们可以通过Docker安装或者在Linux服务器上手动安装。在本教程中,我们将指导您在 Linux CentOS 7 服务器上手动安装和配置“ONLYOFFICE Document Server”。我们将在 Postgres 数据库下安装 Document Server,并使用 Nginx 作为 Web 服务器。
先决条件
- 操作系统 - Ubuntu CentOS 7 64 位服务器,内核为 3.13 或更高版本
- RAM - 2GB 或更多 - 我们将使用 4GB
- HDD - 至少 2 GB 可用空间
我们将要做什么
- 安装 Epel Repository 并准备操作系统
- 安装和配置 PostgreSQL
- 为ONLYOFFICE文档服务器创建数据库
- 安装Nodejs
- 安装Redis服务器
- 安装和配置 RabbitMQ 服务器
- 安装和配置ONLYOFFICE文档服务器
- 生成新的 SSL Letsencrypt 证书
- 为 ONLYOFFICE 文档服务器启用 HTTPS
- 配置Firewalld
- 测试
第 1 步 - 安装 Epel Repository 并准备操作系统
在此步骤中,我们将在系统中安装第三方 CentOS 存储库 Epel (Extra Packages for Enterprise Linux) 存储库。使用下面的 yum 命令安装 Epel 存储库。
yum -y 安装 epel-release
对于ONLYOFFICE文档服务器安装,我们需要通过编辑配置文件“/etc/sysconfig/selinux”来禁用SELinux(安全增强型Linux)。
通过使用 vim 编辑配置文件来禁用 SELinux。
vim /etc/sysconfig/selinux
将“selinux”值更改为“禁用”。
selinux=禁用
保存并退出,然后重新启动服务器。
如果一切完成,请再次登录服务器并使用“sestatus”命令检查 SELinux 状态。
状态
确保结果为“禁用”。
第 2 步 - 安装和配置 PostgreSQL
文档服务器可以安装MySQL和PostgreSQL数据库。在本教程中,我们将使用 PostgreSQL 而不是 MySQL。使用 yum 命令从存储库安装 PostgreSQL 数据库。
yum -y 安装 postgresql.x86_64 postgresql-server.x86_64 postgresql-contrib.x86_64
安装完成后,我们需要通过运行下面的 postgres setup 来首次初始化数据库。
postgresql-设置 initdb
现在启动 PostgreSQL 并使其在系统启动时自动启动。
systemctl启动postgresql
systemctl 启用 postgresql
PostgreSQL 数据库将在本地主机 IP 地址上运行,默认端口为 5432 - 使用 netstat 命令检查它。
netstat-plntu
接下来,我们需要使用 vim 编辑 Postgres 身份验证文件 pg_hba.conf。
vim /var/lib/pgsql/data/pg_hba.conf
将本地主机的身份验证方法从“ident”更改为“trust”,如下所示。这是为了允许来自本地服务器的身份验证。
主机 所有 所有 127.0.0.1/32 信任
主机 所有 所有 ::1/128 信任
保存并退出,然后重新启动 PostgreSQL 服务。
systemctl 重新启动 postgresql
PostgreSQL安装和配置已完成。
步骤 3 - 为 ONLYOFFICE 文档服务器创建数据库
PostgreSQL 已安装到系统中,我们将为 ONLYOFFICE Document Server 安装创建一个新数据库和一个新用户。
登录“postgres”用户并访问postgres命令行工具“psql”。
su-postgres
sql
使用您自己的密码更改 postgres 密码,不要使用默认的简单密码。
\密码postgres
输入新密码:
接下来,创建一个名为“onlyoffice”的新数据库,用户名为“onlyoffice”,密码为“'onlyoffice123@'”。
通过运行下面的 postgres 查询来创建所有这些。
创建数据库onlyoffice;
创建用户 onlyoffice,密码为“onlyoffice123@”;
将数据库onlyoffice的所有权限授予onlyoffice;
用于文档服务器安装的新数据库和用户已创建。
第 4 步 - 安装 Nodejs
ONLYOFFICE 文档服务器需要 Nodejs 包 v6.9.1+。在本教程中,我们将安装并使用 Nodejs v6.10,它可以从 nodesource.com 存储库安装。
使用curl 添加Nodejs 节点源存储库。
卷曲 -sL https://rpm.nodesource.com/setup_6.x |须藤bash -
Nodesource 存储库已添加,现在使用下面的 yum 命令安装 Nodejs。
yum安装-ynodejs
如果安装已完成,请使用“node -v”命令检查节点版本。
节点-v
Nodejs 6.10 安装到系统中以进行文档服务器安装。
第5步-安装Redis服务器
Redis 是一个持久化在磁盘上的内存数据库。使用键值数据存储进行缓存,并且它是开源的。文档服务器需要安装Redis来进行内存缓存。使用下面的 yum 命令从存储库安装 Redis。
yum -y 安装redis
安装完成后,启动它并使其开机自动运行。
systemctl启动redis
systemctl启用redis
默认情况下,redis 将在端口 6379 的 localhost IP 地址下运行。使用 netstat 命令检查端口状态,并确保状态状态为“LISTEN”。
netstat-plntu
现在服务器上已经安装了Redis服务器。
第 6 步 - 安装和配置 RabbitMQ 服务器
RabbitMQ 是一个实现 AMQP(高级消息队列协议)的开源消息代理软件。它是用 Erlang 语言编写的,可以安装用于集群和故障转移。
文档服务器需要RabbitMQ,我们需要使用yum命令将其安装到系统中。
yum -y 安装rabbitmq-server
安装完成后,通过在rabbitmq目录中创建新的配置文件“rabbitmq-env.conf”,将RabbitMQ服务器配置为仅在本地主机上运行。
vim /etc/rabbitmq/rabbitmq-env.conf
粘贴下面的配置。
export RABBITMQ_NODENAME=rabbit@localhost
export RABBITMQ_NODE_IP_ADDRESS=127.0.0.1
export ERL_EPMD_ADDRESS=127.0.0.1
保存并退出。
启动 RabbitMQ Server 并使其在每次系统启动时自动启动。
systemctl 启动rabbitmq-server
systemctl 启用rabbitmq-server
验证 RabbitMQ 安装和配置,使用 netstat 命令检查,您将看到 RabbitMQ 服务器在 localhost IP 地址和端口 5672 下运行。
netstat-plntu
接下来,我们需要为ONLYOFFICE文档服务器配置创建一个新的rabbitmq用户。使用下面的rabbitmqctl命令创建一个新用户onlyoffice,密码onlyoffice123。
rabbitmqctl add_user onlyoffice onlyoffice123
rabbitmqctl set_user_tags 仅限办公室管理员
rabbitmqctl set_permissions -p/onlyoffice ".*" ".*" ".*"
现在检查新用户并确保列表中只有唯一的office 用户可用。
兔子MQCTL列表用户
RabbitMQ Server安装和配置已完成。并且为文档服务器创建了新的rabbitmq 用户。
第7步 - 安装和配置ONLYOFFICE文档服务器
在安装文档服务器之前,我们需要安装 Microsoft 字体安装程序并添加新的最新 Nginx 存储库。
使用下面的 yum 命令安装“Microsoft 字体安装程序”。
yum -y 安装 https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm
通过创建新文件 nginx.repo 将新的最新 Nginx 存储库添加到“yum.repos.d”目录。
vim /etc/yum.repos.d/nginx.repo
粘贴下面的配置。
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
保存并退出。
接下来,添加 ONLYOFFICE Document Server GPG 密钥。
rpm --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x8320CA65CB2DE8E5"
并添加新的 onlyoffice 存储库文件“onlyoffice.repo”文件。
vim /etc/yum.repos.d/onlyoffice.repo
将 ONLYOFFICE 文档服务器存储库粘贴到下面。
[onlyoffice]
name=onlyoffice repo
baseurl=http://download.onlyoffice.com/repo/centos/main/noarch/
gpgcheck=1
enabled=1
保存并退出,然后安装文档服务器。
yum -y 安装 onlyoffice-documentserver
该命令将安装带有 Nginx Web 服务器和流程控制管理程序的文档服务器。
启动nginx和supervisord服务,然后使其开机自动启动。
systemctl启动nginx
systemctl启动supervisord
systemctl 启用 nginx
systemctl 启用supervisord
文档服务器已安装,现在通过执行以下命令对其进行配置。
文档服务器配置.sh
系统将询问您有关 PostgreSQL 数据库的问题。
- 主机:本地主机
- 数据库名称:onlyoffice
- 用户: onlyoffice
- 密码:onlyoffice123@
系统会询问您有关 redis 配置的问题。并且在本教程中,redis 是在服务器 IP 下运行的,而不是在 sock 文件下运行。输入 localhost 并按“Enter”。
最后,系统将询问您有关文档服务器的 RabbitMQ 服务器凭证。
- 主机:本地主机:5672
- 用户: onlyoffice
- 密码:onlyoffice123
ONLYOFFICE文档服务器安装和配置已完成。
第 8 步 - 生成新的 SSL Letsencrypt 证书
ONLYOFFICE文档服务器将在HTTPS安全连接下运行,我们需要生成新的SSL证书文件。为此,我们将使用 Letsencrypt 的免费 SSL 证书。
在生成证书文件之前,我们需要停止nginx和firewalld服务。
systemctl 停止 nginx
systemctl 停止防火墙
现在从存储库安装由 EFF(电子前沿基金会)创建的“certbot”Letsencrypt 客户端。
yum -y 安装 certbot
安装完成后,使用下面的 certbot 命令为文档服务器域名“onlyoffice.hakase-labs.me”生成新的证书文件。
certbot certonly --standalone -d onlyoffic.hakase-labs.me
系统会询问您的电子邮件地址,输入您的电子邮件地址“[email ”,然后输入“A”接受服务条款 (TOS),对于电子邮件共享,输入“N”表示否。
接下来,输入域名“onlyoffice.hakase-labs.me”并等待 certbot 为您生成证书文件。如果没有错误,您将看到如下结果。
新的证书文件现在位于'/etc/letsencrypt/live/'目录中。
接下来,创建新的 SSL 目录并将生成的证书文件复制到 SSL 目录。
mkdir -p /etc/nginx/ssl
cd /etc/nginx/ssl/
将“fullchain.pem”和“privkey.pem”证书文件复制到 SSL 目录。
cp /etc/letsencrypt/live/onlyoffice.irsyadf.me/fullchain.pem 。
cp /etc/letsencrypt/live/onlyoffice.irsyadf.me/privkey.pem 。
接下来,使用下面的 OpenSSL 命令生成 DHPARAM 文件以提高安全性。
openssl dhparam -out dhparam.pem 2048
一切完成后,将所有证书文件的权限更改为600。
修改 600 *
生成 SSL 证书文件和 DHPARAM 文件。
步骤 9 - 为 ONLYOFFICE 文档服务器启用 HTTPS
文档服务器的虚拟主机配置位于“conf.d”目录下,并且在安装过程中自动创建。
请转到 nginx 'conf.d' 目录。
cd /etc/nginx/conf.d/
备份非 SSL 虚拟主机配置并为文档服务器“onlyoffice-documentserver-ssl.conf”复制新的 SSL 模板虚拟主机。
mv onlyoffice-documentserver.conf onlyoffice-documentserver.conf.backup
cp onlyoffice-documentserver-ssl.conf.template onlyoffice-documentserver-ssl.conf
使用 vim 编辑虚拟主机 SSL 文件。
vim onlyoffice-documentserver-ssl.conf
将 server_name 值更改为您的域行 7。
server_name onlyoffice.irsyadf.me;
在“29”行下方添加新配置,将 server_name 的值指定为您的域名。
server_name onlyoffice.irsyadf.me;
将 SSL 文件的路径更改为证书文件目录第 37-38 行,并禁用客户端 SSL 证书文件,如下所示。
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
#ssl_verify_client {{SSL_VERIFY_CLIENT}};
#ssl_client_certificate {{CA_CERTIFICATES_PATH}};
对于 HSTS 配置第 44 行,为 max-age 指定一个新值。
add_header Strict-Transport-Security max-age=31536000;
对于 DHPARAM 文件,更改为路径目录第 68 行。
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
保存并退出。
然后测试配置文件并确保没有错误,然后重新启动nginx服务。
nginx-t
systemctl 重新启动 nginx
ONLYOFFICE 文档服务器的 HTTPS 已启用。
步骤 10 - 配置 Firewalld
如果您的服务器上没有 Firewalld,请使用以下命令安装它。
yum -y 安装防火墙
安装完成后启动并添加开机自动运行。
systemctl 启动防火墙
systemctl 启用防火墙
接下来,使用“firewall-cmd”命令将新的 HTTP 和 HTTPS 服务添加到 firewalld 配置中。
防火墙cmd --permanent --add-service=http
防火墙cmd --permanent --add-service=https
重新加载firewalld配置,检查所有可用服务,并确保HTTP和HTTPS在列表中。
防火墙-cmd --reload
防火墙-cmd --list-all
文档服务器的 Firewalld 配置已完成。
第 11 步 - 测试
打开您的网络浏览器,访问文档服务器域名“onlyoffice.hakase-labs.me”,您将被重定向到 HTTPS 安全连接。并确保结果如下图所示。
我们已经使用 CentOS 7 系统成功安装了 ONLYOFFICE 文档服务器,其中 PostgreSQL 作为数据库,Nginx 作为 Web 服务器。
参考
- https://helpcenter.onlyoffice.com/server/linux/document/linux-installation-centos.aspx