php 使用grpc
当前环境版本:
ubuntu24 php8.2 laravel12 grpc1.57.0 protobuf 3.21.12
一、要求所有工具,软件,扩展,版本要兼容:
1protoc 工具版本 == protobuf 版本 如:3.21.12 对应的grpc版本1.57.0
2grpc 版本 1.57.0
3protobuf 3.21.12
composer require "grpc/grpc:1.57.0" "google/protobuf:v3.21.12"
安装相应的grpc_php_plugin :
git clone -b v1.57.0 https://github.com/grpc/grpc --recurse-submodules
cd grpc
mkdir -p cmake/build
cd cmake/build
cmake -DgRPC_BUILD_TESTS=OFF -DCMAKE_BUILD_TYPE=Release ../..
make grpc_php_plugin -j$(nproc)
sudo cp grpc_php_plugin /usr/local/bin/
sudo chmod +x /usr/local/bin/grpc_php_plugin
二、php 扩展 直接指定版本安装:
sudo pecl install grpc-1.57.0
sudo pecl install protobuf-3.21.12
三、使用命令生成proto的代码
protoc --php_out=./app/Grpc --grpc_out=./app/Grpc --plugin=protoc-gen-grpc=/usr/local/bin/grpc_php_plugin --proto_path=./proto ./proto/host.proto
四、composer.json文件添加两行代码,Service和GPBMetadata 命名空间
"autoload": {
"psr-4": {
"Service\\": "app/Grpc/Service/",
"GPBMetadata\\": "app/Grpc/GPBMetadata/",
}
},
注意: 可能需要php 删除几个禁用函数(解禁)

浙公网安备 33010602011771号