码迷,mamicode.com
首页 > 其他好文 > 详细

centos7 安装rabbitmq rabbitmq-c以及amqp扩展 详细篇

时间:2018-05-01 12:29:05      阅读:3243      评论:0      收藏:0      [点我收藏+]

标签:nod   完成   manage   overflow   bin   执行   目录   文件的   机器   

自己鼓捣了一晚上总算整明白了,有几个坑分享给小伙伴,希望能帮到你(前提你已经安装了Erlang

1.安装rabbitmq-server 服务篇

下载rabbitmq rpm包地址:http://www.rabbitmq.com/download.html

技术分享图片

 

根据你自己的情况,选择版本下载

技术分享图片

开始安装

yum install rabbitmq-server-3.7.4-1.el7.noarch.rpm

进入安装目录

技术分享图片

 

 

./rabbitmq-server #即可开启服务

#开启远程访问 执行 .
/rabbitmq-plugins enable rabbitmq_management

 

 

2.安装rabbitmq-c

要安装amqp之前需要先安装rabbitmq-c扩展

下载地址:https://github.com/alanxz/rabbitmq-c/releases

技术分享图片技术分享图片

tar -zxvf rabbitmq-c-0.8.0.tar.gz
cd rabbitmq-c-0.8.0

技术分享图片

 

#这一步是在rabbitmq-c的根目录下创建一个build子目录
mkdir build && cd build

# 这一步是让cmake根据../CMakeList.txt,即rabbitmq-c的根目录下的CMakeList.txt创建Makefile文件
# Makefile文件会被创建到build目录中
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/rabbitmq-c ..

# 这一步是真正的build rabbitmq-c库的,注意,不要漏掉点 .
cmake --build .  --target install

如果找不到cmake命令 就先安装cmake
yum install camke

 

到这里就已经安装完成了。不过这里有一个坑。你可以看一下/usr/local/rabbitmq-c下的目录只有includelib64。因为后面编译安装amqp扩展的时候系统会到/usr/local/rabbitmq-c/lib目录下搜索依赖库,导致错误。所以这里需要加一步:(这里引用了https://segmentfault.com/a/1190000012348103)

 

ln -s lib64 lib

 

技术分享图片

 

 

 

3.安装amqp扩展

去pecl下载amqp包

技术分享图片

 

技术分享图片

解压进入目录

没有configure文件 需要先执行

phpize(没有全局 就写绝对路径)

./configure --with-php-config=/usr/local/php/bin/php-config --with-amqp --with-librabbitmq-dir=/usr/local/rabbitmq-c
make && make install

修改php.ini文件

vi /usr/local/php/etc/php.ini
添加 extension=amqp.so

 

遇到的坑:

1.

技术分享图片

 

rabbitmq从3.3.0开始禁止使用guest/guest权限通过除localhost外的访问

解决办法:

如果想使用guest/guest通过远程机器访问,需要在rabbitmq配置文件中(找到/rabbitmq_server-3.6.14/ebin下面的rabbit.app文件)中设置 

 

{loopback_users, [<<"guest">>]},
改为
{loopback_users, []},

 

然后重启 
systemctl restart rabbitmq-server

2. 启动服务时可能会报这样的错误

 

# /sbin/systemctl start rabbitmq-server
Starting rabbitmq-server (via systemctl):  Job for rabbitmq-server.service failed because the control process exited with error code. See "systemctl status rabbitmq-server.service" and "journalctl -xe" for details.

 

解决办法:参考地址http://stackoverflow.com/questions/8633882/rabbitmq-on-ubuntu-10-04-server

 

# vi /etc/rabbitmq/rabbitmq-env.conf  
  
NODENAME=rabbit@localhost 

 

rabbitmq默认是没有rabbitmq.config(参考http://www.rabbitmq.com/configure.html#config-items) 和 rabbitmq-env.conf(参考http://www.rabbitmq.com/configure.html#define-environment-variables)文件的 需要自行创建

 

centos7 安装rabbitmq rabbitmq-c以及amqp扩展 详细篇

标签:nod   完成   manage   overflow   bin   执行   目录   文件的   机器   

原文地址:https://www.cnblogs.com/88phper/p/8975771.html

(0)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!