GNU/Linux >> Tutoriels Linux >  >> Linux

Comment installer l'extension PHP AMQP et le client RabbitMQ sous Linux

Pour vous connecter au serveur de file d'attente de messages RabbitMQ, vous pouvez écrire votre programme client à l'aide de divers langages de programmation. Actuellement, vous pouvez écrire un client en utilisant C#, erlang, java, perl, PHP, python et ruby.

Ce tutoriel explique comment installer et configurer la bibliothèque client RabbitMQ et l'extension PHP AMQP.

Une fois que vous avez installé l'extension PHP AMQP, vous pouvez écrire un programme PHP en utilisant AMQP, qui peut se connecter au serveur RabbitMQ pour manipuler les messages .

Partie 1 :Installer la bibliothèque client RabbitMQ

1. Installer cmake

cmake est un système de construction open source utilisé par la bibliothèque rabbitmq-c. Nous devons installer la bibliothèque rabbitmq-c avant d'installer l'extension PHP AMQP. Mais, pour installer la bibliothèque rabbitmq-c, nous avons besoin de cmake.

Depuis la page de téléchargement de cmake, descendez jusqu'à la section Linux i386 et téléchargez le fichier cmake-2.8.10.2-Linux-i386.sh. Ou, utilisez le wget pour le télécharger sur votre système.

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

Exécutez le fichier cmake-2.8.10.2-Linux-i386.sh, qui installera cmake sous votre répertoire actuel comme indiqué ci-dessous.

# /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

Renommez le répertoire cmake et vérifiez que cmake est correctement installé.

# 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. Télécharger le client RabbitMQ

Installez d'abord la bibliothèque librabbitmq, qui est requise par l'extension PHP AMQP.

Téléchargez le fichier zip à partir du référentiel git rabbitmq-c.

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

3. Configurer le client RabbitMQ

Utilisez cmake pour configurer le client rabbitmq pour l'installation. Assurez-vous de spécifier le PREFIX comme /usr/local, où le client rabbitmq sera installé.

# 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. Installer le client RabbitMQ

Après la configuration, utilisez cmake pour installer le client rabbitmq comme indiqué ci-dessous. Cela installera la bibliothèque librabbitmq sous /usr/local. La sortie partielle est illustrée ci-dessous.

#  /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. Vérifier le client RabbitMQ

La bibliothèque est livrée avec un exemple de programme que vous pouvez utiliser pour vérifier qu'il fonctionne comme prévu.

Depuis un terminal, procédez comme suit. Ce sera dans un état d'attente.

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

Ouvrez un autre terminal et procédez comme suit. Cela enverra un message "hello world" à la file d'attente.

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

Revenez maintenant au premier terminal qui était en attente, où vous verrez maintenant le message "hello world" comme indiqué ci-dessous.

# ./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:

Partie 2 :Installer l'extension PHP AMQP

Vous pouvez installer amqp en utilisant pecl, ou vous pouvez compiler à partir des sources.

Pour installer à l'aide de pecl, procédez comme suit :

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

# pecl install amqp

Pour installer à partir de la source (ce que je préfère), suivez les étapes ci-dessous.

6. Télécharger l'extension PHP AMQP

Téléchargez la dernière version stable de l'extension PHP AMQP. La version stable actuelle est la 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. Configurer AMQP

Exécutez phpize et configurez comme indiqué ci-dessous.

# 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. Installer AMQP

Installez AMQP en utilisant make et make install comme indiqué ci-dessous. Une sortie partielle est affichée.

# 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. Modifiez php.ini et ajoutez l'extension AMQP

Localisez le fichier php.ini sur votre système et ajoutez-y la ligne suivante.

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

10. Vérifier l'extension PHP AMQP

Créez la page de test suivante qui affichera phpinfo et placez-la sous les htdocs de votre Apache.

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

Maintenant, si vous appelez test.php depuis votre navigateur, vous verrez que l'extension PHP AMQP est affichée sur la page comme indiqué ci-dessous. Maintenant, vous pouvez écrire des appels AMQP dans votre code PHP pour parler au serveur RabbitMQ.


Linux
  1. Comment installer et tester Ansible sur Linux

  2. Comment installer et utiliser Flatpak sous Linux

  3. Comment installer et utiliser Traceroute sous Linux

  4. Comment installer et configurer le client Putty SSH sur le bureau Linux

  5. Comment installer RabbitMQ Server et Erlang sous Linux

Comment installer et utiliser Nu Shell sous Linux

Comment installer le client de bureau Nextcloud sur Linux

Comment installer et configurer RabbitMQ dans Archlinux

Comment installer LAMP sur Ubuntu 15.10 (Linux, Apache, MySQL et PHP)

Comment installer Memcached sur Rocky Linux 8

Comment installer et utiliser PHP Composer sur les distributions Linux