Linux系统安装RabbitMQ教程 Erlang环境配置步骤

云浩同学_5595

云浩同学_5595

2026-04-24

652人浏览

原创

安装RabbitMQ前必须先安装兼容版本的Erlang,如3.12.x需Erlang 25.3–26.x;禁用系统默认Erlang源,改用kerl或官方二进制安装;通过官方APT源安装RabbitMQ并启用Management插件后,需配置监听地址、防火墙及用户权限。

linux系统安装rabbitmq教程 erlang环境配置步骤

安装RabbitMQ前必须先装对版本的Erlang

RabbitMQ不是随便装个Erlang就能跑的——它对Erlang/OTP版本有严格限制。比如RabbitMQ 3.12.x要求Erlang 25.3–26.x,而系统默认源(如Ubuntu 22.04的apt)只带Erlang 24.x,直接apt install erlang必然导致unable to start node或missing crypto application错误。

实操建议:

  • 查清目标RabbitMQ版本的Erlang兼容范围:访问 rabbitmq.com/which-erlang.html,按RabbitMQ小版本查对应Erlang区间
  • 别用系统包管理器装Erlang,改用kerl(推荐)或官方二进制包。例如用kerl编译安装Erlang 25.3:
    curl -O https://raw.githubusercontent.com/ninenines/kerl/master/kerl<br>chmod a+x kerl<br>./kerl build 25.3 25.3<br>./kerl install 25.3 $HOME/erlang/25.3<br>echo 'export PATH=$HOME/erlang/25.3/bin:$PATH' >> ~/.bashrc
  • 装完后运行erl -version确认输出是Erlang/OTP 25,再检查erl -eval 'io:format("~p~n", [crypto:version()])' -s init stop -noshell是否返回版本号,避免crypto模块缺失

用官方APT仓库安装RabbitMQ,别碰deb包手动dpkg

手动下载.deb包再dpkg -i容易漏依赖,尤其erlang-crypto、erlang-mnesia等子包,报unmet dependencies后apt --fix-broken install可能降级Erlang,前功尽弃。

实操建议:

  • 导入RabbitMQ官方GPG密钥和APT源:
    curl -fsSL https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc | sudo gpg --dearmor -o /usr/share/keyrings/rabbitmq-release-keyring.gpg<br>echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/rabbitmq-release-keyring.gpg] https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/deb/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/rabbitmq.list
  • 执行sudo apt update后,用apt list -a rabbitmq-server确认列出的是匹配你Erlang版本的包(例如rabbitmq-server/jammy,now 3.12.17-1 all)
  • 直接sudo apt install rabbitmq-server,它会自动拉取兼容的依赖,不会动你手动装的Erlang

启动失败时优先检查SELinux/AppArmor和端口占用

即使Erlang和RabbitMQ都装对了,sudo systemctl start rabbitmq-server仍可能静默失败——日志里出现failed to create cookie file或epmd error for host,大概率是安全模块拦截或epmd端口(4369)被占。

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载

实操建议:

  • 临时禁用AppArmor(Ubuntu/Debian):sudo systemctl stop apparmor && sudo systemctl disable apparmor;如需保留,给/etc/apparmor.d/usr.sbin.rabbitmq-server加/var/lib/rabbitmq/.erlang.cookie rw,规则
  • 检查epmd是否运行:epmd -names,若报epmd: failed to open connection,说明进程没起来,尝试sudo -u rabbitmq epmd -daemon
  • 确认5672(AMQP)、15672(Management Plugin)端口未被占用:sudo ss -tlnp | grep -E ':(5672|15672)',冲突时在/etc/rabbitmq/rabbitmq.conf里改listeners.tcp.default = 5673

启用Management Plugin后无法访问Web界面

执行rabbitmq-plugins enable rabbitmq_management后,浏览器打不开http://localhost:15672,常见原因是防火墙拦截、绑定地址限制或guest用户权限变更。

实操建议:

  • 检查RabbitMQ是否监听0.0.0.0:15672而非127.0.0.1:15672:sudo rabbitmq-diagnostics listeners,若只显示127.0.0.1,在/etc/rabbitmq/rabbitmq.conf中加
    management.tcp.port = 15672<br>management.tcp.ip = 0.0.0.0
  • 开放防火墙:sudo ufw allow 15672(Ubuntu)或sudo firewall-cmd --add-port=15672/tcp --permanent && sudo firewall-cmd --reload(CentOS/RHEL)
  • 默认guest用户仅允许本地登录,远程访问需创建新用户:
    sudo rabbitmqctl add_user admin pass123<br>sudo rabbitmqctl set_user_tags admin administrator<br>sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

RabbitMQ的坑不在安装命令本身,而在Erlang版本锁死、安全模块默认策略、以及插件启用后的网络暴露逻辑——这些地方配置项分散、报错不直观,修一个可能触发另一个。动手前务必对照官网的版本矩阵表,别信“一键脚本”。

相关专题

更多
erlang语言是什么
erlang语言是什么

erlang是一种并发、容错、分布式和动态类型的编程语言。它专门用于构建并发系统,并提供了一个轻量级进程模型来实现并发性。想了解更多erlang的相关内容,可以阅读本专题下面的文章。

2024.06.19

1358

9

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

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

2024.02.23

624

5

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

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

2026.01.28

1008

20

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

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

2026.05.20

204

15

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

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

2026.05.20

137

12

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

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

2026.05.20

142

10

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

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

2023.06.21

4230

4

如何安装LINUX
如何安装LINUX

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

2023.06.29

3573

10

linux find
linux find

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

2023.06.30

2813

5

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习