安装php-amqplib(RabbitMQ的phpAPI)
历史经验告诉我们,装逼没有好下场。 总结一下之前composer安装php-amqplib包失败的原因: composer安装的时候需要指定PHP执行文件的位置:
PHP安装路径:/usr/local/php/bin/
composer 指定的PHP路径:/usr/local/bin/
因为composer指定的位置不是php的安装位置,因此我在/usr/local/bin下建立了php执行文件的硬连接!!!
这个创建的硬连接就是给自己挖的坑,如果创建的是软连接就不会如此麻烦。
因为这个硬连接是我在安装composer之前建立的。后来用composer安装amqplib包时提示缺少ext-bcmath扩展,所以我重新编译了php。
这样做的结果是重新编译的php和之前创建的硬连接php完全没有关系了,重新编译生成的php是一个新的inode,所以,这两个是完全不同的两个文件。
新编译的php中含有bcmath,原来的位于/usr/local/bin/下的php中则不含bcmath。
而composer指定的位置是指向/usr/local/bin/的,所以每次install的时候都是调取的/usr/lcoal/bin/下的php,因此就总是报缺少bcmath的信息。 如果之前不把bcmath编译到php内核中,而是编译成单独的bcmath.so文件,也不会出这样的问题。 装逼遭雷劈!
=============================以下是教训===================================
1.安装bcmath扩展
--enable-bcmath
2.在项目根目录创建composer.json:
{
"require":{
"php-amqplib/php-amqblib":"2.6.*"
}
}
3.# composer install
执行composer install 之后仍然提示bcmath扩展没有在系统中
在phpinfo中查看到bcmath已经成功加载,并编写了php脚本调用bcmath提供的函数,也正常运行
------------------------------以上方法在本人系统上失败(centos 7 minimal)-----------------------------------
尝试通过编译的方法来添加库
1.从下载的php源文件包中拷贝bcmath源文件
# cp -R php/ext/bcmath usr/local/php/include/php/ext
2.执行phpize(usr/local/php/bin),提示需要autoconf支持
3.安装autoconf
# yum install autoconf
4.重新执行phpize,自动生成了configure文件
# ./configure --with-php-config=/usr/local/php/bin/php-config
# make && make install
编译好的bcmath.so文件保存在/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/下
5.编辑php.ini
添加zend_extension=cal/php/lib/php/extensions/no-debug-non-zts-20131226/bcmath.so
6.重启php-fpm
# systemctl restart php-fpm
7.再次运行composer
# composer install
!!!!仍然提示需要bcmath扩展!!!!!完败!
安装php-amqplib(RabbitMQ的phpAPI)的更多相关文章
- centos 安装和配置 rabbitmq
centos 安装 rabbitmq 1.rabbitmq是erlang语言开发的,安装前首先需要安装erlang# yum install erlang -y // 直接安装可能报错,# yum i ...
- RabbitMQ消息队列系列教程(二)Windows下安装和部署RabbitMQ
摘要 本篇经验将和大家介绍Windows下安装和部署RabbitMQ消息队列服务器,希望对大家的工作和学习有所帮助! 目录 一.Erlang语言环境的搭建 二.RabbitMQ服务环境的搭建 三.Ra ...
- 如何安装和配置RabbitMQ
今天开始一个小小的练习,学习一下安装和配置RabbitMQ,为什么要学它,因为WCF可以完全兼容和使用RabbitMQ了.我们新的大数据系统需要使用消息队列,所以就开始研究一下,把它重新封装一下,更便 ...
- openstack--2--控制节点安装mysql和rabbitmq
生产中可以把mysql数据库单独安装到一台机器上,这里因为实验机器有限,就把mysql安装到了控制节点 其实openstack每个组件都可以安装到单独的机器上. RabbitMQ介绍 RabbitMQ ...
- 如何安装和配置RabbitMQ(转载)
如何安装和配置RabbitMQ 今天开始一个小小的练习,学习一下安装和配置RabbitMQ,为什么要学它,因为WCF可以完全兼容和使用RabbitMQ了.我们新的大数据系统需要使用消息队列,所以就开始 ...
- 20190418 CentOS7实用技能综合:系统安装 + WinScp客户端连接 + 防火墙端口号iptables + Nginx编译安装 + MySQL编译安装 + Redis编译安装 + MongoDB编译安装 + ActiveMQ/RocketMQ/RabbitMQ编译安装 + ...各类常用生产环境软件的编译安装
系统安装 + WinScp客户端连接 + 防火墙端口号iptables + Nginx编译安装 + MySQL编译安装 + Redis编译安装 + MongoDB编译安装 + ActiveMQ/Roc ...
- CentOS 安装最新的 RabbitMQ 3.7.8
RabbitMQ依赖Erlang,Erlang又依赖很多包,安装非常麻烦,可以如下操作: RabbitMQ在github上有提供新的erlang包(https://github.com/rabbitm ...
- airflow 安装配置celery+rabbitmq celery+redis
AirFlow的安装可以参考:https://www.cnblogs.com/braveym/p/11378851.html 这里介绍的是AirFlow 安装配置celery+rabbitmq 和 ...
- mac下安装并启动RabbitMQ
前言 RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件).RabbitMQ服务器是用Erlang语言编写的,而群集和故障转移是构建在开放电信平台框架上的 ...
随机推荐
- NSURLSession访问网络数据
1.NSMutableURLRequest的设置 //创建NSMutableURLRequest对象 NSMutableURLRequest *request = [NSMutableURLReque ...
- Java学习笔记,前两章总结
第一章 Java平台概论 1.Java不仅仅是个程序语言,代表解决问题的平台,代表了原厂.各个厂商.社群.开发者与用户沟通的成果. 2.Java三大平台,从J2SE.J2EE.J2ME到Java SE ...
- MonkeyTest简单实用介绍
什么是Monkeytest? monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕.滑动Trackball.按键灯操作来对设备上的程序进行压力测试,检测程序发 ...
- Java绘图
paintComponent(Graphics g)方法: 1.不调用super.paintComponent(g)的话,rePaint()的时候就会把你写的paintComponent中的内容绘制上 ...
- ES5和ES6中的继承 图解
Javascript中的继承一直是个比较麻烦的问题,prototype.constructor.__proto__在构造函数,实例和原型之间有的 复杂的关系,不仔细捋下很难记得牢固.ES6中又新增了c ...
- 第一次链接Azure,固定实例内部IP(DIP)
下载web pi 下载Azure powershell 打开 Poweshell ISE 输入 Get-AzurePublishSettingsFile -Environment "Azur ...
- vs2010问题:未能安装xxx包
打开vs2010新建c++工程,出现问题如图 原因是重复安装了,之前安装的没有删除干净,导致冲突. 如果你的vs2010安装在c盘,解决方法:http://blog.sina.com.cn/s/blo ...
- hibernate配置文件详细解析
在javaweb开发中,hibernate框架的是常用的,能帮我们节省大量的时间,以下是hibernate的配置文件解析. hibernate配置文件的默认名为:hibernate.cfg.xml 默 ...
- YbSoftwareFactory 代码生成插件【十四】:通过 DynamicLinq 简单实现 N-Tier 部署下的服务端数据库通用分页
YbSoftwareFactory 的 YbRapidSolution for WinForm 插件使用CSLA.NET作为业务层,CSLA.NET的一个强大的特性是支持 N-Tiers 部署.只需非 ...
- Card Flip
卡牌效果:O(∩_∩)O,只做了webkit浏览器的效果,请用chrome~ 1.首先呢,先用一个框框把卡牌包住,然后呢,搞两个子元素作为卡牌正反面.当然咯,反面是看不见滴~ <section ...