Cara Install gRPC PHP di AlmaLinux 9 Plesk: Tutorial Mudah

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:
- Performance Tinggi: Menggunakan HTTP/2 dan Protocol Buffers (binary format)
- Multi-language Support: Mendukung berbagai bahasa pemrograman
- Streaming: Mendukung data streaming real-time
- Type-safe: Struktur data terdefinisi dengan jelas
Prerequisites
Sebelum memulai, pastikan Anda memiliki:
- Server AlmaLinux 9 dengan Plesk Panel
- Akses root/sudo ke server
- PHP versi 7.4+ terinstall di Plesk
- Koneksi internet yang stabil
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
\Grpc\ChannelCredentials::createInsecure() ]); // Implementasi service call // ... kode gRPC client Anda ?>
Test gRPC dari Command Line
# Buat file test cat > /tmp/test_grpc.php << 'EOF' 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:
- Komunikasi antar microservices
- API dengan performance tinggi
- Aplikasi real-time
- Sistem terdistribusi
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.