GNU/Linux >> Znalost Linux >  >> Linux

Jak nainstalovat rozšíření AMQP PHP a klienta RabbitMQ na Linux

Chcete-li se připojit k serveru fronty zpráv RabbitMQ, můžete napsat svůj klientský program pomocí různých programovacích jazyků. V současné době můžete psát klienta pomocí C#, erlang, java, perl, PHP, python a ruby.

Tento tutoriál vysvětluje, jak nainstalovat a nakonfigurovat klientskou knihovnu RabbitMQ a rozšíření AMQP PHP.

Jakmile si nainstalujete rozšíření AMQP PHP, můžete napsat program PHP pomocí AMQP, který se může připojit k serveru RabbitMQ a manipulovat se zprávami. .

Část 1:Instalace klientské knihovny RabbitMQ

1. Nainstalujte cmake

cmake je open source sestavovací systém, který používá knihovna rabbitmq-c. Než nainstalujeme rozšíření AMQP PHP, musíme nainstalovat knihovnu rabbitmq-c. K instalaci knihovny rabbitmq-c však potřebujeme cmake.

Ze stránky stahování cmake přejděte dolů do sekce Linux i386 a stáhněte si soubor cmake-2.8.10.2-Linux-i386.sh. Nebo použijte wget ke stažení do vašeho systému.

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

Spusťte soubor cmake-2.8.10.2-Linux-i386.sh, který nainstaluje cmake do vašeho aktuálního adresáře, jak je uvedeno níže.

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

Přejmenujte adresář cmake a ověřte, zda je cmake správně nainstalován.

# 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. Stáhněte si klienta RabbitMQ

Nejprve nainstalujte knihovnu librabbitmq, kterou vyžaduje rozšíření AMQP PHP.

Stáhněte si soubor zip z git repozitáře rabbitmq-c.

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

3. Nakonfigurujte klienta RabbitMQ

Pomocí cmake nakonfigurujte klienta rabbitmq pro instalaci. Ujistěte se, že jste zadali PREFIX jako /usr/local, kam bude nainstalován klient 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. Nainstalujte klienta RabbitMQ

Po konfiguraci použijte cmake k instalaci klienta rabbitmq, jak je znázorněno níže. Tím se nainstaluje knihovna librabbitmq pod /usr/local. Částečný výstup je zobrazen níže.

#  /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. Ověřte klienta RabbitMQ

Knihovna je dodávána s ukázkovým programem, který můžete použít k ověření, že funguje podle očekávání.

Z terminálu proveďte následující. Toto bude ve stavu čekání.

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

Otevřete další terminál a proveďte následující. Tím se do fronty odešle zpráva „ahoj světe“.

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

Nyní se vraťte k prvnímu terminálu, který byl ve stavu čekání, kde nyní uvidíte zprávu „ahoj světe“, jak je uvedeno níže.

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

Část 2:Instalace rozšíření AMQP PHP

Amqp můžete nainstalovat pomocí pecl nebo můžete kompilovat ze zdroje.

Chcete-li nainstalovat pomocí pecl, proveďte následující:

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

# pecl install amqp

Chcete-li nainstalovat ze zdroje (což preferuji), postupujte podle níže uvedených kroků.

6. Stáhněte si rozšíření AMQP PHP

Stáhněte si nejnovější stabilní verzi rozšíření AMQP PHP. Aktuální stabilní verze je 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. Nakonfigurujte AMQP

Spusťte phpize a nakonfigurujte, jak je uvedeno níže.

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

Nainstalujte AMQP pomocí make a make install, jak je znázorněno níže. Zobrazí se částečný výstup.

# 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. Upravte php.ini a přidejte rozšíření AMQP

Vyhledejte ve svém systému soubor php.ini a přidejte k němu následující řádek.

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

10. Ověřte rozšíření AMQP PHP

Vytvořte následující testovací stránku, která bude zobrazovat phpinfo, a umístěte ji pod htdocs vašeho Apache.

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

Nyní, když zavoláte test.php z vašeho prohlížeče, uvidíte, že se na stránce zobrazuje rozšíření AMQP PHP, jak je uvedeno níže. Nyní můžete do svého kódu PHP zapsat volání AMQP a komunikovat se serverem RabbitMQ.


Linux
  1. Jak nainstalovat a používat Traceroute v Linuxu

  2. Jak nainstalovat a nakonfigurovat klienta Putty SSH na ploše Linux

  3. Jak nainstalovat RabbitMQ Server a Erlang na Linux

  1. Jak nainstalovat a otestovat Ansible na Linuxu

  2. Jak nainstalovat a používat Flatpak v Linuxu

  3. Jak nainstalovat a nakonfigurovat Linux NTP server a klienta

  1. Jak nainstalovat Elasticsearch a Kibana na Linux

  2. Jak nainstalovat a používat Linux Screen?

  3. Jak nainstalovat a používat PuTTY na Linuxu