安装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语言编写的,而群集和故障转移是构建在开放电信平台框架上的 ...
随机推荐
- Android下安装应用不成功解决
在手机上安装应用程序不成功,可以尝试把手机连接电脑,然后使用adb进行安装,adb安装命令: adb install Android_65632.apk 当出现: success!就表示成功,但当不成 ...
- Cen0S下挂载设备
在CentOS中,如果我们要查看光驱,U盘或者要把安装包挂载到某个文件夹,我写下我的一些理解. 所谓的挂载,就是把物理设备或者文件(包含安装文件,压缩包等等),与系统中的某个目录建立一个快捷方式,然后 ...
- 可爱的Python_课后习题_CDay−3 通过函式进行功能化
1. 读取某一简单索引文件cdays−3-test.txt,其每行格式为:文档序号关键词,现须根据这些信息将它转化为倒排索引,即统计关键词在哪些文档中,格式如下:包含该关键词的文档数关键词 => ...
- (转)对比MS Test与NUnit Test框架
前言: 项目中进行Unit Test时,肯定会用到框架,因为这样能够更快捷.方便的进行测试. .Net环境下的测试框架非常多,在这里只是对MS Test和NUnit Test进行一下比较, 因为这两个 ...
- C# Word生成PDF
//Word转换成pdf /// <summary> /// 把Word文件转换成为PDF格式文件 /// </summary> /// <param name=&quo ...
- JavaMail发送邮件的小程序
首先加入jar包javax.mail.jar package com.tideway.javamail; import java.util.ArrayList; import java.util.Da ...
- java 日期转时间戳,时间戳转为日期
package date; import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Dat ...
- <table>标签隐藏内边框与外边框
属性名称 属性值 说明 frame void 不显示表格的 ...
- Windows Phone 十六、HttpClient
HttpClient 对象也可以实现网络请求 相对于 HttpWebRequest 对象来说,HttpClient 操作更简单,功能更强大 HttpClient 提供一系列比较简单的API来实现基本的 ...
- UIDatePicker日期选取器
//定义显示日期的格式 NSDateFormatter *dateFormat = [[NSDateFormatter alloc]init]; //NSDateFormatterMediumStyl ...