历史经验告诉我们,装逼没有好下场。

总结一下之前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)的更多相关文章

  1. centos 安装和配置 rabbitmq

    centos 安装 rabbitmq 1.rabbitmq是erlang语言开发的,安装前首先需要安装erlang# yum install erlang -y // 直接安装可能报错,# yum i ...

  2. RabbitMQ消息队列系列教程(二)Windows下安装和部署RabbitMQ

    摘要 本篇经验将和大家介绍Windows下安装和部署RabbitMQ消息队列服务器,希望对大家的工作和学习有所帮助! 目录 一.Erlang语言环境的搭建 二.RabbitMQ服务环境的搭建 三.Ra ...

  3. 如何安装和配置RabbitMQ

    今天开始一个小小的练习,学习一下安装和配置RabbitMQ,为什么要学它,因为WCF可以完全兼容和使用RabbitMQ了.我们新的大数据系统需要使用消息队列,所以就开始研究一下,把它重新封装一下,更便 ...

  4. openstack--2--控制节点安装mysql和rabbitmq

    生产中可以把mysql数据库单独安装到一台机器上,这里因为实验机器有限,就把mysql安装到了控制节点 其实openstack每个组件都可以安装到单独的机器上. RabbitMQ介绍 RabbitMQ ...

  5. 如何安装和配置RabbitMQ(转载)

    如何安装和配置RabbitMQ 今天开始一个小小的练习,学习一下安装和配置RabbitMQ,为什么要学它,因为WCF可以完全兼容和使用RabbitMQ了.我们新的大数据系统需要使用消息队列,所以就开始 ...

  6. 20190418 CentOS7实用技能综合:系统安装 + WinScp客户端连接 + 防火墙端口号iptables + Nginx编译安装 + MySQL编译安装 + Redis编译安装 + MongoDB编译安装 + ActiveMQ/RocketMQ/RabbitMQ编译安装 + ...各类常用生产环境软件的编译安装

    系统安装 + WinScp客户端连接 + 防火墙端口号iptables + Nginx编译安装 + MySQL编译安装 + Redis编译安装 + MongoDB编译安装 + ActiveMQ/Roc ...

  7. CentOS 安装最新的 RabbitMQ 3.7.8

    RabbitMQ依赖Erlang,Erlang又依赖很多包,安装非常麻烦,可以如下操作: RabbitMQ在github上有提供新的erlang包(https://github.com/rabbitm ...

  8. airflow 安装配置celery+rabbitmq celery+redis

    AirFlow的安装可以参考:https://www.cnblogs.com/braveym/p/11378851.html 这里介绍的是AirFlow 安装配置celery+rabbitmq   和 ...

  9. mac下安装并启动RabbitMQ

    前言   RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件).RabbitMQ服务器是用Erlang语言编写的,而群集和故障转移是构建在开放电信平台框架上的 ...

随机推荐

  1. [原创] [YCM] YouCompleteMe安装完全指南

    因为实在实在受不鸟ctags了: 代码中有很多类具有相同名字的变量, 比如 "id". 当我想看下当前的这个 "id" 到底是哪个id的时候, 可怕的事情粗线了 ...

  2. Windows下使用VisualSVN Server搭建SVN服务器

    使用 VisualSVN Server来实现主要的 SVN功能则要比使用原始的 SVN和 Apache相配合来实现源代码的 SVN管理简单的多,下面就看看详细的说明. VisualSVN Server ...

  3. H5新特性 input type=date 在手机上默认提示显示无效解决办法

    目前PC端对input 的date类型支持不好,我试下来的结果是只有chrome支持.firefox.IE11 都不支持.而且PC端有很多日历控件可供使用.就不去多考虑这点了. 那么在移动端的话,io ...

  4. 6周学习计划,攻克JavaScript难关(React/Redux/ES6 etc.)

    作者:余博伦链接:https://zhuanlan.zhihu.com/p/23412169来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 和大家一样,最近我也看了Jo ...

  5. 多线程中共享变量——CCF总决赛试题

    题目要求 数据格式 Q 系统的输入为纯文本格式的文件,由若干行组成,每一行由城市编号.年龄.收入组成,相邻两项之间用一个空格分隔.以下是输入的一个片段: 1001 20 12000 1001 50 2 ...

  6. ajaxfileupload 传参数

    引用:http://www.cnblogs.com/lyeo/archive/2012/05/11/2496261.html 直接上代码: var data = { name: 'my name', ...

  7. JSON对象长度和遍历方法

    摘自博客 (http://caibaojian.com/json-length.html) 原文链接:http://caibaojian.com/json-length.html JSON数组有长度j ...

  8. photoshop学习入门:选择和处理

    昨天花了一天时间看了李涛的视频<高手之路>入门的24集,累得连写工作日报的力气都没了,19点就睡.今天4点起来,补一下记录. photoshop是个位图处理工具(别的花里胡哨的功能忽略)— ...

  9. IE9浏览器中的My97日历控件刷新后无法打开问题解决办法

    解决办法如下: 1:找到WdatePicker.js 2:将$crossFrame:true 改为$crossFrame:false. 3:重启服务,刷新页面发现OK.

  10. vs加js引用

    今天又有一个同事问我“在VS中如何让一个JS文件智能提示另一个JS文件中的成员”,他说Google了一下,并没有找到答案,然后我把这个小技巧贴出来,希望能被Google到. 有时候会有这种情况:当我的 ...