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.
gRPC memungkinkan aplikasi di server berbeda untuk saling memanggil fungsi seolah-olah fungsi tersebut berada di server yang sama. Keunggulan gRPC:
Sebelum memulai, pastikan Anda memiliki:
cat /etc/os-release
plesk bin php_handler --list
Output akan menampilkan semua versi PHP yang terinstall di Plesk.
dnf install plesk-php81-devel plesk-php82-devel plesk-php83-devel
dnf install gcc gcc-c++ make autoconf pkg-config zlib-devel
/opt/plesk/php/8.1/bin/pecl channel-update pecl.php.net
/opt/plesk/php/8.1/bin/pecl install grpc
Catatan: Jika metode PECL gagal karena masalah koneksi SSL, lanjutkan ke metode manual.
# 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
Di sini kita akan mengalami 2 skenario berbeda tergantung konfigurasi server:
Buat file konfigurasi terpisah:
echo "extension=grpc.so" > /opt/plesk/php/8.1/etc/php.d/grpc.ini
Jika skenario A tidak bekerja, coba tambahkan ke php.ini:
echo "extension=grpc.so" >> /opt/plesk/php/8.1/etc/php.ini
chmod 755 /opt/plesk/php/8.1/lib64/php/modules/grpc.so
plesk bin service --restart web
systemctl restart plesk-php81-fpm
/opt/plesk/php/8.1/bin/php -m | grep grpc
Output yang diharapkan: grpc
/opt/plesk/php/8.1/bin/php -r "var_dump(extension_loaded('grpc'));"
Output yang diharapkan: bool(true)
/opt/plesk/php/8.1/bin/php -r "echo 'gRPC version: ' . phpversion('grpc') . PHP_EOL;"
/opt/plesk/php/8.1/bin/php --ini | grep grpc
Jika Anda perlu install gRPC untuk PHP versi lain:
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
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
Solusi: Pastikan paket plesk-php*-devel
sudah terinstall
dnf install plesk-php81-devel
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
Solusi: Gunakan metode manual download dengan wget
Solusi: Set permission yang benar
chmod 755 /opt/plesk/php/8.1/lib64/php/modules/grpc.so
<?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
?>
# 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
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.