Penggunaan Redis di dalam PHP 7.2

Artikel ini akan menunjukkan cara-cara pemasangan dan konfigurasi redis di dalam PHP 7.2 bagi CentOS 7.

Artikel ini menjangkakan anda telah mengkonfigurasi repository kepada repositori remi. Anda juga telah membuat pemasangan PHP 7.2. Anda juga telah membuat pemasangan redis dengan jayanya di server lain.

Artikel ini ditulis disebabkan aku menghadapi masalah dalam menggunakan redis di dalam PHP 7.2.

1. Pasang redis ke dalam sistem pengoperasian CentOS 7 dengan cara
$ yum install php72*redis
====================================================================================================
 Package                          Arch            Version                       Repository     Size
====================================================================================================
Installing:
 php72-php-pecl-redis             x86_64          3.1.6-1.el7.remi              remi          156 k
 php72-php-phpiredis              x86_64          1.0.0-3.el7.remi              remi           16 k
Installing for dependencies:
 hiredis-last                     x86_64          0.13.3-1.el7.remi             remi           30 k
 php72-php-pecl-igbinary          x86_64          2.0.8-1.el7.remi              remi           66 k

Transaction Summary
====================================================================================================
Install  2 Packages (+2 Dependent packages)

Total download size: 268 k
Installed size: 817 k
Is this ok [y/d/N]:y

Downloading packages:
(1/4): php72-php-phpiredis-1.0.0-3.el7.remi.x86_64.rpm                       |  16 kB  00:00:01
(2/4): hiredis-last-0.13.3-1.el7.remi.x86_64.rpm                             |  30 kB  00:00:01
(3/4): php72-php-pecl-redis-3.1.6-1.el7.remi.x86_64.rpm                      | 156 kB  00:00:02
(4/4): php72-php-pecl-igbinary-2.0.8-1.el7.remi.x86_64.rpm                   |  66 kB  00:00:02
----------------------------------------------------------------------------------------------------
Total                                                               115 kB/s | 268 kB  00:00:02
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : hiredis-last-0.13.3-1.el7.remi.x86_64                                            1/4
  Installing : php72-php-pecl-igbinary-2.0.8-1.el7.remi.x86_64                                  2/4
  Installing : php72-php-pecl-redis-3.1.6-1.el7.remi.x86_64                                     3/4
  Installing : php72-php-phpiredis-1.0.0-3.el7.remi.x86_64                                      4/4
  Verifying  : php72-php-phpiredis-1.0.0-3.el7.remi.x86_64                                      1/4
  Verifying  : php72-php-pecl-redis-3.1.6-1.el7.remi.x86_64                                     2/4
  Verifying  : php72-php-pecl-igbinary-2.0.8-1.el7.remi.x86_64                                  3/4
  Verifying  : hiredis-last-0.13.3-1.el7.remi.x86_64                                            4/4

Installed:
  php72-php-pecl-redis.x86_64 0:3.1.6-1.el7.remi    php72-php-phpiredis.x86_64 0:1.0.0-3.el7.remi

Dependency Installed:
  hiredis-last.x86_64 0:0.13.3-1.el7.remi     php72-php-pecl-igbinary.x86_64 0:2.0.8-1.el7.remi

Complete!


2. Pakej remi di dalam CentOS secara default akan diletakkan di dalam /opt/remi/php72. Ada dua cara bagi anda menggunakan module php72. Pertama adalah dengan meletakkan command yang ada di dalam /opt/remi/php72/enable ke dalam /etc/bash_profile. Kedua adalah dengan menyalin module .so dari /opt/remi/php72/root/usr/lib64/php/modules/ ke /usr/lib64/php/modules. Aku membuat cara kedua.

$ cp *redis.so igbinary.so /usr/lib64/php/modules

3. Pergi ke /usr/lib64/php/modules

$ cd /usr/lib64/php/modules
$ ls

Anda akan melihat redis.so dan igbinary.so dipindahkan.

3. Cipta fail redis.ini di dalam /etc/php.d/

$ vi /etc/php.d/redis.ini 

Masukkan entry ini
extension=igbinary.so
extension=phpiredis.so

extension=redis.so






Pasti igbinary.so berada di atas sekali. Hal ini kerana modul ini akan digunakan oleh redis.so. Ianya perlu diload terlebih dahulu oleh php.

4. Restart daemon php. Jika anda menggunakan daemon php yang diintegrasi bersama Apache HTTPD, restart httpd. Jika anda menggunakan daemon php-fpm, restart php-fpm

Jika anda menggunakan php di dalam apache httpd

$ systemctl reload httpd 

atau

$ systemctl stop httpd
$ systemctl start httpd

Jika anda menggunakan php-fpm

$ systemctl reload php-fpm

atau

$ systemctl stop php-fpm
$ systemctl start php-fpm

5. Cuba redis server anda dengan melaksanakan fail arahan ini (namakan sebagai redisConn.php)

$ vi /var/www/html/redisConn.php
try {
   //Connecting to Redis server on localhost
   $redis = new Redis();

   echo "Test connect to Redis server ip.server.redis:6379";
   $redis->connect('ip.server.redis', 6379);
   echo "
Connection to server sucessfully";
   //check whether server is running or not
   echo "
Test Ping Connection";
   echo "
Server is running: ".$redis->ping();
} catch (Exception $ex) {
   echo "
" . $ex->getMessage();
}
?>



6. Laksanakan arahan sama ada menggunakan php-cli atau menggunakan web. Output seperti di bawah mungkin anda perolehi.
Test connect to Redis server 10.2.10.107:6379
Connection to server sucessfully
Test Ping Connection
Redis server went away



No comments: