Install the PHP gRPC extension
Google’s gRPC is a remote procedure call (RPC) framework that communicates over HTTP/2, uses Protocol Buffers to serialize data, works across programming languages, and provides many other features such as pluggable authentication.
The gRPC extension supports PHP 5.6+.
Install the gRPC extension
Installing the extension involves the following steps:
- Install build dependencies (packages that are required to build the extension).
- Build the extension’s library file.
- Enable the extension in the PHP configuration.
Install build dependencies
Set environment variables for the package manager.
export DEBIAN_FRONTEND=noninteractive
Install a compiler and other packages that are required for building PHP extensions.
sudo apt-get -y install gcc g++ make autoconf libc-dev pkg-config
Install additional packages that are required to build the gRPC extension.
sudo apt-get -y install zlib1g-dev
Build the extension
The PECL install
command compiles the extension’s .so
library file.
yes '' | sudo pecl8.4-sp install grpc
yes '' | sudo pecl8.3-sp install grpc
yes '' | sudo pecl8.2-sp install grpc
yes '' | sudo pecl8.1-sp install grpc
yes '' | sudo pecl8.0-sp install grpc
yes '' | sudo pecl7.4-sp install grpc
yes '' | sudo pecl7.3-sp install grpc
yes '' | sudo pecl7.2-sp install grpc
yes '' | sudo pecl7.1-sp install grpc
yes '' | sudo pecl7.0-sp install grpc
yes '' | sudo pecl5.6-sp install grpc
Enable the extension
Configure PHP to load the extension.
sudo bash -c "echo extension=grpc.so > /etc/php8.4-sp/conf.d/grpc.ini"
sudo bash -c "echo extension=grpc.so > /etc/php8.3-sp/conf.d/grpc.ini"
sudo bash -c "echo extension=grpc.so > /etc/php8.2-sp/conf.d/grpc.ini"
sudo bash -c "echo extension=grpc.so > /etc/php8.1-sp/conf.d/grpc.ini"
sudo bash -c "echo extension=grpc.so > /etc/php8.0-sp/conf.d/grpc.ini"
sudo bash -c "echo extension=grpc.so > /etc/php7.4-sp/conf.d/grpc.ini"
sudo bash -c "echo extension=grpc.so > /etc/php7.3-sp/conf.d/grpc.ini"
sudo bash -c "echo extension=grpc.so > /etc/php7.2-sp/conf.d/grpc.ini"
sudo bash -c "echo extension=grpc.so > /etc/php7.1-sp/conf.d/grpc.ini"
sudo bash -c "echo extension=grpc.so > /etc/php7.0-sp/conf.d/grpc.ini"
sudo bash -c "echo extension=grpc.so > /etc/php5.6-sp/conf.d/grpc.ini"
Restart PHP-FPM.
sudo service php8.4-fpm-sp restart
sudo service php8.3-fpm-sp restart
sudo service php8.2-fpm-sp restart
sudo service php8.1-fpm-sp restart
sudo service php8.0-fpm-sp restart
sudo service php7.4-fpm-sp restart
sudo service php7.3-fpm-sp restart
sudo service php7.2-fpm-sp restart
sudo service php7.1-fpm-sp restart
sudo service php7.0-fpm-sp restart
sudo service php5.6-fpm-sp restart
Verify the extension is enabled in PHP.
php8.4-sp -i | grep grpc
php8.3-sp -i | grep grpc
php8.2-sp -i | grep grpc
php8.1-sp -i | grep grpc
php8.0-sp -i | grep grpc
php7.4-sp -i | grep grpc
php7.3-sp -i | grep grpc
php7.2-sp -i | grep grpc
php7.1-sp -i | grep grpc
php7.0-sp -i | grep grpc
php5.6-sp -i | grep grpc
If the extension is enabled, you will see output like the following.
grpcgrpc support => enabledgrpc module version => 1.9.0
Uninstall the gRPC extension
Uninstalling the extension involves the following steps:
- Disable the extension in the PHP configuration.
- Remove the extension’s library file.
Disable the extension
Remove the extension’s configuration from PHP.
sudo rm /etc/php8.4-sp/conf.d/grpc.ini
sudo rm /etc/php8.3-sp/conf.d/grpc.ini
sudo rm /etc/php8.2-sp/conf.d/grpc.ini
sudo rm /etc/php8.1-sp/conf.d/grpc.ini
sudo rm /etc/php8.0-sp/conf.d/grpc.ini
sudo rm /etc/php7.4-sp/conf.d/grpc.ini
sudo rm /etc/php7.3-sp/conf.d/grpc.ini
sudo rm /etc/php7.2-sp/conf.d/grpc.ini
sudo rm /etc/php7.1-sp/conf.d/grpc.ini
sudo rm /etc/php7.0-sp/conf.d/grpc.ini
sudo rm /etc/php5.6-sp/conf.d/grpc.ini
Restart PHP-FPM.
sudo service php8.4-fpm-sp restart
sudo service php8.3-fpm-sp restart
sudo service php8.2-fpm-sp restart
sudo service php8.1-fpm-sp restart
sudo service php8.0-fpm-sp restart
sudo service php7.4-fpm-sp restart
sudo service php7.3-fpm-sp restart
sudo service php7.2-fpm-sp restart
sudo service php7.1-fpm-sp restart
sudo service php7.0-fpm-sp restart
sudo service php5.6-fpm-sp restart
Remove the extension
The PECL uninstall
command removes the extension’s .so
library file.
sudo pecl8.4-sp uninstall grpc
sudo pecl8.3-sp uninstall grpc
sudo pecl8.2-sp uninstall grpc
sudo pecl8.1-sp uninstall grpc
sudo pecl8.0-sp uninstall grpc
sudo pecl7.4-sp uninstall grpc
sudo pecl7.3-sp uninstall grpc
sudo pecl7.2-sp uninstall grpc
sudo pecl7.1-sp uninstall grpc
sudo pecl7.0-sp uninstall grpc
sudo pecl5.6-sp uninstall grpc