前言
最近想研究一下rabbitmq,昨晚参照网上教程安装,遇到了一些问题,但是今天终于豁然开朗了,在此记录一下Linux环境下安装RabbitMQ的过程,及分享一些遇到的问题和解决方式。
这里我们安装RabbitMQ都使用最新的版本。
环境
服务器:aliyun服务器
操作系统:CentOS 7.3
RabbitMQ版本:v3.6.15
安装
Erlang安装
由于RabbitMQ是Erlang语言编写的,所以在安装RabbitMQ之前,我们先安装并配置Erlang
erlang下载地址:http://www.erlang.org/downloads
点击OTP 21.1 Sourxe File 进行下载,并上传到服务器 /opt目录下
解压源文件:tar -zxvf otp_src_21.1.tar.gz
进入目录:cd otp_src_21.1
配置编译安装在/opt/erlang目录下:./configure --prefix=/opt/erlang
安装后重新编译:make && make install
配置环境变量:vim /etc/profile 文末添加:export PATH=$PATH:/opt/erlang/bin
生效环境:source /etc/profile
验证Erlang是否安装成功:
出现上图则说明安装成功
退出(后面有个点哈,别忘了):halt().
RabbitMQ安装
erlang安装成功后开始安装rabbitmq
安装包下载地址:http://www.rabbitmq.com/releases/rabbitmq-server/
最新版本github下载地址:https://github.com/rabbitmq/rabbitmq-server/releases/
可以选择下载安装包上传到服务器进行解压缩安装
也可以通过:
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-generic-unix-3.6.15.tar.xz 下载
下载后进行解压:xz -d rabbitmq-server-generic-unix-3.6.15.tar.xz 解压为tar文件
再使用:tar -xvf rabbitmq-server-generic-unix-3.6.15.tar 解压文件
解压完之后,为方便使用重命名目录为rabbitmq:mv rabbitmq_server-3.6.15/ rabbitmq
配置环境变量:export PATH=$PATH:/opt/rabbitmq/sbin
环境变量生效:source /etc/profile
接下来启动rabbitmq:cd /opt/rabbitmq/sbin
后台启动:./rabbitmq-server -detached
(启动发现报一个pid file not written,网上找了很多也没找到具体原因,但是通过查看rabbitmq运行状态是正常启动的
暂且先留着这个问题)
查看rabbitmq状态:./rabbitmqctl status
这里查看rabbitmq状态发生了错误,看起来rabbitmq好像没有启动起来,但是我们实际上已经运行启动命令
通过看日志发现也是一头雾水,于是就去网上寻找答案,各种关键词,最后在一个博客发现:erlang和CentOS,rabbitmq与erlang都是有版本依赖关系的,不同版本会存在版本的不兼容
博客地址:https://blog.csdn.net/qq_35131811/article/details/80985142
rabbitmq官方给出的与erlang/OTP的版本兼容要求: http://www.rabbitmq.com/which-erlang.htm
回顾一下,我是用的rabbitmq版本为v.3.6.15,而erlang版本使用的v21.1
v3.6.15最小必要版本为3.6.15,而最大支持版本为20.3.x
而我们使用erlang版本不在范围内,因此所以我们重新下载安装范围内的erlang版本,这里我换成了v20.2
重新安装后,启动rabbitmq并查看状态,发现正常启动
配置网页管理插件:当我们通过http://ip:15672访问的时候,访问不到
停止rabbitmq:./rabbitmqctl stop
开启插件:rabbitmq-plugins enable rabbitmq_management
启动rabbitmq:./rabbitmq-server -detached
访问,发现可以正常访问:
rabbitmq默认的账户是guest 只能本地访问,因此远程访问只能添加用户去访问
- 查看rabbitmq用户:rabbitmqctl list_users
- 查看用户权限:rabbitmqctl list_user_permissions guest
- 增加用户: rabbitmqctl add_user admin admin
- 赋予管理员权限:
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
设置完之后,我们在页面用admin账号登陆,可以正常登陆进去:
- 注意一点,如果你是阿里云服务器,在管理控制台还需要添加相应端口及对应地址段的安全组规则
这样我们才能在浏览器访问,不然会出现空白页。
知识嘛,无非都是借鉴、自思、自学、自悟,欢迎转载和留言,有问题留言随便提。