2020-06-08 在CentOS7上安装 RabbitMQ
rabbitmq是erlang语言编写的,安装rabbitmq之前,需要先安装erlang,这里用erlang的源码进行安装,erlang安装包官网下载地址:http://erlang.org/download/
wget http://erlang.org/download/otp_src_21.1.tar.gz
#解压
tar -zxvf otp_src_21.1.tar.gz
cd otp_src_21.1
# 这里要新建一个erlang文件夹,因为erlang编译安装默认是装在/usr/local下的bin和lib中,这里我们将他统一装到/usr/local/erlang中,方便查找和使用。
mkdir -p /usr/local/erlang
# 在编译之前,必须安装以下依赖包
yum install -y make gcc gcc-c++ m4 openssl openssl-devel ncurses-devel unixODBC unixODBC-devel java java-devel
#执行一下
./configure --prefix=/usr/local/erlang
erlang的编译需要用到java环境,如果不装,会报错如下。
image以下的两个:APPLICATIONS INFORMATION,DOCUMENTATION INFORMATION
是正常的,不影响正常编译。
然后,直接执行make && makeinstall
进行编译安装
make && make install
安装后,在/usr/local/erlang
中就会出现如下:
然后将/usr/local/erlang/bin
这个文件夹加入到环境变量中,加载以下即可直接使用。
vim /etc/profile
######### 添加如下内容 ###############
PATH=$PATH:/usr/local/erlang/bin
########################################
source /etc/profile
到此,既安装完成,直接输入erl
,得到如下图得安装成功
OK,安装完erlang后,下面安装rabbitmq,安装之前,需要去官网查看一下rabbitmq版本对erlang版本的一个支持情况,官网地址:http://www.rabbitmq.com/which-erlang.html
image.png这里,我们安装的erlang是21版本,所以,rabbitmq也要安装最新的3.7.7或3.7.8。然后在官网上,直接下载该版本的安装包,为了方便安装,最好直接使用编译好的二进制文件包,即开即用,不用进行复杂的yum配置等。具体可以参考官方文档:http://www.rabbitmq.com/install-generic-unix.html
# 下载源码包
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.8/rabbitmq-server-generic-unix-3.7.8.tar.xz
# 解压
tar -xvf rabbitmq-server-generic-unix-3.7.8.tar.xz -C /usr/local/
# 添加环境变量
vim /etc/profile
------ 添加如下内容 ------
PATH=$PATH:/usr/local/rabbitmq_server-3.7.8/sbin
# 重载一下环境变量
source /etc/profile
# 添加web管理插件
rabbitmq-plugins enable rabbitmq_management
默认rabbitmq是没有配置文件的,需要去官方github上,复制一个配置文件模版过来,最新的3.7.0以上的版本可以使用新的key-value形式的配置文件rabbitmq.conf,和原来erlang格式的advanced.config相结合,解决一下key-value形式不好定义的配置。github地址:https://github.com/rabbitmq/rabbitmq-server/tree/master/docs
由于我这里安装的是最新的3.7.8。所以就使用新的配置文件,将配置文件更名为rabbitmq.conf
复制到 /usr/local/rabbitmq_server-3.7.8/etc/rabbitmq/
下。
ok,然后就可以启动rabbitmq服务了,其实没有配置文件也是可以启动服务的。
# 后台启动rabbitmq服务
rabbitmq-server -detached
若出现Warning: PID file not written; -detached was passed
,是正常的,这个警告不影响
可以查看一下5672端口(rabbitmq服务端口),以及15672 WEB控制台界面。 image.png
上面,启用了rabbitmq的管理插件,会有一个web管理界面,默认监听端口15672,将此端口在防火墙上打开,则可以访问web界面:
image.png
解决办法:
vim /usr/local/rabbitmq_server-3.7.8/ebin/rabbit.app
将:{loopback_users, [<<”guest”>>]}
, 改为:{loopback_users, []}
,
原因:rabbitmq从3.3.0开始禁止使用guest/guest
权限通过 除localhost外的访问。
解决完之后,重启一下rabbitMq服务,用guest/guest
再次登录就好了
原文参考地址:https://blog.csdn.net/weixin_41004350/article/details/83046842