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

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

相关推荐
A小辣椒13 小时前
TShark:Wireshark CLI 功能
linux
A小辣椒17 小时前
TShark:基础知识
linux
AlfredZhao19 小时前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao1 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质2 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush42 天前
嵌入式linux学习记录十四、术语
linux·嵌入式