• CentOS下安装PHP的AMQP扩展方法和步骤


    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
  • 相关阅读:
    C# 程序不包含适合于入口点的静态 "Main" 方法
    Sql Prompt下载及安装破解图文教程
    DataGridView列值值输入非法就屏蔽,例如数字列不允许输入中文
    C#用DataTable实现Group by数据统计
    oracle 11g 出现的问题及解决办法
    数据库三大范式的理解
    Linux进程间通信(管道及有名管道FIFO)(转)
    Linux进程间通信(信号量,共享内存)(转)
    JAVA面向对象基础
    JAVA数据类型基础
  • 原文地址:https://www.cnblogs.com/jie-fang/p/7885924.html
Copyright © 2020-2023  润新知