别再为OnlyOffice离线安装头疼了!这份CentOS 7保姆级配置清单请收好
别再为OnlyOffice离线安装头疼了!这份CentOS 7保姆级配置清单请收好
在中小企业的文档协作场景中,OnlyOffice凭借其高度兼容Office格式和开源特性,正成为越来越多团队的选择。但当你需要在没有外网连接的CentOS 7环境中部署时,那些隐藏的依赖陷阱就像一个个定时炸弹——特定版本的PostgreSQL、老旧的RabbitMQ、复杂的字体配置...本文将呈现一份经过实战检验的完整清单,从组件版本精确匹配到服务配置细节,让你避开我踩过的所有坑。
1. 环境准备与离线包管理
离线部署最大的挑战在于所有依赖必须一次性准备齐全。建议先在一台可联网的CentOS 7机器上通过yum downloadonly命令获取全套RPM包:
mkdir -p /opt/onlyoffice-rpms yum install -y yum-utils repotrack -a x86_64 --downloaddir=/opt/onlyoffice-rpms \ nodejs-9.11.2 \ nginx-1.24.0 \ postgresql-server-9.2.24 \ rabbitmq-server-3.3.5 \ redis-3.2.12 \ cabextract \ msttcore-fonts-installer关键组件版本对照表:
| 组件 | 必须版本 | 备注 |
|---|---|---|
| Node.js | 9.11.2 | 新版不兼容 |
| PostgreSQL | 9.2.24 | 仅此版本支持 |
| RabbitMQ | 3.3.5 | 需配套Erlang 18.x |
| Redis | 3.2.12 | 新版配置不同 |
| Nginx | 1.24.0 | 需定制worker配置 |
注意:字体包必须包含
msttcore-fonts和liberation-fonts,否则文档渲染会出现乱码
2. 核心服务配置详解
2.1 PostgreSQL深度定制
初始化数据库时需特别指定locale,避免排序规则冲突:
sudo /usr/bin/postgresql-setup --initdb --locale=C修改/var/lib/pgsql/data/pg_hba.conf:
# 将ident改为md5 host all all 127.0.0.1/32 md5创建专用数据库时注意字符集:
CREATE DATABASE onlyoffice WITH ENCODING='UTF8' LC_COLLATE='C' LC_CTYPE='C' TEMPLATE=template0;2.2 RabbitMQ调优
修改/etc/rabbitmq/rabbitmq.config增加内存控制:
[ {rabbit, [ {vm_memory_high_watermark, 0.6}, {disk_free_limit, "500MB"} ]} ].2.3 Nginx性能优化
在/etc/nginx/nginx.conf中关键参数:
worker_processes auto; # 根据CPU核心数自动设置 worker_rlimit_nofile 65535; events { worker_connections 4096; use epoll; } http { client_max_body_size 100M; keepalive_timeout 65; gzip on; }3. 依赖组件安装避坑指南
字体安装需要特殊顺序:
- 先安装
cabextract和xorg-x11-font-utils - 再安装
msttcore-fonts-installer - 最后执行:
fc-cache -fv
Redis内存配置建议:
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf sysctl -p重要:所有服务安装完成后,务必按顺序启动:
- PostgreSQL
- RabbitMQ
- Redis
- OnlyOffice
- Nginx
4. 安全与权限配置实战
4.1 防火墙精简配置
如果使用firewalld:
firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-port=8000/tcp # 内部通信端口 firewall-cmd --reload4.2 JWT验证开关
修改/etc/onlyoffice/documentserver/local.json:
{ "services": { "CoAuthoring": { "token": { "enable": { "request": { "inbox": false, "outbox": false } } } } } }4.3 服务账户隔离
为每个服务创建独立系统用户:
useradd -r -s /sbin/nologin onlyoffice-pg useradd -r -s /sbin/nologin onlyoffice-rmq chown -R onlyoffice-pg:onlyoffice-pg /var/lib/pgsql5. 部署后检查清单
通过以下命令验证各服务状态:
# 检查服务状态 systemctl status postgresql rabbitmq-server redis nginx # 验证端口监听 ss -tulnp | grep -E '5432|5672|6379|80' # 测试数据库连接 sudo -u postgres psql -c "\l" | grep onlyoffice # 验证RabbitMQ节点 rabbitmqctl status | grep -A 3 'running_applications' # 检查文档服务 curl -I http://localhost/welcome常见故障排查命令:
# 查看文档服务日志 journalctl -u ds-* --no-pager -n 50 # 检查字体安装 fc-list | grep -i 'Arial\|Times' # 测试PDF导出 curl -X POST http://localhost/convert -d @test.docx -o output.pdf这套配置在多个生产环境验证通过,关键是要严格遵循组件版本要求和启动顺序。当所有服务显示正常后,建议制作系统快照以便快速恢复。
