PHP grpc环境搭建(宝塔环境)

服务器环境:centos7,php7.4

1. 安装grpc扩展


# 下载解压 grpc
cd ~
wget http://pecl.php.net/get/grpc-1.30.0.tgz
tar xvf grpc-1.30.0.tgz
cd grpc-1.30.0
 
# 生成配置并编译安装(编译安装时间较长, 耐心等待)
/www/server/php/74/bin/phpize
./configure --with-php-config=/www/server/php/74/bin/php-config
make && make install
 
# 配置PHP扩展, 重启PHP服务, 清理下载文件
echo "extension = grpc.so" >> /www/server/php/74/etc/php.ini
/etc/init.d/php-fpm-74 reload
/www/server/php/74/bin/php -m|grep -i  gRPC
cd .. && rm -rf grpc-1.30.0*

2. 安装protobuf扩展

 
# 下载解压 protobuf
cd ~
wget http://pecl.php.net/get/protobuf-3.12.2.tgz
tar xvf protobuf-3.12.2.tgz
cd protobuf-3.12.2
 
# 生成配置并编译安装(编译安装时间较长, 耐心等待)
/www/server/php/74/bin/phpize
./configure --with-php-config=/www/server/php/74/bin/php-config
make && make install
 
# 配置PHP扩展, 重启PHP服务, 清理下载文件
echo "extension = protobuf.so" >> /www/server/php/74/etc/php.ini
/etc/init.d/php-fpm-74 reload
/www/server/php/74/bin/php -m|grep -i  protobuf
cd .. && rm -rf protobuf-3.12.2*
 

3. 两个扩展安装完成并重启php服务,输入 php -m,出现grpc,protobuf证明扩展安装成功!

4. 创建grpc_php_plugin插件


cd ~
git clone  https://github.com/grpc/grpc
cd grpc
git submodule update --init
mkdir -p cmake/build
cd cmake/build
cmake ../..
make protoc grpc_php_plugin
mv ./grpc_php_plugin /usr/local/bin

5. 在第四点进行cmake可能会出现一下以下报错

 CMake Error at CMakeLists.txt:4 (CMAKE_MINIMUM_REQUIRED):
CMake 3.5.4 or higher is required. You are running version 2.8.12.2
-- Configuring incomplete, errors occurred!

提示CMake版本低,需要更高版本。


#下载cmake
wget https://cmake.org/files/v3.9/cmake-3.9.2.tar.gz

#解压文件
tar zxvf  cmake-3.9.2.tar.gz

cd cmake-3.9.2

#编译安装
./configure
make
sudo make install
cmake --version


6. 安装高版本cmake,执行cmake命令可能会出现以下报错

Cmake出现CMake Error: Could not find CMAKE_ROOT !!!

只需运行 hash -r 即可解决。

7. 生成rpc客户端代码

protoc proxy.proto --php_out=.././rpc --grpc_out=.././rpc --plugin=protoc-gen-grpc=/usr/local/bin/grpc_php_plugin