本文共 3282 字,大约阅读时间需要 10 分钟。
公众号:战渣渣
操作系统:CentOS6.5 / 64bit
用户:root
RabbitMQ是使用Erlang开发,所以安装RabbitMQ前需要先安装Erlang。
2.1.获取Erlang和RabbitMQ的源文件
下查找最新的源文件,我选择的是版本17
找到后,执行以下命令直接在Linux下获取源码
[root@iZ250x18mnzZ ~]# wget http://erlang.org/download/otp_src_17.0.tar.gz
查找到最新的源码版本,我选择v3.6.0
找到后,执行以下命令直接在Linux下获取源码
[root@iZ250x18mnzZ ~]# wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.0/rabbitmq-server-3.6.0-1.noarch.rpm
2.2.编译安装Erlang
2.2.1.解压otp_src_17.0.tar.gz
[root@iZ250x18mnzZ ~]# tar -zxvf otp_src_17.0.tar.gz编译安装Erlang对环境有要求,为防止在编译的时候提示某些软件包未安装之类的错误,所以我将Erlang需要的软件提前安装,直接使用yum进行安装即可
2.2.2.利用yum安装erlang编译环境
$ yum -y install make ncurses-devel gcc gcc-c++ unixODBC unixODBC-devel openssl openssl-devel
安装后,有部分是更新,有部分是依赖更新,也有的是新安装等等,我的执行后结果如下图:
2.2.3.编译安装Erlang
设置
[root@iZ250x18mnzZ ~]# cd otp_src_17.0[root@iZ250x18mnzZ ~]# ./configure \ --prefix=/usr/local/erlang \ --enable-smp-support \ --enable-threads \ --enable-sctp \ --enable-kernel-poll \ --enable-hipe \ --with-ssl上述参数说明:
--prefix 指定安装目录
--enable-smp-support启用对称多处理支持(Symmetric Multi-Processing对称多处理结构的简称)
--enable-threads启用异步线程支持
--enable-sctp启用流控制协议支持(Stream Control Transmission Protocol,流控制传输协议)
--enable-kernel-poll启用Linux内核poll
--enable-hipe启用高性能Erlang(High Performance Erlang)参考资料:
--with-ssl使用SSL包
上述说明未必准确,大家可以到官网或者其他地方查找资料确定一下
编译和安装
[root@iZ250x18mnzZ otp_src_17.0]# make && make install2.3.设置环境变量
环境变量为追加
[root@iZ250x18mnzZ ~]# vi /etc/profileERL_HOME=/usr/local/erlangPATH=$ERL_HOME/bin:$PATHexport ERL_HOME PATH保存后,重新激活环境变量生效
[root@iZ250x18mnzZ ~]# source /etc/profile验证是否已经追加成功
[root@iZ250x18mnzZ ~]# echo $ERL_HOME/usr/local/erlang[root@iZ250x18mnzZ ~]# echo $PATH/usr/local/erlang/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin2.4.安装RabbitMQ
[root@iZ250x18mnzZ ~]# rpm -i rabbitmq-server-3.6.0-1.noarch.rpmwarning: rabbitmq-server-3.6.0-1.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID 056e8e56: NOKEYerror: Failed dependencies: erlang >= R16B-03 is needed by rabbitmq-server-3.6.0-1.noarch上述错误信息显示安装失败,因为rabbigmq的依赖关系所导致,所以要忽略依赖,执行以下命令
[root@iZ250x18mnzZ ~]# rpm -i --nodeps rabbitmq-server-3.6.0-1.noarch.rpm2.5.启停RabbitMQ
官网提供启动方式
使用root用户启动和停止服务/sbin/service rabbitmq-server stop/start/etc.[root@iZ250x18mnzZ ~]#service rabbitmq-server start 启动服务[root@iZ250x18mnzZ ~]#service rabbitmq-server etc 查看哪些命令可以使用[root@iZ250x18mnzZ ~]#service rabbitmq-server stop 停止服务[root@iZ250x18mnzZ ~]#service rabbitmq-server status查看服务状态注:启动时,可能会出现附录中的错误,具体解决方案可参考。
2.6.添加rabbitmq到启动项
执行以下代码
chkconfig rabbitmq-server on
参考资料:
2.7.RabbitMQ设置
从官网来看,RabbitMQ有两个配置文件,使用RPM方式安装:
RabbitMQ的根目录:/var/lib/rabbitmq
RabbitMQ的配置文件目录:/etc/rabbitmq/ RabbitMQ的日志文件目录:/var/log/rabbitmq 两个配置文件分别是: rabbitmq.config rabbitmq-env.conf RabbitMQ环境变量配置文件,变量名称及内容可参考: 配置在文件中的变量使用参考中的标准变量,但是需要将变量前缀RABBITMQ_去掉 官网中提到的关于变量的默认内容及含义可参考: 配置文件相关资料:
1. 官网安装资料:
2. 参考安装资料:
4.1. 启动失败
使用命令 service rabbitmq-server start 一直无法启动 Startup_err 中记录以下错误信息/usr/lib/rabbitmq/bin/rabbitmq-server: line 50: erl: command not found是因为环境变量不同,导致无法找到相应命令,按照指引 将erlang的erl软连接到/usr/bin目录下[root@iZ250x18mnzZ rabbitmq]# ln -s /usr/local/erlang/bin/erl /usr/bin/erl重新执行成功