Linux中安装rabbitmq,很详细

Linux中安装rabbitmq,很详细

一、前言

最近有用到消息队列的需求,选择了 rabbitmq ,安装也是好一顿折腾,这里记录一下。

二、查看版本对应

这里查看

本次要安装的 rabbitmq 版本为 4.2.1 ,所以 erlang 版本要求 24.2 - 27.x ,这里安装的版本为 27.3.4.6 。

三、安装erlang

可以到这里下载erlang

安装 erlang 之前先安装必要的依赖,命令如下:

powershell 复制代码
yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget

然后将 erlang 上传到指定目录,这里将其上传到

/usr/local/erlang

进入这个目录:

powershell 复制代码
cd /usr/local/erlang

解压,命令如下:

powershell 复制代码
tar -zxvf otp_src_27.3.4.6.tar.gz

解压太多了,前面没截到图

进入解压后的目录:

powershell 复制代码
cd /usr/local/erlang/otp_src_27.3.4.6

执行:

powershell 复制代码
./configure --prefix=/usr/local/erlang

注意

--prefix=/usr/local/erlang 是固定的,这个我已经试过了,不要再试了,不论 erlang 解压在哪里!!!

等待执行完成,如果执行报错

powershell 复制代码
configure: error: No curses library functions found

这个错误是因为缺少 curses 库导致的,在CentOS 7中,可以通过以下命令安装

powershell 复制代码
yum install ncurses-devel

再次执行:

powershell 复制代码
./configure --prefix=/usr/local/erlang

看到这个提示说明执行成功了

接着执行如下命令:

powershell 复制代码
make && make install

有点久,等待执行完成

如果报错

powershell 复制代码
test -d "/usr/local/erlang/otp_src_27.3.4.6/lib/erlang/releases/27" || mkdir -p "/usr/local/erlang/otp_src_27.3.4.6/lib/erlang/releases/27" ;			\
if test ! -f "/usr/local/erlang/otp_src_27.3.4.6/lib/erlang/releases/27/installed_application_versions" ; then				\
 echo "tftp-1.2.2" > "/usr/local/erlang/otp_src_27.3.4.6/lib/erlang/releases/27/installed_application_versions" || exit 1;	\
else								\
 if test x = x`grep tftp-1.2.2 "/usr/local/erlang/otp_src_27.3.4.6/lib/erlang/releases/27/installed_application_versions"` ; then \
  echo tftp-1.2.2 >> "/usr/local/erlang/otp_src_27.3.4.6/lib/erlang/releases/27/installed_application_versions" || exit 1;	\
 fi ;								\
fi
make[3]: Leaving directory '/usr/local/erlang/otp_src_27.3.4.6/lib/tftp'
=== Leaving application tftp
make[2]: Leaving directory '/usr/local/erlang/otp_src_27.3.4.6/lib/tftp'
make[2]: Entering directory '/usr/local/erlang/otp_src_27.3.4.6/lib/erlang'
make[2]: *** No rule to make target 'release'.  Stop.
make[2]: Leaving directory '/usr/local/erlang/otp_src_27.3.4.6/lib/erlang'
make[1]: *** [/usr/local/erlang/otp_src_27.3.4.6/make/otp_subdir.mk:29: release] Error 2
make[1]: Leaving directory '/usr/local/erlang/otp_src_27.3.4.6/lib'
make: *** [Makefile:874: install.libs] Error 2

这个可以不用管

接着配置环境变量:

powershell 复制代码
vim /etc/profile

这是固定的,只要在 PATH 后面加上

powershell 复制代码
/usr/local/erlang/bin

这里写成这样

powershell 复制代码
export OPT_HOME=/usr/local/erlang

保存退出,再刷新一下配置:

powershell 复制代码
source /etc/profile

查看是否安装成功,命令如下:

powershell 复制代码
erl --version

四、安装rabbitmq

先到这里下载

这里下载 rabbitmq 4.2.1

先上传到对应目录,这里为

/usr/local/rabbitmq

进入对应目录:

powershell 复制代码
cd /usr/local/rabbitmq

先使用如下命令解压:

powershell 复制代码
xz -d rabbitmq-server-generic-unix-4.2.1.tar.xz

再使用如下命令:

powershell 复制代码
tar -vxf rabbitmq-server-generic-unix-4.2.1.tar

接着配置一下环境:

powershell 复制代码
vim /etc/profile

在 PATH 后面加入

powershell 复制代码
/usr/local/rabbitmq/rabbitmq_server-4.2.1/sbin

这里写成

powershell 复制代码
export RABBITMQ_HOME=/usr/local/rabbitmq/rabbitmq_server-4.2.1

记得配置到 PATH 后面要加入 /sbin

使配置生效:

powershell 复制代码
source /etc/profile

启用 web 页面,命令如下:

powershell 复制代码
rabbitmq-plugins enable rabbitmq_management

然后启动,命令如下:

powershell 复制代码
rabbitmq-server start

如果启动时报错

powershell 复制代码
ERROR: could not bind to distribution port 25672, it is in use by another node: rabbit@iZn4a63fy7vb9dq9ptbrt0Z

表示 端口被占用,此时执行:

powershell 复制代码
rabbitmqctl stop

再次启动:

powershell 复制代码
rabbitmq-server start

此时再浏览器已经可以访问客户端了

但 guest 只能在本机使用,还要创建可以访问的用户,注意不能 Ctrl + C 退出当前窗口,应该新开一个窗口!!!

这里创建一个名为 rabbitmq 的用户,密码也是 rabbitmq ,命令如下:

powershell 复制代码
rabbitmqctl add_user rabbitmq rabbitmq

再为RabbitMQ用户分配角色,这里分配最高权限管理员,命令如下:

powershell 复制代码
rabbitmqctl set_user_tags rabbitmq administrator

然后为指定用户(rabbitmq)在默认虚拟主机(/)上分配所有资源(交换机、队列、消息)的读写权限,执行如下命令:

powershell 复制代码
rabbitmqctl set_permissions -p / rabbitmq ".*" ".*" ".*"

再次登录

报错,就是关闭当前窗口导致的

powershell 复制代码
Error: unable to perform an operation on node 'rabbit@iZn4a63fy7vb9dq9ptbrt0Z'. Please see diagnostics information and suggestions below.

Most common reasons for this are:

 * Target node is unreachable (e.g. due to hostname resolution, TCP connection or firewall issues)
 * CLI tool fails to authenticate with the server (e.g. due to CLI tool's Erlang cookie not matching that of the server)
 * Target node is not running

In addition to the diagnostics info below:

 * See the CLI, clustering and networking guides on https://rabbitmq.com/documentation.html to learn more
 * Consult server logs on node rabbit@iZn4a63fy7vb9dq9ptbrt0Z
 * If target node is configured to use long node names, don't forget to use --longnames with CLI tools

DIAGNOSTICS
===========

attempted to contact: [rabbit@iZn4a63fy7vb9dq9ptbrt0Z]

rabbit@iZn4a63fy7vb9dq9ptbrt0Z:
  * connected to epmd (port 4369) on iZn4a63fy7vb9dq9ptbrt0Z
  * epmd reports: node 'rabbit' not running at all
                  no other nodes on iZn4a63fy7vb9dq9ptbrt0Z
  * suggestion: start the node

Current node details:
 * node name: 'rabbitmqcli-971-rabbit@iZn4a63fy7vb9dq9ptbrt0Z'
 * effective user's home directory: /root
 * Erlang cookie hash: AAB22/b7FsZ9yc/ttcVemw==

让 rabbitmq 后台启动,命令如下:

powershell 复制代码
rabbitmq-server -detached

此时关了黑窗口也可以访问了

相关推荐
人工智能训练2 小时前
OpenEnler等Linux系统中安装git工具的方法
linux·运维·服务器·git·vscode·python·ubuntu
QT 小鲜肉3 小时前
【Linux命令大全】001.文件管理之which命令(实操篇)
linux·运维·服务器·前端·chrome·笔记
oMcLin4 小时前
Ubuntu 22.04 无法连接外部网络的故障排查与解决(解决 DNS 配置问题)
linux·网络·ubuntu
还不秃顶的计科生4 小时前
LeetCode 热题 100第二题:字母易位词分组python版本
linux·python·leetcode
咯哦哦哦哦4 小时前
WSL + ubantu22.04 + 远程桌面闪退+黑屏闪退解决
linux·开发语言
fantasy5_54 小时前
Linux 动态进度条实战:从零掌握开发工具与核心原理
linux·运维·服务器
weixin_462446235 小时前
exo + tinygrad:Linux 节点设备能力自动探测(NVIDIA / AMD / CPU 安全兜底)
linux·运维·python·安全
..过云雨5 小时前
17-2.【Linux系统编程】线程同步详解 - 条件变量的理解及应用
linux·c++·人工智能·后端
莫逸风5 小时前
【局域网服务方案】:无需找运营商,低成本拥有高性能服务器
运维·服务器
oMcLin5 小时前
CentOS 7 频繁出现 “Connection Refused” 错误的原因分析与解决
linux·运维·centos