如何在Linux中安装RabbitMQ Linux部署消息队列的方法

星降

星降

2026-05-22

254人浏览

原创

rabbitmq 启动失败或 rabbitmqctl status 报“node is not running”是因为 erlang 版本不匹配:rabbitmq 3.8.x 严格要求 erlang/otp 23+(如 23.2.7),而 centos 7 默认 epel 源提供的是过旧版本(如 20.x/21.x),导致启动时静默退出、无进程,日志显示 init terminating in do_boot ({cannot get bootfile})。

如何在linux中安装rabbitmq linux部署消息队列的方法

RabbitMQ 在 Linux 上不能直接装,必须先配好 Erlang 环境,且版本必须匹配——装错版本会导致 rabbitmq-server 启动失败或 rabbitmqctl status 报 “Node is not running”。

为什么 erlang 版本不匹配会导致 rabbitmqctl 失败

RabbitMQ 从 3.8.x 开始严格依赖 Erlang/OTP 23+;CentOS 7 默认仓库的 erlang 包往往太旧(如 20.x 或 21.x),运行 rabbitmq-server 时会静默退出,systemctl status rabbitmq-server 显示 active (exited),但实际没进程。查日志会看到类似 init terminating in do_boot ({cannot get bootfile}) 的错误。

  • 查 RabbitMQ 官方兼容矩阵:对应 rabbitmq-server-3.8.14,必须用 erlang-23.2.7 或更高(非 23.0.x)
  • 不要用 yum install erlang 直接装——它拉的是 EPEL 里的老包
  • 推荐从 RabbitMQ 官方 RPM 仓库 下载指定版本,例如:wget https://www.php.cn/link/68bf916468ff6f89dc59f62136059249/packages/el/7/erlang-23.2.7-2.el7.x86_64.rpm

socat 是硬性依赖,缺了 rabbitmq-server 根本起不来

从 RabbitMQ 3.7.0 起,rabbitmq-server 启动脚本内部调用 socat 做端口检测和健康检查。CentOS 7 默认不带 socat,安装完 RabbitMQ 后执行 systemctl start rabbitmq-server 会卡住或报 command not found: socat,日志在 /var/log/rabbitmq/startup_log 里可确认。

宝塔Linux面板11.8.1
宝塔Linux面板11.8.1

宝塔Linux面板11.8.1为官网当前正式版,新增AI建站能力并经过宝塔网站工程师深度调教,开放自定义AI功能API,同时对WAF进行界面重构和深度优化,提升拦截能力与运维效率。

下载
  • 必须提前装:yum install -y socat
  • 验证是否就位:which socat 应返回 /usr/bin/socat
  • 别跳过这步——哪怕你用 rpm -ivh 强制装了 RabbitMQ,没 socat 一样无法启动

启用 web 管理界面后无法远程登录 guest 账户

RabbitMQ 3.3.0+ 默认禁用 guest 用户的远程访问,只允许 localhost 登录 http://localhost:15672。如果你从浏览器用服务器 IP 访问 http://192.168.x.x:15672,输入 guest/guest 会提示 “Login failed”。这不是密码错,是策略限制。

  • 临时解决(仅测试):rabbitmqctl add_user admin password && rabbitmqctl set_user_tags admin administrator && rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
  • 永久方案(生产环境):编辑 /etc/rabbitmq/rabbitmq.conf,添加两行:
    loopback_users.guest = false
    default_user = admin(再配对应密码)
  • 注意:改完配置要 systemctl restart rabbitmq-server,且确保防火墙放行 15672 端口(firewall-cmd --permanent --add-port=15672/tcp

.erlang.cookie 权限问题让节点无法启动

多节点集群或单机首次启动时,若 /var/lib/rabbitmq/.erlang.cookie 文件权限不是 600,RabbitMQ 会拒绝启动,并在 journalctl -u rabbitmq-server 中报 Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only

  • 修复命令:chmod 600 /var/lib/rabbitmq/.erlang.cookie && chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
  • 这个文件由 rabbitmq-server RPM 包自动创建,但有时属主被设成 root,必须手动修正
  • 如果已启动失败过,先 rabbitmqctl stop,再改权限,再 systemctl start rabbitmq-server

最易被忽略的是 Erlang 和 RabbitMQ 的版本耦合关系——不是“能装上就行”,而是必须查清官网兼容表;其次,socat.erlang.cookie 权限属于那种不报明显错误、但服务就是不动的“静默故障”,得看日志才定位得到。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux rabbitmq

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
rabbitmq和kafka有什么区别
rabbitmq和kafka有什么区别

rabbitmq和kafka的区别:1、语言与平台;2、消息传递模型;3、可靠性;4、性能与吞吐量;5、集群与负载均衡;6、消费模型;7、用途与场景;8、社区与生态系统;9、监控与管理;10、其他特性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

322

5

Java 消息队列与异步架构实战
Java 消息队列与异步架构实战

本专题系统讲解 Java 在消息队列与异步系统架构中的核心应用,涵盖消息队列基本原理、Kafka 与 RabbitMQ 的使用场景对比、生产者与消费者模型、消息可靠性与顺序性保障、重复消费与幂等处理,以及在高并发系统中的异步解耦设计。通过实战案例,帮助学习者掌握 使用 Java 构建高吞吐、高可靠异步消息系统的完整思路。

2026.01.28

183

20

RabbitMQ使用教程合集
RabbitMQ使用教程合集

RabbitMQ使用教程合集整理 RabbitMQ 基础教程、消息队列开发案例、生产者消费者、交换机与队列实战内容。

2026.05.20

80

15

RabbitMQ集群部署指南
RabbitMQ集群部署指南

RabbitMQ集群部署指南聚合 RabbitMQ 集群部署、高可用架构、镜像队列、故障恢复、监控与运维优化内容。

2026.05.20

36

12

RabbitMQ Docker实战指南
RabbitMQ Docker实战指南

RabbitMQ Docker实战指南提供 RabbitMQ Docker 镜像部署、Docker Compose、Kubernetes Operator 与云原生实践教程。

2026.05.20

102

10

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

2669

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

1648

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

1293

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

2632

7

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpMyAdmin 安装文档
phpMyAdmin 安装文档

共0课时 | 0人学习

Apifox下载与安装手册
Apifox下载与安装手册

共0课时 | 0人学习

安装 Xdebug 并配置 phpstorm
安装 Xdebug 并配置 phpstorm

共1课时 | 127人学习