Catatan Harian Mas Andri

Silahkan digunakan dengan bijaksana

back

Tutorial: Cara Install gRPC Extension di PHP Plesk Panel AlmaLinux 9

27 Agustus 2025 || 00:53:21 WIB || ClassyID

gRPC (gRPC Remote Procedure Calls) adalah framework komunikasi high-performance yang dikembangkan Google untuk memungkinkan aplikasi berkomunikasi dengan efisien. Tutorial ini akan memandu Anda menginstall ekstensi gRPC untuk PHP di server AlmaLinux 9 yang menggunakan Plesk Panel.

Apa itu gRPC?

gRPC memungkinkan aplikasi di server berbeda untuk saling memanggil fungsi seolah-olah fungsi tersebut berada di server yang sama. Keunggulan gRPC:

Prerequisites

Sebelum memulai, pastikan Anda memiliki:

Langkah 1: Persiapan Environment

1.1 Cek Sistem Operasi

cat /etc/os-release

1.2 Cek Versi PHP yang Tersedia

plesk bin php_handler --list

Output akan menampilkan semua versi PHP yang terinstall di Plesk.

Langkah 2: Install Development Tools

2.1 Install PHP Development Packages

dnf install plesk-php81-devel plesk-php82-devel plesk-php83-devel

2.2 Install Build Tools

dnf install gcc gcc-c++ make autoconf pkg-config zlib-devel

Langkah 3: Install gRPC Extension

3.1 Update PECL Channel

/opt/plesk/php/8.1/bin/pecl channel-update pecl.php.net

3.2 Metode Install - PECL (Coba Dulu)

/opt/plesk/php/8.1/bin/pecl install grpc

Catatan: Jika metode PECL gagal karena masalah koneksi SSL, lanjutkan ke metode manual.

3.3 Metode Install - Manual (Jika PECL Gagal)

# Download source code
cd /tmp
wget https://pecl.php.net/get/grpc-1.74.0.tgz

# Extract
tar -xzf grpc-1.74.0.tgz
cd grpc-1.74.0

# Compile
/opt/plesk/php/8.1/bin/phpize
./configure --with-php-config=/opt/plesk/php/8.1/bin/php-config
make
make install

Langkah 4: Konfigurasi Extension

Di sini kita akan mengalami 2 skenario berbeda tergantung konfigurasi server:

Skenario A: Menggunakan File Konfigurasi Terpisah (Recommended)

Buat file konfigurasi terpisah:

echo "extension=grpc.so" > /opt/plesk/php/8.1/etc/php.d/grpc.ini

Skenario B: Menambahkan ke php.ini Utama

Jika skenario A tidak bekerja, coba tambahkan ke php.ini:

echo "extension=grpc.so" >> /opt/plesk/php/8.1/etc/php.ini

Langkah 5: Set Permission dan Restart Services

5.1 Set Permission File Extension

chmod 755 /opt/plesk/php/8.1/lib64/php/modules/grpc.so

5.2 Restart Web Services

plesk bin service --restart web
systemctl restart plesk-php81-fpm

Langkah 6: Verifikasi Instalasi

6.1 Cek Extension Loaded

/opt/plesk/php/8.1/bin/php -m | grep grpc

Output yang diharapkan: grpc

6.2 Test Extension Status

/opt/plesk/php/8.1/bin/php -r "var_dump(extension_loaded('grpc'));"

Output yang diharapkan: bool(true)

6.3 Cek Versi gRPC

/opt/plesk/php/8.1/bin/php -r "echo 'gRPC version: ' . phpversion('grpc') . PHP_EOL;"

6.4 Cek File Konfigurasi

/opt/plesk/php/8.1/bin/php --ini | grep grpc

Install untuk Multiple PHP Versions

Jika Anda perlu install gRPC untuk PHP versi lain:

Untuk PHP 8.2

cd /tmp
rm -rf grpc-1.74.0*
wget https://pecl.php.net/get/grpc-1.74.0.tgz
tar -xzf grpc-1.74.0.tgz
cd grpc-1.74.0
/opt/plesk/php/8.2/bin/phpize
./configure --with-php-config=/opt/plesk/php/8.2/bin/php-config
make clean && make && make install
echo "extension=grpc.so" > /opt/plesk/php/8.2/etc/php.d/grpc.ini

Untuk PHP 8.3

cd /tmp
rm -rf grpc-1.74.0*
wget https://pecl.php.net/get/grpc-1.74.0.tgz
tar -xzf grpc-1.74.0.tgz
cd grpc-1.74.0
/opt/plesk/php/8.3/bin/phpize
./configure --with-php-config=/opt/plesk/php/8.3/bin/php-config
make clean && make && make install
echo "extension=grpc.so" > /opt/plesk/php/8.3/etc/php.d/grpc.ini

Troubleshooting

Masalah 1: Build Error "Can't find PHP headers"

Solusi: Pastikan paket plesk-php*-devel sudah terinstall

dnf install plesk-php81-devel

Masalah 2: Extension Tidak Terbaca

Solusi: Gunakan file konfigurasi terpisah di php.d/

echo "extension=grpc.so" > /opt/plesk/php/8.1/etc/php.d/grpc.ini
# Hapus dari php.ini utama jika ada
sed -i '/extension=grpc.so/d' /opt/plesk/php/8.1/etc/php.ini

Masalah 3: SSL Connection Error saat Download

Solusi: Gunakan metode manual download dengan wget

Masalah 4: Permission Denied

Solusi: Set permission yang benar

chmod 755 /opt/plesk/php/8.1/lib64/php/modules/grpc.so

Contoh Penggunaan gRPC

Simple gRPC Client

<?php
require_once 'vendor/autoload.php';

// Contoh koneksi ke gRPC server
$client = new \Grpc\BaseStub('localhost:50051', [
    'credentials' => \Grpc\ChannelCredentials::createInsecure()
]);

// Implementasi service call
// ... kode gRPC client Anda
?>

Test gRPC dari Command Line

# Buat file test
cat > /tmp/test_grpc.php << 'EOF'
<?php
if (extension_loaded('grpc')) {
    echo " gRPC Extension is loaded!\n";
    echo " gRPC Version: " . phpversion('grpc') . "\n";
} else {
    echo " gRPC Extension not found!\n";
}
?>
EOF

# Jalankan test
/opt/plesk/php/8.1/bin/php /tmp/test_grpc.php

 

Kesimpulan

Instalasi gRPC extension di Plesk Panel memerlukan kompilasi manual karena paket repository tidak selalu tersedia. Dua pendekatan konfigurasi (file terpisah vs php.ini utama) memberikan fleksibilitas untuk berbagai setup server.

gRPC sangat berguna untuk:

Dengan mengikuti tutorial ini, Anda sekarang memiliki gRPC yang siap digunakan untuk mengembangkan aplikasi modern dengan komunikasi efisien antar service.


Tutorial ini telah ditest pada AlmaLinux 9.6 dengan Plesk Panel. Untuk distribusi Linux lain, beberapa perintah mungkin perlu disesuaikan.