GNU/Linux >> Belajar Linux >  >> Linux

Cara Menginstal Ekstensi AMQP PHP dan Klien RabbitMQ di Linux

Untuk terhubung ke server antrian pesan RabbitMQ, Anda dapat menulis program klien Anda menggunakan berbagai bahasa pemrograman. Saat ini Anda dapat menulis klien menggunakan C#, erlang, java, perl, PHP, python, dan ruby.

Tutorial ini menjelaskan cara menginstal dan mengkonfigurasi library klien RabbitMQ dan ekstensi AMQP PHP.

Setelah Anda menginstal ekstensi AMQP PHP, Anda dapat menulis program PHP menggunakan AMQP, yang dapat terhubung ke server RabbitMQ untuk memanipulasi pesan .

Bagian 1:Instal Perpustakaan Klien RabbitMQ

1. Instal cmake

cmake adalah sistem build open source yang digunakan oleh perpustakaan rabbitmq-c. Kita perlu menginstal perpustakaan rabbitmq-c sebelum kita menginstal ekstensi AMQP PHP. Tapi, untuk menginstall library rabbitmq-c, kita membutuhkan cmake.

Dari halaman unduhan cmake, lihat bagian Linux i386 dan unduh file cmake-2.8.10.2-Linux-i386.sh. Atau, gunakan wget untuk mengunduhnya di sistem Anda.

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

Jalankan file cmake-2.8.10.2-Linux-i386.sh, yang akan menginstal cmake di bawah direktori Anda saat ini seperti yang ditunjukkan di bawah ini.

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

Ganti nama direktori cmake, dan verifikasi bahwa cmake telah terinstal dengan benar.

# 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. Unduh Klien RabbitMQ

Pertama-tama instal pustaka librabbitmq, yang diperlukan oleh ekstensi AMQP PHP.

Unduh file zip dari penyimpanan git rabbitmq-c.

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

3. Konfigurasikan Klien RabbitMQ

Gunakan cmake untuk mengonfigurasi klien rabbitmq untuk diinstal. Pastikan untuk menentukan PREFIX sebagai /usr/local, tempat klien rabbitmq akan diinstal.

# 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. Instal Klien RabbitMQ

Setelah mengkonfigurasi, gunakan cmake untuk menginstal klien rabbitmq seperti yang ditunjukkan di bawah ini. Ini akan menginstal perpustakaan librabbitmq di bawah /usr/local. Output sebagian ditunjukkan di bawah ini.

#  /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. Verifikasi Klien RabbitMQ

Pustaka dilengkapi dengan contoh program yang dapat Anda gunakan untuk memverifikasi bahwa ia berfungsi seperti yang diharapkan.

Dari terminal, lakukan hal berikut. Ini akan dalam keadaan menunggu.

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

Buka terminal lain, dan lakukan hal berikut. Ini akan mengirim pesan “hello world” ke antrean.

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

Sekarang kembali ke terminal pertama yang berada dalam status menunggu, di mana Anda sekarang akan melihat pesan "hello world" seperti yang ditunjukkan di bawah ini.

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

Bagian 2:Instal Ekstensi AMQP PHP

Anda dapat menginstal amqp menggunakan pecl, atau Anda dapat mengkompilasi dari sumber.

Untuk menginstal menggunakan pecl, lakukan saja hal berikut:

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

# pecl install amqp

Untuk menginstal dari sumber (yang saya sukai), ikuti langkah-langkah di bawah ini.

6. Unduh ekstensi AMQP PHP

Unduh versi stabil terbaru dari ekstensi AMQP PHP. Versi stabil saat ini adalah 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. Konfigurasi AMQP

Jalankan phpize dan konfigurasikan seperti gambar di bawah ini.

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

Instal AMQP menggunakan make dan make install seperti gambar di bawah ini. Keluaran sebagian ditampilkan.

# 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. Ubah php.ini dan tambahkan Ekstensi AMQP

Temukan file php.ini di sistem Anda dan tambahkan baris berikut ke dalamnya.

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

10. Verifikasi Ekstensi AMQP PHP

Buat halaman pengujian berikut yang akan menampilkan phpinfo, dan letakkan ini di bawah htdocs Apache Anda.

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

Sekarang, jika Anda memanggil test.php dari browser Anda, Anda akan melihat bahwa ekstensi AMQP PHP ditampilkan pada halaman seperti yang ditunjukkan di bawah ini. Sekarang, Anda dapat menulis panggilan AMQP dalam kode PHP Anda untuk berbicara dengan server RabbitMQ.


Linux
  1. Cara Menginstal dan Menguji Ansible di Linux

  2. Cara Menginstal Dan Menggunakan Flatpak Di Linux

  3. Cara Menginstal dan Mengonfigurasi Server dan Klien NTP Linux

  1. Cara Menginstal dan Menggunakan Traceroute di Linux

  2. Cara Menginstal dan Mengonfigurasi Klien SSH Putty di Desktop Linux

  3. Cara Install RabbitMQ Server dan Erlang di Linux

  1. Cara menginstal Elasticsearch dan Kibana di Linux

  2. Bagaimana Cara Menginstal dan Menggunakan Layar Linux?

  3. Cara Menginstal Dan Menggunakan Putty Di Linux