服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - PHP教程 - php 调用grpc的安装过程详解

php 调用grpc的安装过程详解

2022-11-21 16:17打倒胖虎 PHP教程

这篇文章主要为大家介绍了php调用grpc的安装过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

引言

最近几天在搞golang的grpc,跑通之后想用php作为客户端调用一下grpc服务,结果拉了,一个php的grpc服务安装,搞了好几天,总算搞定了。对了,搞定的是linux下的,自己本地是M1的mac,还没有搞定

需要安装的程序

  • grpc安装
  • protobuf安装
  • 编译 gRPC PHP 扩展程序
  • grpc_php_plugin 依赖安装
  • 在 php.ini 中启用 gRPC 扩展程序

grpc的安装

?
1
2
3
4
5
git clone https://github.com/grpc/grpc
cd grpc
git submodule update --init
make
sudo make install

protobuf 安装

?
1
2
3
4
5
6
7
8
9
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

编译 gRPC PHP 扩展程序

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#方案一
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

grpc_php_plugin 依赖安装

?
1
2
3
4
5
6
7
$ 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

在 php.ini 中启用 gRPC 扩展程序

将此行添加到 php.ini 文件中的任意位置,例如 /etc/php7/cli/php.ini。 

您可以通过运行 php --ini 找到此文件。

extension=grpc.so

根据proto文件,自动生成php客户端相关文件

?
1
protoc --proto_path=./ --php_out=./ --grpc_out=./ --plugin=protoc-gen-grpc=/usr/local/bin/grpc_php_plugin grpcdemo.proto

参考网站 github.com/grpc/grpc/t…

以上就是php 调用grpc的安装过程详解的详细内容,更多关于php调用grpc安装的资料请关注服务器之家其它相关文章!

原文链接:https://juejin.cn/post/7143433324457902116

延伸 · 阅读

精彩推荐