CentOS 7下安装配置RabbitMQ详细教程 虚拟机安装
<!--安装ifconfig-->
yuminstallnet-tools
<!--安装vim-->
yuminstallyum
<!--准备基础编译环境-->
yuminstallgccglibc-develmakencurses-developenssl-develxmlto
前面三步是安装必做的,还有些坑是版本号没对应上,erlang版本和rabbitMQ的版本必须一致,这个MQ官网有介绍,就是这个坑查找了一天时间。差点放弃
接下来我们从官网下载安装包rabbitmq-server-3.7.2-1.el7.noarch.rpm和otp_src_20.1.tar.gz(千万别问我Erlang是什么,我也是第一次知道这门语言)。上传到虚拟机后执行命令:
wgethttp://erlang.org/download/otp_src_20.1.tar.gz直接可以这样下载
rabbitmq-server-3.7对应otp_src_20版本以上,19.3版本好像也可以
这是我自己下载的MQ版本
https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.6
<!--解压包-->
[root@localhost/]#tar-xvfotp_src_20.1.tar.gz
[root@localhost/]#ll
创建一个新目录,用来编译安装erlang,并且要安装JDK后面编译用到
[root@~]#mkdir/usr/local/erlang
[root@localhost~]#cdotp_src_20.1
[root@localhostotp_src_20.1]#./configure--prefix=/usr/local/erlang--without-javac
[root@localhostotp_src_20.1]#make&&makeinstall
编译&安装完成以后配置Erlang环境变量:
[root@localhost/]#vim/etc/profile
#追加环境变量到文件末尾
ERL_HOME=/usr/local/erlang
PATH=$ERL_HOME/bin:$PATH
exportERL_HOMEPATH
[root@localhost/]#source/etc/profile
[root@localhost/]#rpm-ivh--nodepsrabbitmq-server-3.7.6-1.el7.noarch.rpm
这个是rabbitMQ环境变量,参考网上有些人没有安装,我也没有配置
exportPATH=$PATH:/opt/rabbitmq/sbin
#使得文件生效
source/etc/profile
运行RabbitMQ需要首先开放15672和5672端口:
[root@localhost]#firewall-cmd--zone=public--add-port=15672/tcp--permanent
[root@localhost]#firewall-cmd--zone=public--add-port=5672/tcp--permanent
[root@localhost]#firewall-cmd--reload
下面这样就添加成功
[root@localhost/]#firewall-cmd--zone=public--add-port=15672/tcp--permanent
success
[root@localhost/]#firewall-cmd--zone=public--add-port=5672/tcp--permanent
success
[root@localhost/]#firewall-cmd--reload
success
如果一切正常的话RabbitMQ已经安装完成,最后测试一下:
[root@localhost/]#rabbitmq-pluginsenablerabbitmq_management
坑来了,直接报错
[error]Errorwhenreading/var/lib/rabbitmq/.erlang.cookie:eacces
说是权限问题加入
chownrabbitmq:rabbitmq/var/lib/rabbitmq/.erlang.cookie
然后再报错
Thefollowingpluginshavebeenenabled:
mochiweb
webmachine
rabbitmq_web_dispatch
amqp_client
rabbitmq_management_agent
rabbitmq_management
Applyingpluginconfigurationtorabbit@.....
意思是不能提交需要开启节点
[root@localhostsbin]#./rabbitmqctlstart_app
这一步非常诡异,创建节点的时候,其实是报错,Error:unabletoperformanoperationonnode'rabbit@localhost'.Pleaseseediagnosticsinformationandsuggestionsbelow.不明白啥原因
再次启动
./rabbitmq-pluginsenablerabbitmq_management
然后直接后台启动服务,只是有一个写入警告,这些操作有可能是服务启动延时造成,虚拟机启动需要,之前有可能是等待时间太短,不断的重启导致错误。
报错后必须要加这两步servicerabbitmq-serverstopservicerabbitmq-serverstart
[root@localhostsbin]#rabbitmq-server-detached
最后的报错是这样,仍然有警告,并且后面说明已经有服务启动,再访问界面,成功
[root@localhostsbin]#rabbitmq-server-detached
Warning:PIDfilenotwritten;-detachedwaspassed.
ERROR:nodewithname"rabbit"alreadyrunningon"localhost"
添加用户和权限
默认网页guest用户是不允许访问的,需要增加一个用户修改一下权限,代码如下:
添加用户:rabbitmqctladd_useradminadmin
添加权限:rabbitmqctlset_permissions-p"/"admin".*"".*"".*"
修改用户角色:rabbitmqctlset_user_tagsadminadministrator
环境初步完成,遇到问题也很坑,关键都是在安装埃完成后,启动MQ服务的时候,各种报错,查了很多资料,几次都想放弃不想安装了,最后慢慢一步步终于成功,
其实过程还是很模糊,但是启动界面管理服务和启动MQ后台服务肯定需要等待一些时间。以后还要慢慢研究,做到知其然,知所以然