php 通过 PECL 安装 AMQP
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/9520914/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Installing AMQP through PECL
提问by managedheap84
I'm trying to install the RabbitMQ PECL extensionbut after running
我正在尝试安装RabbitMQ PECL 扩展,但在运行后
sudo pecl install amqp
I get the following cryptic error message, which extensive googling hasn't helped resolve.
我收到以下神秘的错误消息,大量的谷歌搜索没有帮助解决。
I have these packages installed:
我安装了这些软件包:
- librabbitmq - RabbitMQ C client itself)
- librabbitmq-dev - dev headers etc.
- librabbitmq - RabbitMQ C 客户端本身)
- librabbitmq-dev - 开发头文件等。
and RabbitMQ running successfully on localhost
和 RabbitMQ 在本地主机上成功运行
Maybe it could be a mismatch in the version of the C client and what the PECL extension expects, anybody else come across this one?
也许这可能是 C 客户端的版本与 PECL 扩展所期望的不匹配,还有其他人遇到过这个吗?
Make output below....
在下面输出....
Cheers
干杯
running: make
/bin/bash /tmp/pear/temp/pear-build-rootZNUmac/amqp-1.0.0/libtool --mode=compile cc -I. -I/tmp/pear/temp/amqp -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-rootZNUmac/amqp- 1.0.0/include -I/tmp/pear/temp/pear-build-rootZNUmac/amqp-1.0.0/main -I/tmp/pear/temp/amqp - I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM - I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib - D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/temp/amqp/amqp.c -o amqp.lo
libtool: compile: cc -I. -I/tmp/pear/temp/amqp -DPHP_ATOM_INC -I/tmp/pear/temp/pear- build-rootZNUmac/amqp-1.0.0/include -I/tmp/pear/temp/pear-build-rootZNUmac/amqp-1.0.0/main - I/tmp/pear/temp/amqp -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM - I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib - D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/temp/amqp/amqp.c -fPIC -DPIC -o .libs/amqp.o
/bin/bash /tmp/pear/temp/pear-build-rootZNUmac/amqp-1.0.0/libtool --mode=compile cc -I. -I/tmp/pear/temp/amqp -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-rootZNUmac/amqp- 1.0.0/include -I/tmp/pear/temp/pear-build-rootZNUmac/amqp-1.0.0/main -I/tmp/pear/temp/amqp - I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM - I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib - D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/temp/amqp/amqp_exchange.c -o amqp_exchange.lo
libtool: compile: cc -I. -I/tmp/pear/temp/amqp -DPHP_ATOM_INC -I/tmp/pear/temp/pear- build-rootZNUmac/amqp-1.0.0/include -I/tmp/pear/temp/pear-build-rootZNUmac/amqp-1.0.0/main - I/tmp/pear/temp/amqp -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM - I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib - D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/temp/amqp/amqp_exchange.c -fPIC -DPIC -o .libs/amqp_exchange.o
/bin/bash /tmp/pear/temp/pear-build-rootZNUmac/amqp-1.0.0/libtool --mode=compile cc -I. -I/tmp/pear/temp/amqp -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-rootZNUmac/amqp- 1.0.0/include -I/tmp/pear/temp/pear-build-rootZNUmac/amqp-1.0.0/main -I/tmp/pear/temp/amqp - I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM - I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib - D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/temp/amqp/amqp_queue.c -o amqp_queue.lo
libtool: compile: cc -I. -I/tmp/pear/temp/amqp -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-rootZNUmac/amqp-1.0.0/include -I/tmp/pear/temp/pear-build-rootZNUmac/amqp-1.0.0/main - I/tmp/pear/temp/amqp -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM - I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib - D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/temp/amqp/amqp_queue.c -fPIC -DPIC -o .libs/amqp_queue.o
/tmp/pear/temp/amqp/amqp_queue.c: In function 'read_message_from_channel':
/tmp/pear/temp/amqp/amqp_queue.c:316:11: error: 'AMQP_FIELD_KIND_U64' undeclared (first use in this function)
/tmp/pear/temp/amqp/amqp_queue.c:316:11: note: each undeclared identifier is reported only once for each function it appears in
/tmp/pear/temp/amqp/amqp_queue.c: In function 'zim_amqp_queue_class_nack':
/tmp/pear/temp/amqp/amqp_queue.c:1020:2: error: unknown type name 'amqp_basic_nack_t'
/tmp/pear/temp/amqp/amqp_queue.c:1039:3: error: request for member 'delivery_tag' in something not a structure or union
/tmp/pear/temp/amqp/amqp_queue.c:1040:3: error: request for member 'multiple' in something not a structure or union
/tmp/pear/temp/amqp/amqp_queue.c:1041:3: error: request for member 'requeue' in something not a structure or union
/tmp/pear/temp/amqp/amqp_queue.c:1046:3: error: 'AMQP_BASIC_NACK_METHOD' undeclared (first use in this function)
make: *** [amqp_queue.lo] Error 1
ERROR: `make' failed
采纳答案by Easen
It looks like the PECL extension is newer than the the libraries that you have got installed. Install RabbitMQ directly from the their website, using their packages and not the ones that have come with your distribution as they seems to be out of date.
看起来 PECL 扩展比您安装的库更新。直接从他们的网站安装 RabbitMQ,使用他们的包而不是你的发行版附带的包,因为它们似乎已经过时了。
回答by Aykut ?evik
I had to install it applying following steps found here:
我必须按照此处找到的以下步骤安装它:
# Download the rabbitmq-c library @ version 0-9-1
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
After that, sudo pecl install amqp
did the work.
之后,sudo pecl install amqp
做功课。
Using Ubuntu 12.10 with PHP 5.4.3.
使用 Ubuntu 12.10 和 PHP 5.4.3。
回答by jgueron
this is what I did to install it successfully on debian wheezy:
这是我在 debian wheezy 上成功安装它所做的:
apt-get install pkg-config librabbitmq-dev librabbitmq0
git clone https://github.com/alanxz/rabbitmq-c
cd rabbitmq-c/
autoreconf -i
./configure
make
make install
pecl install amqp
回答by Przemek Czerkas
This is what I did to install it successfully on debian wheezy: I had to use version 0.5.2 of rabbitmq-c
这是我在 debian wheezy 上成功安装它所做的:我必须使用 rabbitmq-c 的 0.5.2 版
git clone https://github.com/alanxz/rabbitmq-c
cd rabbitmq-c
git checkout tags/v0.5.2
git submodule init
git submodule update
autoreconf -i && ./configure && make && make install
pecl install amqp
回答by Thomas Decaux
The dev lib from repo is broken (as usually....). You have to clone (from GIT or HG) and make the lib, from php.net :
来自 repo 的开发库已损坏(通常......)。您必须克隆(从 GIT 或 HG)并从 php.net 制作 lib:
hg clone http://hg.rabbitmq.com/rabbitmq-c/rev/b01825ecc112 rabbitmq-c
cd rabbitmq-c
# Add the codegen requirement. To find the full list, go here: http://hg.rabbitmq.com/rabbitmq-codegen/tags
# and copy the URL for the appropriate broker version.
hg clone http://hg.rabbitmq.com/rabbitmq-codegen/rev/16bbcb711380 codegen
# Configure, compile and install
autoreconf -i && ./configure && make && sudo make install
Then run "pecl install amqp", worked in my ubuntu 12 with Php 5.3
然后运行“pecl install amqp”,在我的 ubuntu 12 中使用 Php 5.3
回答by Muatik
This is because your rabbitmq is older than the version the php extension requires.
这是因为您的 rabbitmq 比 php 扩展所需的版本旧。
You can install newer version of rabbitmq or lower version of the extension like:
您可以安装较新版本的 rabbitmq 或较低版本的扩展程序,例如:
pecl install amqp-1.2.0
But I think using latest versions is better choice.
但我认为使用最新版本是更好的选择。
回答by Sahil Gulati
Installing rabbitmq's AMQP with pecl with PHP7.0
用PHP7.0用pecl安装rabbitmq的AMQP
Just follow few these steps, this will install all its dependencies and amqp library. It works for me with bento/ubuntu-16.04
with php7.0
只需遵循以下几个步骤,这将安装其所有依赖项和 amqp 库。它对我bento/ubuntu-16.04
有用php7.0
apt-get update
wget http://in.archive.ubuntu.com/ubuntu/ubuntu/pool/universe/libr/librabbitmq/librabbitmq1_0.5.2-2_amd64.deb
dpkg -i librabbitmq1_0.5.2-2_amd64.deb
wget http://in.archive.ubuntu.com/ubuntu/ubuntu/pool/universe/libr/librabbitmq/librabbitmq-dev_0.5.2-2_amd64.deb
dpkg -i librabbitmq-dev_0.5.2-2_amd64.deb
apt-get install php7.0 php7.0-mbstring php7.0-mcrypt php7.0-mysql php7.0-xml php7.0-dev
pecl install amqp
echo "extension=amqp.so" >> /etc/php/7.0/cli/php.ini
echo "extension=amqp.so" >> /etc/php/7.0/fpm/php.ini
Librabbitmq-dev
and its dependencies of different versions it can be downloaded from
Librabbitmq-dev
以及它对不同版本的依赖,可以从
http://in.archive.ubuntu.com/ubuntu/ubuntu/pool/universe/libr/librabbitmq/
http://in.archive.ubuntu.com/ubuntu/ubuntu/pool/universe/libr/librabbitmq/