centos7 安装rabbitmq rabbitmq-c以及amqp扩展 详细篇
自己鼓捣了一晚上总算整明白了,有几个坑分享给小伙伴,希望能帮到你
前期准备 安装erlang
下载rpm包地址:https://github.com/rabbitmq/erlang-rpm (注意erlang版本 我下的rabbitmq版本是3.74需要erlang版本>=19.3)
百度链接:https://pan.baidu.com/s/1KXeDKliMtOo0EHVgfKc1nA 密码:icnf
遇到了点坑:之前是yum和源码便宜安装erlang都失败导致在安装上面的rpm包时一直不成功,可以执行rpm -qa | grep erlang来查看安装了哪些包,然后执行yum remove 包名卸载即可
1.安装rabbitmq-server 服务篇
下载rabbitmq rpm包地址:http://www.rabbitmq.com/download.html 百度盘链接:https://pan.baidu.com/s/1Q6KKSuBmEW-fPz1-BvCD4w 密码:m1dy
根据你自己的情况,选择版本下载
开始安装
yum install rabbitmq-server-3.7.-.el7.noarch.rpm
进入安装目录
./rabbitmq-server #即可开启服务 #有些时候会报这样的错误ERROR: node with name "rabbit" already running
ps -aux | grep erl
kill掉rabbitmq相关进程就好了
#开启远程访问 执行
./rabbitmq-plugins enable rabbitmq_management
开启守护进程链接:http://www.fidding.me/article/67
2.安装rabbitmq-c
要安装amqp之前需要先安装rabbitmq-c扩展
下载地址:https://github.com/alanxz/rabbitmq-c/releases 百度盘链接:https://pan.baidu.com/s/1znRBtJydza93Ms4Kg2sRFQ 密码:f60y
tar -zxvf rabbitmq-c-0.8..tar.gz
cd rabbitmq-c-0.8.
#这一步是在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下的目录只有include
和lib64
。因为后面编译安装amqp扩展的时候系统会到/usr/local/rabbitmq-c/lib目录下搜索依赖库,导致错误。所以这里需要加一步:(这里引用了https://segmentfault.com/a/1190000012348103)
ln -s lib64 lib
3.安装amqp扩展
去pecl下载amqp包 地址:http://pecl.php.net/package/amqp 百度盘链接:https://pan.baidu.com/s/1A7KDZ42lONFzaTFyCskxaQ 密码:sz9z
解压进入目录
没有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)文件的 需要自行创建
最新文章
- iOS开发之SQLite-C语言接口规范(一)——Ready And Open Your SQLite
- 每个程序员都会的 35 个 jQuery 小技巧
- socketAPI:一个最简单的服务器和对应的客户端C语言的实现
- linux学习笔记1-ubuntu的安装与基本设置
- 远程桌面Default.rdp 中各个参数的含义
- 环信SDK与Apple Watch的结合(1)
- REST client 基于浏览器的测试工具
- HDOJ 1214 圆桌会议
- html 格式的email 编辑
- Python的迭代器与生成器
- CentOS6.x机器安装Python2.7.x
- Django 如何让ajax的POST方法带上CSRF令牌
- vue:vuex中mapState、mapGetters、mapActions辅助函数及Module的使用
- mysql存储过程或函数中传入参数与表字段名相同引发的悲剧
- AndroidStudio使用偷懒插件Butterknife和GsonFormat
- 【敏捷】7.showcase,开发中必须引起重视的小环节
- [buaa-SE-2017]个人作业-回顾
- Android之布局属性归纳
- 十六 web爬虫讲解2—PhantomJS虚拟浏览器+selenium模块操作PhantomJS
- Spring中如何向 Bean注入系统属性或环境变量