原文:https://blog.csdn.net/qq_37495786/article/details/84001556
附:RabbitMQ Erlang版本要求
注:若版本不按照RabbitMQ Erlang版本要求,则会报错的。
一、准备工作
1、下载erlang
wget www.rabbitmq.com/releases/erlang/erlang-18.3-1.el7.centos.x86_64.rpm
2、下载socat
附:http://repo.iotti.biz/CentOS/7/x86_64/
wget http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpm
3、下载RabbitMQ
wget www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5-1.noarch.rpm
4、安装
4、1安装erlang
rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm
4、2安装socat
rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm
4、3安装rabbitmq-server
rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm
注:如果先去安装erlang,再去安装rabbitmq-server会安装不成功的。
会提示让你先安装socat。
二、配置文件修改
1、编辑rabbitmq配置文件:
vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app
修改之后:
三、启动和关闭rabbitmq服务
<1>启动命令:
rabbitmq-server start &
注:
1、如果输入启动命令,出现如下图问题:ERROR: epmd error for host 192: badarg (unknown POSIX error)
那么解决办法:
1》网上博客看的方法:亲测有效。(rabbitmq-env.conf原本是没有的,创建并编辑它)
vim /etc/rabbitmq/rabbitmq-env.conf
添加一行:NODENAME=rabbit@localhost,如下图,保存退出
2》网上视频中看到的方法,编辑hostname文件
vim /etc/hostname
这里我将原来的主机名改成了localname,当然你可以随意。
然后启动ok。
2、如果执行启动命令后,出现ERROR: node with name "rabbit" already running on "localhost"
解决办法:
ps -ef | grep rabbit
kill 进程号
如图:kill 92153 和kill 99377
然后再次启动发现问题解决。
此时用以下命令查看:
lsof -i:5672
注:-bash: lsof: 未找到命令,则需要安装lsof,
yum install lsof
<2>关闭
rabbitmqctl stop_app
四、安装管理界面插件
注:这里有一点,不太明白,就是为什么某课网视频中,直接执行rabbitmq会出现如图内容,而我这里直接执行rabbitmq会提示未找到命令。
不过我直接执行以下命令也可以开启管理界面插件。
rabbitmq-plugins enable rabbitmq_management
五、浏览器访问(ps:我这里的防火墙是关闭的)
账号密码:guest
ps:
centos7中的防火墙改成了firewall,使用iptables无作用,开放端口的方法如下:
firewall-cmd --zone=public --add-port=80/tcp --permanent
返回success为成功
######################################################################################
命令含义:
--zone #作用域
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效
######################################################################################
systemctl restart firewalld.service #重启防火墙
systemctl stop firewalld.service #关闭防火墙
netstat -lntp #查看监听(Listen)的端口
netstat -lnp|grep 8080 #检查端口被哪个进程占用