目录
序:看了很多网友写的,号称 rabbitMQ 安装的是最新版的,诸如各种安装方法,我打开他们下载的路径,其实都不是最新版,还是几年前的 erlang 和 rabbitmq。好,进入正题。
寻找资源
官网交代了要去哪里找资源,而且安装教程也告诉读者去哪里看。
packagecloud(推荐)
下载 socat,rabbitmq 需要 socat 环境 (这个基本不怎么变)
http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpm
上传资源
目前新版3.8.4 安装入坑一
这里有坑:
- 我想当然的以为,下载了 rpm 安装文件,然后传到服务器,就可以大功告成,事实证明我错了;
- 想当然的用 sudo rpm -vih erlang-22.3.4.1-1.el7.x84_64.rpm,这里会有两个问题,一是 安装的 erlang 和 rabbitmq 版本不是配套的,二是 新版有带签名(Signature),这样安装是无法自动生成的。
编辑vim ,遇到死胡同时,ctrl + c,再输入 :quit,如果不行,输入 :quit!
正确的安装
引言:按以前版的老思路,行不通。 rpm 安装方式也不行。后来我再仔细阅读官网,重新阅读 packagecloud,官网其实也交代清楚了。
- 第一步:进入 packagecloud,copy quick install 运行脚本在 linux 上执行。
https://packagecloud.io/rabbitmq/erlang/install#bash-rpm
copy quick install rabbitmq 运行脚本在 linux 上执行。
https://packagecloud.io/rabbitmq/rabbitmq-server/install#bash-rpm
- 第二步
在 linux 上分别执行以下两行命令,一个一个执行。
curl -shttps://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh| sudo bash
curl -shttps://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh| sudo bash
- 查看 erlang,[root@bogon ~]# yum list | grep erlang
- 查看rabbitmq [root@bogon ~]# yum list |grep rabbit
第三步:到第二步并没有安装完,只是有了 packcloud 云的环境,可以一键下载安装。
- 执行yum install -y rabbitmq-server,执行这个命令他会 一并安装好 rabbitmq 需要的依赖,即 erlang。安装过程要点时间,耐心的等就是了。
我先执行 yum install -y erlang,反正报最后没有执行成功,我干脆就执行 yum install -y rabbitmq-server,结果服务把 erlang 依赖一起安装了。
测试启动
查看插件:rabbitmq-plugins list
-
启动服务
systemctl start rabbitmq-server
或者:rabbitmq-server -detached -
查看状态
rabbitmqctl status
你也可以安装一个端口访问工具 :
yum -y install lsof # 安装
lsof -i:5672 # tcp 端口
lsof -i:15672 # http 端口
这里注意,有坑,百度搜了一大把的人,还是用旧版。
- 别理所当然的觉得执行rabbitmq-plugins enable rabbitmq_management 你就可以顺利访问 web 管理界面了,没门。你即使执行了,也会报 配置 unchange。
- 你更会奇怪,想要修改 rabbit.app 配置文件没有了。你用 curlhttp://localhost:15672可以看到登录界面的 html。但是却登录不了。还有坑在哪?
解决方案
-
开启防火墙
[root@bogon ~]# firewall-cmd --zone=public --permanent --add-port=4369/tcp
success
[root@bogon ~]# firewall-cmd --zone=public --permanent --add-port=25672/tcp
success
[root@bogon ~]# firewall-cmd --zone=public --permanent --add-port=5671-5672/tcp
success
[root@bogon ~]# firewall-cmd --zone=public --permanent --add-port=15672/tcp
success
[root@bogon ~]# firewall-cmd --zone=public --permanent --add-port=61613-61614/tcp
success
[root@bogon ~]# firewall-cmd --zone=public --permanent --add-port=1883/tcp
success
[root@bogon ~]# firewall-cmd --zone=public --permanent --add-port=8883/tcp
success
[root@bogon ~]# firewall-cmd --reload
success
官网上解释了端口的意义
我把上面的都开启了,不过我猜想,只要启动两个就行,还没试。
# firewall-cmd --permanent --add-port=15672/tcp
# firewall-cmd --permanent --add-port=5672/tcp
# systemctl restart firewalld.service
访问界面
IP 是你的服务器IP,这个时候别高兴的太早,guest 访问不了,提示是本地才行,远程不行。我干脆添加一个用户,再给用户授权。
-
添加用户和密码 rabbitmqctl add_user username password
rabbitmqctl add_user admin admin -
添加权限(前提是你用 root 登录的 linux)
rabbitmqctl set_permissions -p / rabbitmq “." ".” “.*” -
修改用户角色
rabbitmqctl set_user_tags rabbitmq administrator
这部分参考网友:https://blog.youkuaiyun.com/qq_35598868/article/details/95710236,非常感谢。
最后用 admin 登录,成功了。
新版的安装过程很多坑,我都踩过了,希望对你有帮助。