通过 Docker 安装非常方便,只需要几条命令就好了,我这里是只说一下常规安装方法。
前面提到了 RabbitMQ 是由 Erlang语言编写的,也正因如此,在安装RabbitMQ 之前需要安装 Erlang。
注意:在安装 RabbitMQ 的时候需要注意 RabbitMQ 和 Erlang 的版本关系,如果不注意的话会导致出错,两者对应关系如下:
安装 erlang
1. 下载 erlang 安装包
在官网下载然后上传到 Linux 上或者直接使用下面的命令下载对应的版本。
[root@bogon local]# wget http://erlang.org/download/otp_src_19.3.tar.gz
或者 erlang 官网自行下载: http://erlang.org/download/
2. 解压 erlang 安装包
[root@bogon local]# tar -xvzf otp_src_19.3.tar.gz
3. 删除 erlang 安装包
[root@bogon local]# rm -rf otp_src_19.3.tar.gz
4. 安装 erlang 的依赖工具
[root@bogon local]# yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC-devel
5. 进入erlang 安装包解压文件对 erlang 进行安装环境的配置
新建一个文件夹
[root@bogon local]# mkdir erlang
对 erlang 进行安装环境的配置
[root@bogon local]# cd otp_src_19.3
[root@bogon otp_src_19.3]# ./configure --prefix=/usr/local/erlang --without-javac
遇到下图错误时
因为我是虚拟机镜像CentOS-6安装所以会出现该问题(缺少很多依赖,各种尝试解决都没有明显效果),请换成镜像CentOS-7进行安装
6. 编译安装
[root@bogon otp_src_19.3]# make && make install
7. 验证一下 erlang 是否安装成功了
[root@bogon otp_src_19.3]# ./bin/erl
运行下面的语句输出“hello world”
io:format("hello world~n", []).
大功告成,我们的 erlang 已经安装完成。
8. 配置 erlang 环境变量
[root@bogon /]# cd etc/
[root@bogon etc]# vim profile
追加下列环境变量到文件末尾
#erlang
ERL_HOME=/usr/local/erlang
PATH=$ERL_HOME/bin:$PATH
export ERL_HOME PATH
运行下列命令使配置文件profile生效
[root@bogon etc]# source /etc/profile
输入 erl 查看 erlang 环境变量是否配置正确
[root@bogon etc]# erl
安装 RabbitMQ
[root@bogon /]# cd usr/local/
1. 下载rpm
wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.8/rabbitmq-server-3.6.8-1.el7.noarch.rpm
或者直接在官网下载
https://www.rabbitmq.com/install-rpm.html
2. 安装rpm(默认地址一般在 /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.8/)
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
紧接着执行:
yum install rabbitmq-server-3.6.8-1.el7.noarch.rpm
中途需要你输入"y"才能继续安装。
如报错如下图所示
需要尝试执行
[root@bogon local]# rpm -Va --nofiles --nodigest
[root@bogon local]# yum install rabbitmq-server-3.6.8-1.el7.noarch.rpm
如还报错(需要:erlang >= R16B-03) 则解决方法为
[root@bogon local]# yum -y install socat
[root@bogon local]# yum -y install epel-release
[root@bogon local]# yum -y install socat
[root@bogon local]# yum install rabbitmq-server-3.6.8-1.el7.noarch.rpm
中途需要你输入"y"才能继续安装。
3 开启 web 管理插件
rabbitmq-plugins enable rabbitmq_management
4 设置开机启动
chkconfig rabbitmq-server on
命令要求换成如下
systemctl enable rabbitmq-server.service
4. 启动服务
service rabbitmq-server start
如提示:Redirecting to /bin/systemctl start rabbitmq-server.service
则启动命令按照要求换成下述即可
/bin/systemctl start rabbitmq-server.service
5. 查看服务状态
service rabbitmq-server status
上述要求换成下列命令查看服务状态
/bin/systemctl status rabbitmq-server.service
6. 访问 RabbitMQ 控制台
浏览器访问:http://你的ip地址:15672/
默认用户名和密码: guest/guest;但是需要注意的是:guestuest用户只是被容许从localhost访问。官网文档描述如下:
“guest” user can only connect via localhost
解决远程访问 RabbitMQ 远程访问密码错误
新建用户并授权
[root@bogon rabbitmq]# rabbitmqctl add_user root root
Creating user "root" ...
[root@bogon rabbitmq]# rabbitmqctl set_user_tags root administrator
Setting tags for user "root" to [administrator] ...
[root@bogon rabbitmq]#
[root@bogon rabbitmq]# rabbitmqctl set_permissions -p / root ".*" ".*" ".*"
Setting permissions for user "root" in vhost "/" ...
再次访问:http://你的ip地址:15672/ ,输入用户名和密码:root root
RabbitMQ启动后无法访问http://localhost:15672 查看rabbitmq是否启动
ps -ef | grep rabbitmq
如果启动,查看linux防火墙是否关闭,未关闭时进行关闭
查看当前防火墙状态: systemctl status firewalld
关闭当前防火墙: systemctl stop firewalld
开机防火墙不启动: systemctl disable firewalld
设置完成后访问http://你的ip地址:15672/,输入用户名和密码:root root