Contents

Linux下安装RabbitMQ

本章主要讲了如何通过解压方式在Linux下安装RabbitMQ和Erlang,超级详细的安装过程,和安装过程中遇到的一些问题。

更多文章欢迎访问我的个人博客–>幻境云图

软件统一放在/usr/software下 解压后放在单独的文件夹下/usr/locac/opt/rabbitmq,/usr/local/opt/erlang

RabbitMQ

0. 环境准备

1.版本问题

Erlang和RabbitMQ版本必须对应才行,不然可能会出错。

官网信息如下 RabbitMQ Erlang Version Requirements

Erlang/OTP versions older than 20.3 are not supported by RabbitMQ versions released in 2019.

RabbitMQ versions prior to 3.7.7 do not support Erlang/OTP 21 or newer.

RabbitMQ version3.7.7–3.7.10 需要的Erlang版本最低为20.3.X,最高为21.X

RabbitMQ versionMinimum required Erlang/OTPMaximum supported Erlang/OTP
3.7.7—3.7.1020.3.X21.X
3.7.0–3.7.619.320.3.X

具体信息在这里http://www.rabbitmq.com/which-erlang.html

这里选择的版本是 Erlang:21.2,RabbitMQ3.7.10,Linux:CentOS 7

2. 依赖下载

安装rabbitmq需要下载以下依赖,这里可以提前下载上。

# yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel

# yum install xmlto -y

1. Erlang安装

1.1 下载

安装RabbitMQ之前需要先安装Erlang.

下载地址:http://www.erlang.org/downloads

文件otp_src_21.2.tar.gz

1.2 解压

将压缩包上传到虚拟机中,我是放在/usr/software目录下的

# tar xvf otp_src_21.2.tar.gz 解压文件

复制一份到/usr/local/opt/erlang-software

# cp otp_src_21.2 /usr/local/opt/erlang-software -r

创建erlang安装目录: /usr/local/opt/erlang

1.3 编译

进入到/usr/local/opt/erlang-software目录下

# cd /usr/local/opt/erlang-software

配置安装路径编译代码:# ./configure --prefix=/usr/local/opt/erlang

# make && make install 执行编译

1.4 环境变量配置

配置Erlang环境变量,# vi /etc/profile 添加以下内容

export PATH=$PATH:/usr/local/opt/erlang/bin

# source /etc/profile 使得文件生效

1.5 验证

验证erlang是否安装成功:# erl 进入如下界面就说明 配置好了

[root@localhost bin]# erl
Erlang/OTP 21 [erts-10.2] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1]

Eshell V10.2  (abort with ^G)
1> 
`

2. RabbitMQ安装

2.1 下载

官网:http://www.rabbitmq.com/releases/rabbitmq-server

这里下载3.7.10 :http://www.rabbitmq.com/install-generic-unix.html

文件:rabbitmq-server-generic-unix-3.7.10.tar.xz

2.2 解压

文件是xz格式的,解压后得到tar格式文件。

# xz -d rabbitmq-server-generic-unix-3.7.10.tar.xz

# tar -xvf rabbitmq-server-generic-unix-3.7.10.tar

复制到/usr/local/opt/rabbitmq目录下# cp -r rabbitmq_server-3.7.10/ /usr/local/opt/rabbitmq

2.3 环境变量配置

配置rabbitmq环境变量,# vi /etc/profile 添加以下内容

export PATH=$PATH:/usr/local/opt/rabbitmq/sbin

环境变量生效:source /etc/profile

2.4 使用

进入/usr/local/opt/rabbitmq/sbin目录

启动服务:# ./rabbitmq-server -detached

查看服务状态:# ./rabbitmqctl status

关闭服务:# ./rabbitmqctl stop

2.5 配置网页插件

首先创建目录,否则可能报错:# mkdir /etc/rabbitmq

启用插件:# ./rabbitmq-plugins enable rabbitmq_management

启动mq:# ./rabbitmq-server -detached

配置linux 端口: 15672 网页管理, 5672 AMQP端口

然后访问http://192.168.5.154:15672/

这里是需要登录了。

rabbitmq默认会创建guest账号,只能用于localhost登录页面管理员,需要自己创建账号。

2.6 添加账户

查看mq用户:# rabbitmqctl list_users

查看用户权限:# rabbitmqctl list_user_permissions guest

新增用户: # rabbitmqctl add_user root root 用户名root,密码root

赋予管理员权限:

rabbitmqctl set_user_tags root administrator

rabbitmqctl set_permissions -p "/" root ".*" ".*" ".*"

3. 问题

1.启动报错

[root@localhost sbin]# ./rabbitmq-server start

BOOT FAILED
===========
=INFO REPORT==== 21-Jan-2019::20:49:29.302765 ===
Error description:
   noproc
   
Log files (may contain more information):
   /usr/local/opt/rabbitmq/var/log/rabbitmq/rabbit@localhost.log
   /usr/local/opt/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log

Stack trace:
   [{gen,do_for_proc,2,[{file,"gen.erl"},{line,228}]},
    {gen_event,rpc,2,[{file,"gen_event.erl"},{line,239}]},
    {rabbit,ensure_working_log_handlers,0,
            [{file,"src/rabbit.erl"},{line,856}]},
    {rabbit,'-boot/0-fun-0-',0,[{file,"src/rabbit.erl"},{line,288}]},
    {rabbit,start_it,1,[{file,"src/rabbit.erl"},{line,424}]},
    {init,start_em,1,[]},
    {init,do_boot,3,[]}]

{"init terminating in do_boot",noproc}
init terminating in do_boot (noproc)

Crash dump is being written to: erl_crash.dump...done

这个问题网上查了一下,有的说是权限问题,也有说是erlang和rabbitmq版本对应不上,暂时没解决。

以解决,确实是版本问题,erlang版本和rabbitmq的版本对应不上,最前面单独写了这个关于版本的问题。