CentOS7.9 离线安装 RabbitMQ 完整部署指南

一、安装包说明

你准备的离线包:

  1. OTP-25.3.2.tar.gz:Erlang 源码包(RabbitMQ 依赖 Erlang 环境)
  2. rabbitmq-server-generic-unix-3.12.14.tar.xz:Linux 通用版 RabbitMQ 服务端压缩包
  3. gcc-dep 文件夹下所有 .rpm:编译 Erlang 需要的 GCC、openssl、make 等依赖离线 RPM 包

安装顺序:先装系统依赖RPM → 源码编译安装Erlang → 解压部署RabbitMQ

二、离线包传输到目标离线服务器

  1. 在目标 CentOS7.9 服务器创建安装目录
bash 复制代码
mkdir -p /usr/local/rabbitmq
  1. 将下面3部分文件上传到服务器 /usr/local/rabbitmq 目录
  • gcc-dep 整个文件夹
  • OTP-25.3.2.tar.gz
  • rabbitmq-server-generic-unix-3.12.14.tar.xz

三、步骤1:离线安装所有编译依赖(gcc-dep下全部RPM)

1. 进入依赖目录

bash 复制代码
cd /usr/local/rabbitmq/gcc-dep

2. 离线批量安装所有rpm包(解决依赖顺序问题)

bash 复制代码
rpm -ivh *.rpm --nodeps --force

3. 验证核心依赖是否安装成功

bash 复制代码
gcc -v
make -v
openssl version

输出版本信息即代表依赖安装正常。

四、步骤2:源码编译安装 Erlang OTP 25.3.2

1. 解压 Erlang 源码包

bash 复制代码
cd /usr/local/rabbitmq
tar -zxvf OTP-25.3.2.tar.gz
cd OTP-25.3.2

2. 配置编译参数(CentOS7 标准配置)

bash 复制代码
./configure --prefix=/usr/local/erlang25 --with-ssl --enable-shared --enable-threads --enable-smp-support --enable-kernel-poll

执行完没有 error 报错即可,必须确保 openssl 相关检测通过

3. 编译+安装(耗时5~15分钟,服务器配置越低越慢)

bash 复制代码
make && make install

4. 配置Erlang系统环境变量

bash 复制代码
vi /etc/profile

在文件最末尾添加:

bash 复制代码
# Erlang Environment
export PATH=$PATH:/usr/local/erlang25/bin

5. 生效环境变量并验证

bash 复制代码
source /etc/profile
erl -version

输出版本 25.3.2 代表 Erlang 安装成功。

五、步骤3:离线部署 RabbitMQ 3.12.14

1. 解压 RabbitMQ 压缩包

bash 复制代码
cd /usr/local/rabbitmq
tar -xf rabbitmq-server-generic-unix-3.12.14.tar.xz
# 重命名方便管理
mv rabbitmq_server-3.12.14 /usr/local/rabbitmq/rabbitmq312

2. 配置 RabbitMQ 环境变量

bash 复制代码
vi /etc/profile

末尾追加:

bash 复制代码
# RabbitMQ Environment
export PATH=$PATH:/usr/local/rabbitmq/rabbitmq312/sbin

生效配置:

bash 复制代码
source /etc/profile

3. 安装管理后台插件(网页控制台)

bash 复制代码
rabbitmq-plugins enable rabbitmq_management

六、RabbitMQ 启停、开机自启、管理员配置

1. 常用启停命令

bash 复制代码
# 后台启动
rabbitmq-server -detached
# 查看状态
rabbitmqctl status
# 停止服务
rabbitmqctl stop
# 查看启动成功的方式
ps -ef | grep beam.smp
netstat -lntp | grep 5672
ss -lntp | grep 15672

2. 创建管理员账号(禁止用默认guest,仅本地可登录)

bash 复制代码
# 1. 创建管理员用户
rabbitmqctl add_user admin Admin@123456
# 2. 设置超级管理员权限
rabbitmqctl set_user_tags admin administrator
# 3. 赋予虚拟主机全部权限
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

3. 防火墙放行15672(管理页面)、5672(消息端口)

bash 复制代码
# 放行端口
firewall-cmd --add-port=15672/tcp --permanent
firewall-cmd --add-port=5672/tcp --permanent
# 重载防火墙
firewall-cmd --reload

4. 设置开机自启(推荐)

  1. 写入启动文件
bash 复制代码
echo "/usr/local/rabbitmq/rabbitmq312/sbin/rabbitmq-server -detached" >> /etc/rc.local
chmod +x /etc/rc.local

七、访问管理后台

浏览器访问:

复制代码
http://服务器IP:15672

用户名:admin

密码:Admin@123456

八、常见离线踩坑解决方案

  1. rpm安装提示依赖冲突
    命令加上 --nodeps --force 强制安装即可,你已经提前收集全套依赖不会缺失。
  2. Erlang configure报错缺少ssl
    检查openssl-devel开头的两个rpm是否已经安装。
  3. guest账号外网无法登录
    必须新建管理员账号admin,默认guest只允许本机127.0.0.1访问。
  4. 15672端口访问不通
    确认防火墙放行,云服务器还要去安全组开放端口。