28 11 2017

1.操作系统环境

操作系统:CentOS6.5 / 64bit

用户:root

2.RabbitMQ编译安装

RabbitMQ是使用Erlang开发,所以安装RabbitMQ前需要先安装Erlang。

2.1.获取Erlang和RabbitMQ的源文件

http://erlang.org/download/查找最新的源文件,我选择的是版本17
找到后,执行以下命令直接在Linux下获取源码
[plain] view plain copy
  1. [root@iZ250x18mnzZ ~]# wget  http://erlang.org/download/otp_src_17.0.tar.gz  
http://www.rabbitmq.com/releases/rabbitmq-server查找到最新的源码版本,选择v3.6.0
找到后,执行以下命令直接在Linux下获取源码
[plain] view plain copy
  1. [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
[plain] view plain copy
  1. [root@iZ250x18mnzZ ~]# tar -zxvf  otp_src_17.0.tar.gz  

编译安装Erlang对环境有要求,为防止在编译的时候提示某些软件包未安装之类的错误,所以我将Erlang需要的软件提前安装,直接使用yum进行安装即可

2.2.2.利用yum安装erlang编译环境

[plain] view plain copy
  1. $ yum -y install make ncurses-devel gcc gcc-c++ unixODBC unixODBC-devel openssl openssl-devel  

安装后,有部分是更新,有部分是依赖更新,也有的是新安装等等,我的执行后结果如下图:

2.2.3.编译安装Erlang
设置
[plain] view plain copy
  1. [root@iZ250x18mnzZ ~]# cd otp_src_17.0  
  2. [root@iZ250x18mnzZ ~]# ./configure      
  3.        --prefix=/usr/local/erlang     
  4.        --enable-smp-support          
  5.        --enable-threads                 
  6.        --enable-sctp                      
  7.        --enable-kernel-poll            
  8.        --enable-hipe                      
  9.        --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)参考资料:http://www.cnblogs.com/me-sa/archive/2012/10/09/erlang_hipe.html
--with-ssl使用SSL包
上述说明未必准确,大家可以到官网或者其他地方查找资料确定一下

编译和安装

   

[plain] view plain copy
  1. [root@iZ250x18mnzZ otp_src_17.0]# make && make install  

2.3.设置环境变量

环境变量为追加

[plain] view plain copy
  1. [root@iZ250x18mnzZ ~]# vi /etc/profile  
  2.   
  3. ERL_HOME=/usr/local/erlang  
  4. PATH=$ERL_HOME/bin:$PATH  
  5. export ERL_HOME PATH  

保存后,重新激活环境变量生效

[plain] view plain copy
  1. [root@iZ250x18mnzZ ~]# source /etc/profile  

验证是否已经追加成功

[plain] view plain copy
  1. [root@iZ250x18mnzZ ~]# echo $ERL_HOME  
  2. /usr/local/erlang  
  3. [root@iZ250x18mnzZ ~]# echo $PATH  
  4. /usr/local/erlang/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin  

2.4.安装RabbitMQ

[plain] view plain copy
  1. [root@iZ250x18mnzZ ~]# rpm -i rabbitmq-server-3.6.0-1.noarch.rpm  
  2. warning: rabbitmq-server-3.6.0-1.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID 056e8e56: NOKEY  
  3. error: Failed dependencies:  
  4.         erlang >= R16B-03 is needed by rabbitmq-server-3.6.0-1.noarch  

上述错误信息显示安装失败,因为rabbigmq的依赖关系所导致,所以要忽略依赖,执行以下命令

[plain] view plain copy
  1. [root@iZ250x18mnzZ ~]# rpm -i --nodeps rabbitmq-server-3.6.0-1.noarch.rpm  

2.5.启停RabbitMQ

 我的用 rabbitmq-server  直接启动 直接成功没有下面的

官网提供启动方式
使用root用户启动和停止服务


[plain] view plain copy
  1. /sbin/service rabbitmq-server stop/start/etc.  
  2. [root@iZ250x18mnzZ ~]#service rabbitmq-server start  启动服务  
  3. [root@iZ250x18mnzZ ~]#service rabbitmq-server etc   查看哪些命令可以使用  
  4. [root@iZ250x18mnzZ ~]#service rabbitmq-server stop  停止服务  
  5. [root@iZ250x18mnzZ ~]#service rabbitmq-server status查看服务状态  
注:启动时,可能会出现附录中的错误,具体解决方案可参考。

2.6.添加rabbitmq到启动项

执行以下代码

[plain] view plain copy
  1. chkconfig rabbitmq-server on  

参考资料:http://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796873.html

2.7.RabbitMQ设置

从官网来看,RabbitMQ有两个配置文件,使用RPM方式安装:

RabbitMQ的根目录:/var/lib/rabbitmq
RabbitMQ的配置文件目录:/etc/rabbitmq/
RabbitMQ的日志文件目录:/var/log/rabbitmq
两个配置文件分别是:
rabbitmq.config 
rabbitmq-env.conf
RabbitMQ环境变量配置文件,变量名称及内容可参考:http://www.rabbitmq.com/configure.html#define-environment-variables 
配置在文件中的变量使用参考中的标准变量,但是需要将变量前缀RABBITMQ_去掉
官网中提到的关于变量的默认内容及含义可参考:http://www.rabbitmq.com/relocate.html 
配置文件相关资料:http://www.rabbitmq.com/configure.html#configuration-file

3.相关资料

1. 官网安装资料:http://www.rabbitmq.com/install-rpm.html
2. 参考安装资料:http://bbs.chinaunix.net/thread-4146675-1-1.html

4.附录

4.1. 启动失败

使用命令  service rabbitmq-server start 一直无法启动
Startup_err 中记录以下错误信息
[plain] view plain copy
  1. /usr/lib/rabbitmq/bin/rabbitmq-server: line 50: erl: command not found  
是因为环境变量不同,导致无法找到相应命令,按照指引
将erlang的erl软连接到/usr/bin目录下
[plain] view plain copy
  1. [root@iZ250x18mnzZ rabbitmq]# ln -s /usr/local/erlang/bin/erl /usr/bin/erl  
重新执行成功

发表评论