奥门新浦京官方网站Linux下给PHP安装amqp扩展

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

因为要走消息队列,需要在本地装ampq扩展,结果在装的过程中,报以下错误:

linux中ubuntu下手动编译php-amqp扩展详细教程 有需要了解的朋友可参考一下。

安装librabbitmq-c和rabbitmq-codegen

# 下载0-9-1版的rabbitmq-c
git clone git://github.com/alanxz/rabbitmq-c.git
cd rabbitmq-c
# Enable and update the codegen git submodule
git submodule init
git submodule update
# Configure, compile and install
autoreconf -i && ./configure && make && sudo make install
configure: error: Please reinstall the librabbitmq distribution itself or install librabbitmq development package if it available in your system

PHP官网的amqp模块介绍在此,我也不多介绍。下面进入重点的安装环节。

安装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

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

1、缺少libtool包

configure.ac: installing ./install-sh
configure.ac: installing ./missing
configure.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、如果还有其他问题,欢迎给我留言,我补上

找遍网络,下面这篇文章完美的解决的我的问题,在这转载一份备用。

用于ubuntu的默认源里面没有php5-amqp这个包,所以要用上amqp得考手动编译。

使用

<?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;
}
?>

这错误的原因是因为没有安装amqp的依赖包rabbitmq-c,需要先安装rabbitmq-c。

准备工作:

1.安装rabbitmq-c-0.7.1

没有安装就会提示上面的错误
下载地址:
我选择的是最新版本0.7.1

wget https://github.com/alanxz/rabbitmq-c/releases/download/v0.7.1/rabbitmq-c-0.7.1.tar.gztar zxf rabbitmq-c-0.7.1.tar.gz cd rabbitmq-c-0.7.1./configure --prefix=/usr/local/rabbitmq-c-0.7.1make && make install

成功之后看到如下界面

奥门新浦京官方网站 2

# 安装php编译工具

2.安装amqp

下载地址
我选择的是1.6.1

wget https://pecl.php.net/get/amqp-1.6.1.tgztar zxf amqp-1.6.1.tgzcd amqp-1.6.1 /usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config --with-amqp --with-librabbitmq-dir=/usr/local/rabbitmq-c-0.7.1

注意:这里的/usr/local/rabbitmq-c-0.7.1要跟上面rabbitmq-c安装的地址一样

make && make install

安装成功之后记录下面的地址,配置添加php模块的时候有用

奥门新浦京官方网站 3

sudo apt-get install php5-dev

3.添加php模块

vi /usr/local/php/etc/php.ini

最后添加一行

extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/amqp.so

重启php

service php-fpm restart

# 安装rabbitmq的库

4.检查amqp安装

用phpinfo来检查一下amqp是否安装成功

奥门新浦京官方网站 4

转载自:

sudo apt-get install librabbitmq-dev

然后如果你没有安装git话请安装一下git,因为我们要从官方的版本库中获取源代码

#克隆并准备好代码

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

git submodule update

# 编译扩展

autoreconf -i && ./configure && make && sudo make install

然后我们需要去下载php扩展的源代码,地址在此:

当前最新版本为1.0.7

wget

tar zxf amqp-1.0.7.tgz
cd amqp-1.0.7/

phpize && ./configure –with-amqp && make && sudo make install

# 创建配置文件

sudo echo “extension = amqp.so” > /etc/php5/conf.d/amqp.ini

然后重启你的web服务器或者php-fpm并打印phpinfo,如果见到以下的内容就说明扩展安装好了

有需要了解的朋友可参考一下。
PHP官网的amqp模块介绍在此,我也不多介绍。下面进入重点的安装…

发表评论

电子邮件地址不会被公开。 必填项已用*标注