GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo instalar la extensión PHP AMQP y el cliente RabbitMQ en Linux

Para conectarse al servidor de cola de mensajes de RabbitMQ, puede escribir su programa cliente usando varios lenguajes de programación. Actualmente puede escribir clientes usando C#, erlang, java, perl, PHP, python y ruby.

Este tutorial explica cómo instalar y configurar la biblioteca cliente RabbitMQ y la extensión PHP AMQP.

Una vez que tenga instalada la extensión PHP AMQP, puede escribir un programa PHP usando AMQP, que puede conectarse al servidor RabbitMQ para manipular los mensajes. .

Parte 1:instalar la biblioteca de cliente de RabbitMQ

1. Instalar cmake

cmake es un sistema de compilación de código abierto que utiliza la biblioteca rabbitmq-c. Necesitamos instalar la biblioteca rabbitmq-c antes de instalar la extensión PHP AMQP. Pero, para instalar la biblioteca rabbitmq-c, necesitamos cmake.

Desde la página de descarga de cmake, baje hasta la sección Linux i386 y descargue el archivo cmake-2.8.10.2-Linux-i386.sh. O use wget para descargarlo en su sistema.

cd /usr/src
wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2-Linux-i386.sh

Ejecute el archivo cmake-2.8.10.2-Linux-i386.sh, que instalará cmake en su directorio actual como se muestra a continuación.

# /bin/sh cmake-2.8.10.2-Linux-i386.sh
Do you accept the license? [yN]: y
By default the CMake will be installed in:
  "/usr/src/cmake-2.8.10.2-Linux-i386"
Do you want to include the subdirectory cmake-2.8.10.2-Linux-i386?
Saying no will install in: "/usr/src" [Yn]: y
Using target directory: /usr/src/cmake-2.8.10.2-Linux-i386
Extracting, please wait...
tar: Read 4096 bytes from -
Unpacking finished successfully

Cambie el nombre del directorio cmake y verifique que cmake esté instalado correctamente.

# cd /usr/src
# mv cmake-2.8.10.2-Linux-i386 cmake
# /usr/save/cmake/bin/cmake --version
cmake version 2.8.10.2

2. Descargar Cliente RabbitMQ

Primero instale la biblioteca librabbitmq, que es requerida por la extensión PHP de AMQP.

Descargue el archivo zip del repositorio git de rabbitmq-c.

cd /usr/src
unzip rabbitmq-c-master.zip
cd rabbitmq-c-master

3. Configurar el cliente RabbitMQ

Use cmake para configurar el cliente rabbitmq para su instalación. Asegúrese de especificar el PREFIJO como /usr/local, donde se instalará el cliente rabbitmq.

# mkdir build
# cd build
# /usr/src/cmake/bin/cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..
-- The C compiler identification is GNU 4.1.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- CMAKE_BUILD_TYPE not specified. Creating Release build
-- Found C inline keyword: inline
-- Looking for getaddrinfo
-- Looking for getaddrinfo - found
-- Looking for socket
-- Looking for socket - found
-- Looking for htonll
-- Looking for htonll - not found
-- Found POPT: /usr/include
-- Could NOT find XMLTO (missing:  XMLTO_EXECUTABLE)
-- Building rabbitmq as a shared library - yes
-- Building rabbitmq as a static library - no
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/save/rabbitmq-c-master/build

4. Instalar el cliente RabbitMQ

Después de configurar, use cmake para instalar el cliente rabbitmq como se muestra a continuación. Esto instalará la biblioteca librabbitmq en /usr/local. La salida parcial se muestra a continuación.

#  /usr/src/cmake/bin/cmake --build . --target install
Scanning dependencies of target rabbitmq
[  2%] Building C object librabbitmq/CMakeFiles/rabbitmq.dir/amqp_framing.c.o
[  4%] Building C object librabbitmq/CMakeFiles/rabbitmq.dir/amqp_api.c.o
..
[ 95%] Built target amqp-publish
[ 97%] Building C object tests/CMakeFiles/test_parse_url.dir/test_parse_url.c.o
[100%] Building C object tests/CMakeFiles/test_tables.dir/test_tables.c.o
[100%] Built target test_tables
Install the project...
-- Install configuration: "Release"
-- Installing: /usr/local/lib/pkgconfig/librabbitmq.pc
-- Installing: /usr/local/lib/librabbitmq.so.1.0.1
-- Installing: /usr/local/lib/librabbitmq.so.1
-- Installing: /usr/local/lib/librabbitmq.so
-- Installing: /usr/local/include/amqp.h
-- Installing: /usr/local/include/amqp_framing.h
-- Installing: /usr/local/bin/amqp-publish
-- Removed runtime path from "/usr/local/bin/amqp-publish"
-- Installing: /usr/local/bin/amqp-get
-- Removed runtime path from "/usr/local/bin/amqp-get"
-- Installing: /usr/local/bin/amqp-consume
-- Removed runtime path from "/usr/local/bin/amqp-consume"
-- Installing: /usr/local/bin/amqp-declare-queue
-- Removed runtime path from "/usr/local/bin/amqp-declare-queue"
-- Installing: /usr/local/bin/amqp-delete-queue
-- Removed runtime path from "/usr/local/bin/amqp-delete-queue"

5. Verificar el cliente de RabbitMQ

La biblioteca viene con un programa de ejemplo que puede usar para verificar que funciona como se espera.

Desde una terminal, haga lo siguiente. Estará en estado de espera.

# cd /usr/src/rabbitmq-c-master/build
# ./examples/amqp_listen localhost 5672 amq.direct test

Abra otro terminal y haga lo siguiente. Esto enviará un mensaje de "hola mundo" a la cola.

# cd /usr/src/rabbitmq-c-master/build
# ./examples/amqp_sendstring localhost 5672 amq.direct test "hello world"

Ahora regrese a la primera terminal que estaba en estado de espera, donde ahora verá el mensaje "hola mundo" como se muestra a continuación.

# ./examples/amqp_listen localhost 5672 amq.direct test
Result 0
Frame type 1, channel 1
Method AMQP_BASIC_DELIVER_METHOD
Delivery 1, exchange amq.direct routingkey test
Content-type: text/plain
----
00000000: 68 65 6C 6C 6F 20 77 6F : 72 6C 64                 hello world
0000000B:

Parte 2:instalar la extensión PHP de AMQP

Puede instalar amqp usando pecl, o puede compilar desde la fuente.

Para instalar usando pecl, simplemente haga lo siguiente:

# pecl search amqp
amqp    1.0.9/(1.0.9 stable)       Communicate with any AMQP compliant server

# pecl install amqp

Para instalar desde la fuente (que prefiero), siga los pasos a continuación.

6. Descargar extensión PHP AMQP

Descargue la última versión estable de la extensión PHP AMQP. La versión estable actual es 1.0.10

cd /usr/src
wget http://pecl.php.net/get/amqp-1.0.10.tgz
tar xvfz amqp-1.0.10.tgz
cd amqp-1.0.9

7. Configurar AMQP

Ejecute phpize y configure como se muestra a continuación.

# phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626

# ./configure --with-amqp
checking for egrep... grep -E
checking for a sed that does not truncate output... /bin/sed
..
creating libtool
appending configuration tag "CXX" to libtool
configure: creating ./config.status
config.status: creating config.h

8. Instalar AMQP

Instale AMQP usando make y make install como se muestra a continuación. Se muestra la salida parcial.

# make
..
creating amqp.la
(cd .libs && rm -f amqp.la && ln -s ../amqp.la amqp.la)
/bin/sh /usr/save/amqp-1.0.9/libtool --mode=install 
cp ./amqp.la /usr/save/amqp-1.0.9/modules
cp ./.libs/amqp.so /usr/save/amqp-1.0.9/modules/amqp.so
cp ./.libs/amqp.lai /usr/save/amqp-1.0.9/modules/amqp.la
PATH="$PATH:/sbin" ldconfig -n /usr/save/amqp-1.0.9/modules
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/save/amqp-1.0.9/modules

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,--rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
Build complete.
# make install
Installing shared extensions: 
/usr/local/lib/php/extensions/no-debug-non-zts-20090626/
..
You should add "extension=amqp.so" to php.ini

9. Modifique php.ini y agregue la extensión AMQP

Localice el archivo php.ini en su sistema y agréguele la siguiente línea.

# vi /usr/local/lib/php.ini
extension=amqp.so

10. Verificar la extensión PHP de AMQP

Cree la siguiente página de prueba que mostrará phpinfo y colóquela en htdocs de Apache.

# vi /usr/local/apache2/htdocs/test.php
<?php
phpinfo();
?>

Ahora, si llama a test.php desde su navegador, verá que la extensión PHP AMQP se muestra en la página como se muestra a continuación. Ahora, puede escribir llamadas AMQP en su código PHP para hablar con el servidor RabbitMQ.


Linux
  1. Cómo instalar y probar Ansible en Linux

  2. Cómo instalar y usar Flatpak en Linux

  3. Cómo instalar y usar Traceroute en Linux

  4. Cómo instalar y configurar el cliente Putty SSH en el escritorio de Linux

  5. Cómo instalar y configurar el servidor y el cliente NTP de Linux

Cómo instalar y usar Nu Shell en Linux

Cómo instalar el cliente de escritorio Nextcloud en Linux

Cómo instalar y configurar RabbitMQ en Archlinux

Cómo instalar LAMP en Ubuntu 15.10 (Linux, Apache, MySQL y PHP)

Cómo instalar Memcached en Rocky Linux 8

Cómo instalar y usar PHP Composer en distribuciones de Linux