You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows 10下PHP使用gRPC缺失grpc_php_plugin的解决问询

解决Windows 10下PHP对接gRPC缺少grpc_php_plugin的问题

我之前在Windows环境用PHP 7.x对接gRPC时也碰到过一模一样的困境——官方文档几乎全是Unix环境的指引,Windows版的grpc_php_plugin确实没直接提供下载。结合我踩过的坑,给你分享几个可行的解决方案:

方案一:从源码编译grpc_php_plugin(适合愿意动手折腾的同学)

这是最靠谱的官方途径,就是步骤稍多:

  • 先准备编译工具:安装CMake(3.13及以上版本)和Visual Studio 2019/2022(必须勾选C++开发工具集)
  • 克隆gRPC源码仓库,记得拉取子模块(不然会缺依赖):
    git clone --recurse-submodules -b v1.54.0 https://github.com/grpc/grpc.git
    
    注意:这里的v1.54.0要和你安装的php_grpc.dll版本完全匹配,否则会有兼容性问题
  • 打开CMake GUI,设置源码目录为克隆的grpc文件夹,构建目录选grpc/build
  • 点击「Configure」,选择你的Visual Studio版本和x64平台,等待配置完成
  • 在CMake的选项列表里找到gRPC_BUILD_GRPC_PHP_PLUGIN,勾选这个选项
  • 点击「Generate」,然后打开生成的Visual Studio解决方案,找到grpc_php_plugin项目,右键选择「生成」(选Release模式)
  • 编译完成后,在grpc/build/Release目录下就能拿到grpc_php_plugin.exe

方案二:找社区预编译版本(省心快捷)

不少开发者会分享自己编译好的Windows版插件:

  • 去gRPC的GitHub Issues里搜关键词「windows grpc_php_plugin」,能找到很多用户分享的编译文件,记得选和你的PHP版本(NTS 64位)、gRPC版本匹配的资源
  • 也可以去PECL的grpc扩展页面的讨论区看看,有时候用户会在那里分享编译好的插件

方案三:用WSL绕过Windows环境限制(最稳定的方案)

如果不想在Windows本地折腾,直接用WSL(Windows子系统)是最省心的:

  • 启用WSL并安装Ubuntu/Debian发行版
  • 按照官方的Unix快速入门教程操作:安装PHP、composer、protoc,编译或安装grpc_php_plugin
  • 生成PHP代码后,直接把代码复制回Windows的PHP项目中使用——gRPC的PHP代码是跨平台的,完全不影响后续调用

最后补充个使用提示

拿到grpc_php_plugin.exe后,生成代码的命令格式要注意:

protoc --php_out=./your_output_dir --grpc_out=./your_output_dir --plugin=protoc-gen-grpc=./path/to/grpc_php_plugin.exe your_proto_file.proto

内容的提问来源于stack exchange,提问作者user743436

火山引擎 最新活动