zoukankan      html  css  js  c++  java
  • 安装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扩展!!!!!完败!

  • 相关阅读:
    dfadfas
    Sqlserver修改文件目录,包括系统数据库
    VS2013 产品密钥所有版本
    win11 取消右键更多选项
    VS2013 产品密钥所有版本
    CronTrigger表达式
    C#语言Windows服务程序测试网站发送HTTP请求超时解决办法
    未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\705b2e0e\c6ba7a68\App_global.asax.v9
    SQL跨数据库复制表数据<转载>
    “服务器应用程序不可用”解决方法
  • 原文地址:https://www.cnblogs.com/mysic/p/5992510.html
Copyright © 2011-2022 走看看