Google AdsのMCCアカウントでキーワードプランナーを無料で使えるようにするまでの記事の続きで、Google Ads APIを使用するための手順を整理する。
サービスの概要 | Google Ads API Beta | Google Developersに目を通すと、
事前にgRPCを使えるようにしておいてほしいとのことで、gRPC for PHPのインストールを行う。
※gRPCの仕組みは難しいので今回の記事では端折る
gRPC – A high-performance, open source universal RPC framework
gRPC for PHPのインストール | Google Cloudのページを読むと、PHPでgRPCを利用するためには、事前に、
PHPのPEAR(PECL)と、
PEAR - PHP Extension and Application Repository
PECL :: The PHP Extension Community Library
Composerを使えるようにしておく必要がある。
Composer - A Dependency Manager for PHP
今回の記事は下記の環境で話を進める。
OS:Ubuntu 19.10
Apache 2.4.43
PHP 7.4.5 FPM/FastCGI
最初にPECLの方を使用できるようにするため、端末で下記のコマンドを実行する。
$ sudo apt install autoconf libz-dev php7.4-dev php-pear #peclコマンドが使用できるようになったか? $ pecl
続いて、Composerのインストールを行う。
せっかくなので、公式サイトの方のインストール方法に従って操作することにする。
下記のコマンドを実行する。
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" $ php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" $ sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer php -r "unlink('composer-setup.php');" #composerのインストールを確認 $ composer -V
これでgRPC for PHPのインストールの準備ができた。
gRPC for PHPのインストールのために下記のコマンドを実行する。
※Composerをインストールしたけれども、Composerを使用しない手順の方にする
$ sudo pecl install grpc
gRPCをインストールできたら、php.iniにextensionとして登録しておく必要があるが、ここで一つ注意が必要で、gRPCをコマンドラインから使用するのであれば、cliの方のphp.iniを変更する必要がある。
意味があるかどうかわからないけれども、ブラウザを介してもgRPCを使えるようにしておく。
/etc/php/7.4/cli/php.iniと/etc/php/7.4/fpm/php.iniに下記の行を追加する。
extension=grpc.so
続いて、PECL経由でprotobufをインストールするために下記のコマンドを実行する。
$ sudo pecl install protobuf
Protocol Buffers | Google Develoers
gPRC同様、protobufもphp.iniに登録するために、/etc/php/7.4/cli/php.iniと/etc/php/7.4/fpm/php.iniに下記の行を追加する。
extension=protobuf.so
これで設定は終了。サンプルコードを試すべきだけれども、サンプルコードの準備が大変なので、FPMの方のphp.iniにもextensionを追加した方で確認する。
phpinfo();で
grpcとprotobufが追加されていることが確認できたので良しとしよう。
補足
cliの方ではphp -m で確認できる。