安装适用于 PHP 的 gRPC

gRPC 是一种高性能的现代开源远程过程调用框架。 如果要将 PHP 客户端库用于已启用 gRPC 的 API,则必须安装适用于 PHP 的 gRPC。本教程介绍如何安装和启用 gRPC。

目标

  • 安装适用于 PHP 的 gRPC 扩展程序。
  • 启用适用于 PHP的 gRPC 扩展程序。

使用要求

  • PHP 7.0 或更高版本
  • PECL(除非从源代码构建)
  • Composer

安装 PECL

Ubuntu / Debian

sudo apt-get install autoconf zlib1g-dev php-dev php-pear

如果使用的是 PHP 7.4 或更高版本,则必须使用 --with-pear 标记安装 PHP。

CentOS / RHEL 7

 sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
 sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
 sudo yum install php-devel php-pear gcc zlib-devel

macOS

 curl -O https://pear.php.net/go-pear.phar
 sudo php -d detect_unicode=0 go-pear.phar

Windows

Windows 不需要 PECL。

安装 Composer

Linux

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

macOS

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

Windows

按照适用于 Windows 的官方 Composer 安装说明进行操作。

安装 gRPC 扩展程序

使用 PECL

sudo pecl install grpc

这会将 gRPC PHP 扩展程序编译并安装到标准的 PHP 扩展程序目录中。

从源代码构建

按照这些说明从源代码编译 gRPC 核心库和 PHP 扩展程序。

  1. 从 GitHub 克隆 gRPC 代码库。

    git clone https://github.com/grpc/grpc
    
  2. 构建并安装 gRPC C 核心库。

    cd grpc
    git submodule update --init
    make
    sudo make install
    
    It can take a few minutes to download and execute the library.
    If you have git version 1.8.4 or greater, you can speed up
    the `git submodule update --init` command by adding the `--depth=1`
    flag.
    
  3. 编译 gRPC PHP 扩展程序。

    cd src/php/ext/grpc
    phpize
    ./configure
    make
    sudo make install
    

Windows

Windows 用户可以直接从 PECL 网站下载预编译的 gRPC。

阅读关于在 Windows 上安装扩展程序的 PHP 文档

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

Linux / macOS

将此行添加到 php.ini 文件中的任意位置,例如 /etc/php7/cli/php.ini。 您可以通过运行 php --ini 找到此文件。

extension=grpc.so

Windows

将此行添加到 php.ini 文件中的任意位置,例如 C:\Program Files\PHP\7.3\php.ini

extension=php_grpc.dll

将 gRPC 添加为 Composer 依赖项

使用 Composer 将 grpc/grpc 软件包添加到 PHP 项目中:

composer require "grpc/grpc:^1.38"

安装 protobuf 运行时库

您可以从两个 protobuf 运行时库中进行选择。它们提供的 API 是相同的。C 实现可提供比 PHP(原生)实现更高的性能,而原生实现比 C 实现更易于安装。

C 实现

为了使 gRPC 实现更好的性能,请求拍卖行 protobuf C 扩展程序。

Linux/macOS

使用 PECL 安装 protobuf.so 扩展程序。

sudo pecl install protobuf

接下来,将这行内容添加到您的 php.ini 文件(例如 /etc/php5/cli/php.ini)中。

extension=protobuf.so

Windows

直接从 PECL 网站下载预编译的 protobuf 扩展程序。

接下来,将这行内容添加到您的 php.ini 文件(例如 C:\Program Files\PHP\7.3\php.ini)中。

extension=php_protobuf.dll

PHP 实现

为了便于安装,使用 Composer 对 google/protobuf 软件包执行 require 命令。

composer require "google/protobuf:^3.17"

后续步骤

现在您已安装 gRPC 和 gRPC PHP 扩展程序,请试用启用了 gRPC 的 API,例如 Spanner