php - rabbit - test amqp
Instalación de AMQP a través de PECL (7)
El dev lib de repo está roto (como de costumbre ...). Tienes que clonar (desde GIT o HG) y hacer la lib, desde php.net:
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
Luego ejecute "pecl install amqp", funcionó en mi ubuntu 12 con Php 5.3
Estoy tratando de instalar la extensión RabbitMQ PECL pero después de ejecutar
sudo pecl install amqp
Recibo el siguiente mensaje de error críptico, que la búsqueda de Google no ha ayudado a resolver.
Tengo estos paquetes instalados:
- librabbitmq - RabbitMQ C cliente en sí)
- librabbitmq-dev - encabezados de desarrollo, etc.
y RabbitMQ ejecutándose exitosamente en localhost
Tal vez podría ser una falta de coincidencia en la versión del cliente C y lo que espera la extensión PECL, ¿alguien más se encuentra con este?
Hacer salida a continuación ....
Aclamaciones
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
Esto es lo que hice para instalarlo correctamente en debian wheezy: tuve que usar la versión 0.5.2 de rabbitmq-c
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
Esto se debe a que su rabbitmq es más antigua que la versión que requiere la extensión php.
Puede instalar una versión más reciente de rabbitmq o una versión inferior de la extensión como:
pecl install amqp-1.2.0
Pero creo que usar las últimas versiones es una mejor opción.
Parece que la extensión PECL es más nueva que las bibliotecas que tienes instaladas. Instale RabbitMQ directamente desde su sitio web, utilizando sus paquetes y no los que vienen con su distribución, ya que parecen estar desactualizados.
Tuve que instalarlo siguiendo los pasos que se encuentran 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
Después de eso, sudo pecl install amqp
hizo el trabajo.
Usando Ubuntu 12.10 con PHP 5.4.3.
esto es lo que hice para instalarlo correctamente en 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
Instalando el AMQP de rabbitmq con pecl con PHP7.0
Simplemente siga algunos de estos pasos, esto instalará todas sus dependencias y la biblioteca amqp. A mí me funciona con bento/ubuntu-16.04
con 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
y sus dependencias de diferentes versiones se pueden descargar desde
http://in.archive.ubuntu.com/ubuntu/ubuntu/pool/universe/libr/librabbitmq/