最近几天在做golang的grpc项目,跑通之后想用linux系统下用php作为客户端调用一下grpc服务,结果拉了,一个php的grpc服务安装,搞了好几天,总算搞定了,现将过程记录下来和大家分享。注意,现目前是在linux下的安装的,其它系统暂未测试。
首先来看需要安装的程序:
grpc安装、protobuf安装、编译 gRPC PHP 扩展程序、grpc_php_plugin 依赖安装、在 php.ini 中启用 gRPC 扩展程序。
1、grpc的安装
git clone https://github.com/grpc/grpc cd grpc git submodule update --init make sudo make install
2、protobuf 安装
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.14.0/protoc-3.14.0-linux-x86_64.zip unzip protoc-3.14.0-linux-x86_64.zip # 移动安装proto (cd到解压目录bin中后执行) mv protoc /usr/local/bin # 把`include`目录的内容复制(cd到解压目录include中后执行) cp -r google /usr/local/include
3、编译 gRPC PHP 扩展程序
#方案一 cd src/php/ext/grpc #注意此时处于上边安装的grpc目录下 phpize #此时报错 #Can't find PHP headers in /usr/include/php #The php-devel package is required for use of this command. 安装php-devel 即可,yum install -y php-devel ./configure make sudo make install #方案二 $ grpc_root="$(pwd)" $ cd src/php/ext/grpc $ phpize $ GRPC_LIB_SUBDIR=libs/opt ./configure --enable-grpc="${grpc_root}" $ make $ [sudo] make install
4、grpc_php_plugin 依赖安装
$ git clone -b RELEASE_TAG_HERE https://github.com/grpc/grpc $ cd grpc $ git submodule update --init $ mkdir -p cmake/build $ cd cmake/build $ cmake ../.. $ make protoc grpc_php_plugin
5、在 php.ini 中启用 gRPC 扩展程序
将此行添加到 php.ini 文件中的任意位置,例如 /etc/php7/cli/php.ini。 您可以通过运行 php --ini 找到此文件。extension=grpc.so
最后是根据proto文件,自动生成php客户端相关文件
protoc --proto_path=./ --php_out=./ --grpc_out=./ --plugin=protoc-gen-grpc=/usr/local/bin/grpc_php_plugin grpcdemo.proto
好了,关于在linux下php调用grpc的安装方法的全过程就是以上内容,喜欢的话记得收藏哦!