为了账号安全,请及时绑定邮箱和手机立即绑定

Linux下给PHP安装amqp扩展

标签:
PHP

原文链接

本文介绍了在Linux下给PHP安装amqp扩展的过程,有需要的朋友可以关注一下。

安装librabbitmq-c和rabbitmq-codegen

# 下载0-9-1版的rabbitmq-cgit clone git://github.com/alanxz/rabbitmq-c.gitcd rabbitmq-c# Enable and update the codegen git submodulegit submodule init
git submodule update# Configure, compile and installautoreconf -i && ./configure && make && sudo make install

安装pecl扩展

#下载最新的amqp扩展wget http://pecl.php.net/get/amqp-1.0.9.tgz
tar xvzf amqp-1.0.9.tgz
cd amqp-1.0.9 && phpize
./configure --with-amqp && make && sudo make install

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

extension=amqp.so

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

1、缺少libtool包

configure.ac: installing ./install-sh
configure.ac: installing ./missingconfigure.ac:34: installing ./config.guess
configure.ac:34: installing ./config.sub
Makefile.am:3: Libtool library used but LIBTOOL is undefined
Makefile.am:3:
Makefile.am:3: The usual way to define LIBTOOL is to add AC_PROG_LIBTOOL
Makefile.am:3: to configure.ac and run aclocal and autoconf again.
Makefile.am: C objects in subdir but AM_PROG_CC_C_O not in configure.ac
Makefile.am: installing ./compile
Makefile.am: installing ./depcomp
autoreconf: automake failed with exit status: 1

解决办法,安装libtool,ubuntu:

sudo apt-get install libtool

其他系统类似

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

使用

<?php//配置信息$conn_args = array(    'host' => '127.0.0.1',    'port' => '5672',    'login' => 'guest',    'password' => 'guest',    'vhost'=>'/');//创建连接$conn = new AMQPConnection($conn_args);if (!$conn->connect()) {    die('Not connected  ' . PHP_EOL);
}// Open Channel$channel = new AMQPChannel($conn);// Declare exchange$exchange = new AMQPExchange($channel);
$exchange->setName('extest');
$exchange->setType('fanout');
$exchange->declare();// Create Queue$queue = new AMQPQueue($channel);
$queue->setName('qutest');
$queue->declare();// Bind it on the exchange to routing.key$exchange->bind('qutest', 'routing.key');
$data = array(    'Name' => 'foobar',    'Args'  => array("0", "1", "2", "3"),
);//生产者,向RabbitMQ发送消息$message = $exchange->publish(json_encode($data), 'key');if (!$message) {    echo 'Message not sent', PHP_EOL;
} else {    echo 'Message sent!', PHP_EOL;
}//消费者while ($envelope = $queue->get(AMQP_AUTOACK)) {    echo ($envelope->isRedelivery()) ? 'Redelivery' : 'New Message';    echo PHP_EOL;    echo $envelope->getBody(), PHP_EOL;
}?>


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消