GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So installieren Sie die AMQP-PHP-Erweiterung und den RabbitMQ-Client unter Linux

Um eine Verbindung zum RabbitMQ-Nachrichtenwarteschlangenserver herzustellen, können Sie Ihr Clientprogramm mit verschiedenen Programmiersprachen schreiben. Derzeit können Sie Clients mit C#, Erlang, Java, Perl, PHP, Python und Ruby schreiben.

In diesem Tutorial wird erklärt, wie die RabbitMQ-Clientbibliothek und die AMQP-PHP-Erweiterung installiert und konfiguriert werden.

Sobald Sie die AMQP-PHP-Erweiterung installiert haben, können Sie ein PHP-Programm mit AMQP schreiben, das eine Verbindung zum RabbitMQ-Server herstellen kann, um die Nachrichten zu bearbeiten .

Teil 1:Installieren Sie die RabbitMQ-Client-Bibliothek

1. Installieren Sie cmake

cmake ist ein Open-Source-Build-System, das von der Rabbitmq-c-Bibliothek verwendet wird. Wir müssen die Rabbitmq-c-Bibliothek installieren, bevor wir die AMQP-PHP-Erweiterung installieren. Aber um die rabbitmq-c-Bibliothek zu installieren, brauchen wir cmake.

Scrollen Sie von der cmake-Downloadseite nach unten zum Abschnitt Linux i386 und laden Sie die Datei cmake-2.8.10.2-Linux-i386.sh herunter. Oder verwenden Sie das wget, um es auf Ihr System herunterzuladen.

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

Führen Sie die Datei cmake-2.8.10.2-Linux-i386.sh aus, die cmake wie unten gezeigt in Ihrem aktuellen Verzeichnis installiert.

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

Benennen Sie das cmake-Verzeichnis um und prüfen Sie, ob cmake richtig installiert ist.

# 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. Laden Sie den RabbitMQ-Client herunter

Installieren Sie zuerst die librabbitmq-Bibliothek, die von der AMQP-PHP-Erweiterung benötigt wird.

Laden Sie die ZIP-Datei aus dem Rabbitmq-c-Git-Repository herunter.

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

3. Konfigurieren Sie den RabbitMQ-Client

Verwenden Sie cmake, um den Rabbitmq-Client für die Installation zu konfigurieren. Achten Sie darauf, das PRÄFIX als /usr/local anzugeben, wo der Rabbitmq-Client installiert wird.

# 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. Installieren Sie den RabbitMQ-Client

Verwenden Sie nach der Konfiguration cmake, um den Rabbitmq-Client wie unten gezeigt zu installieren. Dadurch wird die librabbitmq-Bibliothek unter /usr/local installiert. Eine Teilausgabe wird unten angezeigt.

#  /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. Überprüfen Sie den RabbitMQ-Client

Die Bibliothek enthält ein Beispielprogramm, mit dem Sie überprüfen können, ob es wie erwartet funktioniert.

Gehen Sie von einem Terminal aus wie folgt vor. Dies befindet sich in einem Wartezustand.

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

Öffnen Sie ein weiteres Terminal und gehen Sie wie folgt vor. Dadurch wird eine „Hallo Welt“-Nachricht an die Warteschlange gesendet.

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

Gehen Sie jetzt zurück zum ersten Terminal, das sich im Wartezustand befand, wo Sie nun die Nachricht „Hallo Welt“ sehen, wie unten gezeigt.

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

Teil 2:Installieren Sie die AMQP-PHP-Erweiterung

Sie können amqp mit pecl installieren oder aus dem Quellcode kompilieren.

Um mit pecl zu installieren, gehen Sie einfach wie folgt vor:

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

# pecl install amqp

Um von der Quelle zu installieren (was ich bevorzuge), folgen Sie den Schritten unten.

6. Laden Sie die AMQP-PHP-Erweiterung herunter

Laden Sie die neueste stabile Version der AMQP-PHP-Erweiterung herunter. Die aktuelle stabile Version ist 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. AMQP konfigurieren

Führen Sie phpize aus und konfigurieren Sie wie unten gezeigt.

# 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. Installieren Sie AMQP

Installieren Sie AMQP mit make und make install wie unten gezeigt. Teilausgabe wird angezeigt.

# 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. Ändern Sie php.ini und fügen Sie die AMQP-Erweiterung hinzu

Suchen Sie die Datei php.ini auf Ihrem System und fügen Sie ihr die folgende Zeile hinzu.

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

10. Überprüfen Sie die AMQP-PHP-Erweiterung

Erstellen Sie die folgende Testseite, die phpinfo anzeigt, und platzieren Sie diese unter den htdocs Ihres Apache.

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

Wenn Sie nun test.php von Ihrem Browser aus aufrufen, sehen Sie, dass die AMQP-PHP-Erweiterung wie unten gezeigt auf der Seite angezeigt wird. Jetzt können Sie AMQP-Aufrufe in Ihren PHP-Code schreiben, um mit dem RabbitMQ-Server zu kommunizieren.


Linux
  1. So installieren und testen Sie Ansible unter Linux

  2. So installieren und verwenden Sie Flatpak unter Linux

  3. So installieren und verwenden Sie Traceroute unter Linux

  4. So installieren und konfigurieren Sie den Putty SSH-Client auf einem Linux-Desktop

  5. So installieren und konfigurieren Sie Linux NTP-Server und -Client

So installieren und verwenden Sie Nu Shell unter Linux

So installieren Sie den Nextcloud-Desktop-Client unter Linux

So installieren und konfigurieren Sie RabbitMQ in Archlinux

So installieren Sie LAMP unter Ubuntu 15.10 (Linux, Apache, MySQL und PHP)

So installieren Sie Memcached auf Rocky Linux 8

So installieren und verwenden Sie PHP Composer auf Linux-Distributionen