PHP 用の gRPC をインストールする

目標

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

要件

  • PHP 5.5 以降または PHP 7.0 以降
  • PECL(ソースからビルドしていない場合)
  • Composer

PECL をインストールする

Ubuntu / Debian

PHP5 の場合

sudo apt-get install php5-dev php-pear phpunit

PHP7 の場合

sudo apt-get install php7.0-dev php-pear phpunit

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 php56w-devel php-pear phpunit gcc zlib-devel

Mac

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

Composer をインストールする

Linux または Mac

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

gRPC 拡張機能をインストールする

PECL を利用する

sudo pecl install grpc

これにより、gRPC PHP 拡張機能がコンパイルされ、標準の PHP 拡張ディレクトリにインストールされます。

ソースからビルドする

以下の手順に従って、gRPC コアライブラリと PHP 拡張機能をソースからコンパイルします。

  1. GitHub から gRPC レポジトリのクローンを作成します。

    git clone -b $(curl -L http://grpc.io/release) https://github.com/grpc/grpc
    
  2. gRPC C コアライブラリをビルドしてインストールします。

    cd grpc
    git pull --recurse-submodules && git submodule update --init --recursive
    make
    sudo make install
    
  3. gRPC PHP 拡張機能をコンパイルします。

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

php.ini で gRPC 拡張機能を有効にする

この行を php.ini ファイルに追加します。php.ini の例: /etc/php5/cli/php.ini

extension=grpc.so

gRPC を Composer 依存関係として追加する

Composer を使用して grpc/grpc パッケージを要求します。

composer require "grpc/grpc:^v1.1.0"

Protobuf ランタイム ライブラリをインストールする

2 つの protobuf ランタイム ライブラリの中から選択します。提供される API の観点では、両者は同一です。C 実装はより高いパフォーマンスを提供しますが、ネイティブ実装はインストールがより簡単です。

C 実装

より良い gRPC のパフォーマンスを得るには、PECL を使用して protobuf.so 拡張機能をインストールします。

sudo pecl install protobuf

ここで、この行を php.ini ファイルに追加します。例: /etc/php5/cli/php.ini

extension=protobuf.so

PHP 実装

簡単にインストールするには、Composer を使用して google/protobuf パッケージを要求するだけです。

composer require "google/protobuf:^v3.3.0"

次の手順

これで、gRPC と gRPC PHP 拡張機能がインストールされたため、Cloud Spanner などの gRPC 対応 API を試すことができます。

このページは役立ちましたか?評価をお願いいたします。