AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。Erlang中的实现有 RabbitMQ等。

主要是两个包
    1.rabbitmq-c的包
    2.amqp的包

1、下载
    首先是rabbitmq-c-0.5.2.tar.gz包,可以访问https://github.com/alanxz/rabbitmq-c去下载

wget https://github.com/alanxz/rabbitmq-c/releases/download/v0.5.2/rabbitmq-c-0.5.2.tar.gz

  附上我下载好的rabbitmq-c-0.5.2.tar.gz  点击下载

  然后下载amqp-1.9.1.tgz,也可以去下载最新的http://pecl.php.net/package/amqp

wget http://pecl.php.net/get/amqp-1.9.1.tgz

2、安装
    1.先把两个包全都解压

tar zxvf rabbitmq-c-0.5.2.tar.gz
tar zxvf amqp-1.9.1.tgz

两个是有先后顺序的
    
    2.安装rabbitmq-c-0.5.2

cd rabbitmq-c-0.5.2
./configure --prefix=/usr/local/rabbitmq-c-0.5.2

之后会有输出如下:

rabbitmq-c build options:
Host: x86_64-unknown-linux-gnu
Version: 0.5.2
SSL/TLS: openssl
Tools: yes
Documentation: no
Examples: yes

安装

make && make install    

如果不知道安装成功与否,可以每一步都用echo $?检查,显示0为正常
    
    3.安装amqp-1.9.1

  phpize命令在安装AMQP插件是报错phpize:Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF envir的解决方法

cd /usr/src && wget http://ftp.gnu.org/gnu/m4/m4-1.4.9.tar.gz
tar -zvxf m4-1.4.9.tar.gz # cd m4-1.4.9/
./configure && make && make install # cd ../
wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.62.tar.gz
tar -zvxf autoconf-2.62.tar.gz
cd autoconf-2.62/
./configure && make && make install 或者:
yum install -y m4 autoconf
cd amqp-1.9.1
phpize

执行完phpize命令后你应该看到类似下边的内容

Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 220100525   

一般安装完PHP都会有这个命令,要是没有这个命令的话需要安装一下:yum install php-devel
    用find / -name phpize查找命令路径

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

PS:--with-php-config=/usr/bin/php-config  这个php-config根据你装的php而定,要是找不到请用find / -name php-config查找
    --with-librabbitmq-dir=/usr/local/rabbitmq-c-0.5.2/  这个是指定你安装的rabbitmq-c的目录,我安装的是/usr/local/rabbitmq-c-0.5.2/因为在安装rabbitmq-c的时候我自己指定了安装目录了.

make && make install

安装完成最后一行会输出:
        Installing shared extensions:     /usr/lib64/php/modules/
        以上是正常情况下,要是你自己编译的php,那么他会提示你别的路径,此时你需要找到这个路径里边的amqp.so文件,将他拷贝到/usr/lib64/php/modules/下.
        
    4.编辑php.ini文件添加一下内容

[rabbitmq]
extension=amqp.so
extension_dir = "/usr/lib64/php/modules/"

重启php-fpm即可。
        
3、测试安装是否成功
    
    php测试脚本
    php测试rabbitmq的php扩展插件脚本

<?php
$cnn = new AMQPConnection();
$cnn->setHost('127.0.0.1');
$cnn->setLogin('guest');
$cnn->setPassword('guest');
if($cnn->connect()){
echo '连接成功';
}
?>

configure: error: Cannot find php-config. Please use --with-php-config=PATH 错误的解决方案

find / type f -name "php-config"
/usr/local/php/bin/php-config #使用这个路径

安装完PHP没有php.ini文件

find / -type f -name "php.ini-production"
/tools/php-7.1.9/php.ini-production
cp /tools/php-7.1.9/php.ini-production /etc/php.ini

CentOS下安装PHP的AMQP扩展方法和步骤的更多相关文章

  1. linux(centos)下安装PHP的PDO扩展

    PHP 数据对象PDO扩展为PHP访问数据库定义了一个轻量级的一致接口.PDO 提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据.最近在我们的建站和O ...

  2. CentOS下安装JDK的三种方法

    方法一:手动解压JDK的压缩包,然后设置环境变量 1.在/usr/目录下创建java目录 [root@localhost ~]# mkdir/usr/java[root@localhost ~]# c ...

  3. CentOS下安装php的mbstring扩展

    php的mbstring扩展如果没有安装会导致一些问题: 例1:登陆phpMyAdmin的时候会提示没字符串编码和字符串处理库 php_mbstring,有些程序中会用到mb_substr函数没有ph ...

  4. Centos下安装PHP ldap扩展

    Centos下安装PHP ldap扩展,有两种方法,仅供参考. 一.在线安装 执行下面命令: 1 yum install PHP-ldap 可能出现的问题: Error: php70w-common- ...

  5. centos下安装php环境

    centos下安装php环境 安装apache yum install httpd-devel 启动apache /etc/init.d/httpd start 安装mysql yum install ...

  6. CentOS下安装pip

    CentOS下安装pip 通常情况下使用命令: yum -y install pip 也有可能报错,无法安装.这是应该使用第二种方法. 1.首先需要先安装扩展源EPEL: yum -y install ...

  7. Centos下安装mysql 总结

    一.MySQL安装 Centos下安装mysql 请点开:http://www.centoscn.com/CentosServer/sql/2013/0817/1285.html 二.MySQL的几个 ...

  8. centos下安装xfce+vnc

    首先安装桌面环境,我选择的是xfce,轻量级桌面,小巧实用不占太多内存,(占用内存方面,xfce少于kde,kde少于gnome). 安装xfce桌面一开始我以为第三方的软件源如rpmforge等应该 ...

  9. Centos 下安装MongoDB

    Centos 下安装MongoDB 一.安装方法 方法(一) 1  配置包管理系统 创建/etc/yum.repos.d/mongodb.repo 文件,当然我们使用的是64位系统,32位的情况不再考 ...

随机推荐

  1. JS的事件流的概念

    事件的概念: HTML中与javascript交互是通过事件驱动来实现的,例如鼠标点击事件.页面的滚动事件onscroll等等,可以向文档或者文档中的元素添加事件侦听器来预订事件.想要知道这些事件是在 ...

  2. CentOS7.6安装稳定版Nginx

    官网地址:http://nginx.org/en/linux_packages.html#RHEL-CentOS 需先安装依赖:sudo yum install -y yum-utils 安装开始: ...

  3. Linux下编译、安装并启动memcached

    首先使用yum安装gcc make.autoconf.libtool系列工具,这几个工具是编译所需要的,命令如下: yum install gcc make autoconf libtool 然后到l ...

  4. 【LUA table 移除操作非常慢】

    LUA的表有插入和删除两种操作.插入操作非常快,100000次操作都在0.01S左右,而删除操作在表元素大于10000时却急速变慢,测试如下: t = {} local t1= os.clock() ...

  5. 前面部分(WCF全面解析1)

    WCF全面解析 [同力推荐] 我经历了COM时代,一直把Don BOx的<COM本质论>奉为我的指路明灯.能把SOA机理和WCF这种特定厂商实现的技术讲得如<COM本质论>一样 ...

  6. SQL select 执行顺序

    一.sql语句的执行步骤:1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义.2)语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限.3)视图转换,将涉及视图的查询语 ...

  7. Perl 变量:数组变量

    Perl 数组Perl 数组一个是存储标量值的列表变量,变量可以是不同类型.数组变量以 @ 开头.访问数组元素使用 $ + 变量名称 + [索引值] 格式来读取. 1.创建列表.数组1.数组变量以 @ ...

  8. 解剖Nginx·自动脚本篇(2)设置初始变量脚本 auto/init

    在configure中运行完auto/options脚本后,接着运行auto/init脚本,其中所做的工作如下. 1 Makefile文件名变量 默认情况下是: objs/Makefile 代码如下: ...

  9. 解剖Nginx·模块开发篇(3)ngx_http_hello_world_module 模块的基本函数实现

    还记得我们定义过一个结构体如下吗? typedef struct { ngx_str_t output_words; } ngx_http_hello_world_loc_conf_t; 它就是 He ...

  10. cannot import name '_validate_lengths' from 'numpy.lib.arraypad'

    在Anaconda下新配置了tensorflow环境,结果在引入skimage 包时报错,错误提示from numpy.lib.arraypad import _validate_lengths,找不 ...