UDN-企业互联网技术人气社区

板块导航

浏览  : 1323
回复  : 0

[运维] Linux下给PHP安装amqp扩展

[复制链接]
呵呵燕的头像 楼主
发表于 2016-10-2 21:47:33 | 显示全部楼层 |阅读模式
  本文介绍了在Linux下给PHP安装amqp扩展的过程,有需要的朋友可以关注一下。

  安装librabbitmq-c和rabbitmq-codegen

  1.   # 下载0-9-1版的rabbitmq-c

  2.   git clone git://github.com/alanxz/rabbitmq-c.git

  3.   cd rabbitmq-c

  4.   # Enable and update the codegen git submodule

  5.   git submodule init

  6.   git submodule update

  7.   # Configure, compile and install

  8.   autoreconf -i && ./configure && make && sudo make install
复制代码


  安装pecl扩展

  1.   #下载最新的amqp扩展

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

  3.   tar xvzf amqp-1.0.9.tgz

  4.   cd amqp-1.0.9 && phpize

  5.   ./configure --with-amqp && make && sudo make install
复制代码


  记得在php.ini中加入amqp扩展:

  
  1. extension=amqp.so
复制代码

  安装过程中可能会遇到的问题

  1、缺少libtool包

 
  1.  configure.ac: installing ./install-sh

  2.   configure.ac: installing ./missing

  3.   configure.ac:34: installing ./config.guess

  4.   configure.ac:34: installing ./config.sub

  5.   Makefile.am:3: Libtool library used but LIBTOOL is undefined

  6.   Makefile.am:3:

  7.   Makefile.am:3: The usual way to define LIBTOOL is to add AC_PROG_LIBTOOL

  8.   Makefile.am:3: to configure.ac and run aclocal and autoconf again.

  9.   Makefile.am: C objects in subdir but AM_PROG_CC_C_O not in configure.ac

  10.   Makefile.am: installing ./compile

  11.   Makefile.am: installing ./depcomp

  12.   autoreconf: automake failed with exit status: 1
复制代码


  解决办法,安装libtool,ubuntu:

 
  1.  sudo apt-get install libtool
复制代码

  其他系统类似

  2、如果还有其他问题,欢迎给我留言,我补上

  使用


  1.   //配置信息

  2.   $conn_args = array(

  3.   'host' => '127.0.0.1',

  4.   'port' => '5672',

  5.   'login' => 'guest',

  6.   'password' => 'guest',

  7.   'vhost'=>'/'

  8.   );

  9.   //创建连接

  10.   $conn = new AMQPConnection($conn_args);

  11.   if (!$conn->connect()) {

  12.   die('Not connected


  13. ' . PHP_EOL);

  14.   }

  15.   // Open Channel

  16.   $channel = new AMQPChannel($conn);

  17.   // Declare exchange

  18.   $exchange = new AMQPExchange($channel);

  19.   $exchange->setName('extest');

  20.   $exchange->setType('fanout');

  21.   $exchange->declare();

  22.   // Create Queue

  23.   $queue = new AMQPQueue($channel);

  24.   $queue->setName('qutest');

  25.   $queue->declare();

  26.   // Bind it on the exchange to routing.key

  27.   $exchange->bind('qutest', 'routing.key');

  28.   $data = array(

  29.   'Name' => 'foobar',

  30.   'Args' => array("0", "1", "2", "3"),

  31.   );

  32.   //生产者,向RabbitMQ发送消息

  33.   $message = $exchange->publish(json_encode($data), 'key');

  34.   if (!$message) {

  35.   echo 'Message not sent', PHP_EOL;

  36.   } else {

  37.   echo 'Message sent!', PHP_EOL;

  38.   }

  39.   //消费者

  40.   while ($envelope = $queue->get(AMQP_AUTOACK)) {

  41.   echo ($envelope->isRedelivery()) ? 'Redelivery' : 'New Message';

  42.   echo PHP_EOL;

  43.   echo $envelope->getBody(), PHP_EOL;

  44.   }

  45.   ?>
复制代码


原文作者:佚名  来源:开发者头条

相关帖子

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部