阅读更多
yum install net-tools
yum install yum
yum install gcc glibc-devel make ncurses-devel openssl-devel xmlto
前面三步是安装必做的, 还有些坑是版本号没对应上,erlang版本和rabbitMQ的版本必须一致,这个MQ官网有介绍,就是这个坑 查找了一天时间。差点放弃
接下来我们从官网下载安装包rabbitmq-server-3.7.2-1.el7.noarch.rpm和otp_src_20.1.tar.gz(千万别问我Erlang是什么,我也是第一次知道这门语言)。上传到虚拟机后执行命令:
wget http://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 -xvf otp_src_20.1.tar.gz
[root@localhost /]# ll
创建一个新目录,用来编译安装erlang,并且要安装JDK后面编译用到
[root@~]# mkdir /usr/local/erlang
[root@localhost ~]# cd otp_src_20.1
[root@localhost otp_src_20.1]# ./configure --prefix=/usr/local/erlang --without-javac
[root@localhost otp_src_20.1]# make && make install
编译&安装完成以后配置Erlang环境变量:
[root@localhost /]# vim /etc/profile
#追加环境变量到文件末尾
ERL_HOME=/usr/local/erlang
PATH=$ERL_HOME/bin:$PATH
export ERL_HOME PATH
[root@localhost /]# source /etc/profile
[root@localhost /]# rpm -ivh --nodeps rabbitmq-server-3.7.6-1.el7.noarch.rpm
这个是rabbitMQ环境变量,参考网上有些人没有安装,我也没有配置
export PATH=$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-plugins enable rabbitmq_management
坑来了,直接报错
[error] Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces
说是权限问题 加入
chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
然后再报错
The following plugins have been enabled:
mochiweb
webmachine
rabbitmq_web_dispatch
amqp_client
rabbitmq_management_agent
rabbitmq_management
Applying plugin configuration to rabbit@.....
意思是不能提交 需要开启节点
[root@localhost sbin]# ./rabbitmqctl start_app
这一步非常诡异,创建节点的时候,其实是报错,Error: unable to perform an operation on node 'rabbit@localhost'. Please see diagnostics information and suggestions below. 不明白啥原因
再次启动
./rabbitmq-plugins enable rabbitmq_management
然后直接后台启动服务,只是有一个写入警告,这些操作有可能是服务启动延时造成,虚拟机启动需要,之前有可能是等待时间太短,不断的重启导致错误。
报错后必须要加这两步 service rabbitmq-server stop service rabbitmq-server start
[root@localhost sbin]# rabbitmq-server -detached
最后的报错是这样,仍然有警告,并且后面说明已经有服务启动,再访问界面,成功
[root@localhost sbin]# rabbitmq-server -detached
Warning: PID file not written; -detached was passed.
ERROR: node with name "rabbit" already running on "localhost"
添加用户和权限
默认网页guest用户是不允许访问的,需要增加一个用户修改一下权限,代码如下:
添加用户:rabbitmqctl add_user admin admin
添加权限:rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
修改用户角色:rabbitmqctl set_user_tags admin administrator
环境初步完成,遇到问题也很坑, 关键都 是在安装埃完成后, 启动MQ服务的时候,各种报错,查了很多资料,几次都 想放弃不想安装了,最后慢慢一步步终于成功,
其实过程还是很模糊,但是启动界面管理服务和启动MQ后台服务肯定需要等待一些时间。以后还要慢慢研究,做到知其然,知所以然