服务器环境: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