gRPC for PHP のインストール

gRPC は、最新のオープンソースの高性能リモート プロシージャ コール フレームワークです。gRPC 対応 API 用の PHP クライアント ライブラリを使用する場合は、gRPC for PHP をインストールする必要があります。このチュートリアルでは、gRPC をインストールして有効にする方法を説明します。

目標

  • gRPC for PHP 拡張機能をインストールします。
  • gRPC for PHP 拡張機能を有効にします。

要件

  • 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 for 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 for 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 ランタイム ライブラリをインストールする

2 つの 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 パッケージを要求します。

composer require "google/protobuf:^3.17"

次のステップ

gRPC と gRPC for PHP 拡張機能のインストールが完了したら、Spanner などの gRPC 対応 API を試してみましょう。