gRPC für PHP installieren

gRPC ist ein modernes Open-Source-Framework für hochleistungsfähige Remote-Prozeduraufrufe. Wenn Sie PHP-Clientbibliotheken für gRPC-fähige APIs verwenden möchten, müssen Sie gRPC für PHP installieren. In dieser Anleitung erfahren Sie, wie Sie gRPC installieren und aktivieren.

Lernziele

  • gRPC-Erweiterung für PHP installieren
  • gRPC-Erweiterung für PHP aktivieren

Voraussetzungen

  • PHP 7.0 oder höher
  • PECL (Sofern die Erstellung nicht aus der Quelle erfolgt)
  • Composer

PECL installieren

Ubuntu/Debian

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

Wenn Sie PHP 7.4+ oder höher verwenden, muss PHP mit dem Flag --with-pear installiert worden sein.

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

Für Windows ist PECL nicht erforderlich.

Composer installieren

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

Folgen Sie der offiziellen Installationsanleitung für Composer für Windows.

gRPC-Erweiterung installieren

PECL verwenden

sudo pecl install grpc

Damit kompilieren und installieren Sie die gRPC PHP-Erweiterung im Standardverzeichnis für PHP-Erweiterungen.

Aus Quelle erstellen

Folgen Sie dieser Anleitung, um die gRPC Core-Bibliothek und die PHP-Erweiterung aus der Quelle zu erstellen.

  1. Klonen Sie das gRPC-Repository von GitHub.

    git clone https://github.com/grpc/grpc
    
  2. Erstellen und installieren Sie die gRPC C Core-Bibliothek.

    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. Kompilieren Sie die gRPC PHP-Erweiterung.

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

Windows

Windows-Nutzer können den vorkompilierten gRPC direkt von der PECL-Website herunterladen.

PHP-Dokumentation zum Installieren von Erweiterungen unter Windows ansehen

gRPC-Erweiterung in php.ini aktivieren

Linux/MacOS

Fügen Sie diese Zeile an einer beliebigen Stelle in Ihrer php.ini-Datei ein, z. B. /etc/php7/cli/php.ini. Sie können durch Ausführen von php --ini nach dieser Datei suchen.

extension=grpc.so

Windows

Fügen Sie diese Zeile an einer beliebigen Stelle in Ihrer php.ini-Datei ein, z. B. C:\Program Files\PHP\7.3\php.ini.

extension=php_grpc.dll

gRPC als Composer-Abhängigkeit hinzufügen

Fügen Sie Ihrem PHP-Projekt mit Composer das Paket grpc/grpc hinzu:

composer require "grpc/grpc:^1.38"

protobuf-Laufzeitbibliothek installieren

Sie können zwischen zwei protobuf-Laufzeitbibliotheken wählen. Die von ihnen angebotenen APIs sind identisch. Die C-Implementierung funktioniert besser als die (native) PHP-Implementierung, während die native Implementierung einfacher ist als die C-Implementierung.

C-Implementierung

Aktivieren Sie für eine bessere Leistung mit gRPC die protobuf-C-Erweiterung.

Linux/macOS

Installieren Sie die Erweiterung protobuf.so mithilfe von PECL.

sudo pecl install protobuf

Fügen Sie diese Zeile nun zu der php.ini-Datei hinzu, z. B. /etc/php5/cli/php.ini.

extension=protobuf.so

Windows

Laden Sie die vorkompilierte protobuf-Erweiterung direkt von der PECL-Website herunter.

Fügen Sie diese Zeile nun zu der php.ini-Datei hinzu, z. B. C:\Program Files\PHP\7.3\php.ini.

extension=php_protobuf.dll

PHP-Implementierung

Fordern Sie für eine einfachere Installation das Paket google/protobuf mithilfe von Composer an.

composer require "google/protobuf:^3.17"

Nächste Schritte

Nachdem Sie gRPC und die gRPC PHP-Erweiterung installiert haben, testen Sie gRPC-fähige APIs wie Spanner.