2

PHPを使用してGoogle Cloud Spannerを試してみます。私はすでにgCloudの設定とすべてを行いました。今私はスパナであるデータベースでCRUD操作を行うためにPHPを経由して接続を確立する必要がありますが、以下のコードは常にエラーを返します:エラーGRPCスパナGoogle Cloud with PHP

PHP Fatal error: Undefined constant 'Grpc\STATUS_UNKNOWN' in /xxx/xxxx/www/vendor/google/cloud-spanner/Connection/Grpc.php on line 129

私が持っているコードは次のとおりです。

<?php 
require 'vendor/autoload.php'; 

use Google\Cloud\Spanner\SpannerClient; 

/* Error start here */ 
$spanner = new SpannerClient([ 
    'projectId' => 'my-project-id' 
]); 

$db = $spanner->connect('instance', 'database'); 

$userQuery = $db->execute('SELECT * FROM usuario WHERE login = @login', [ 
    'parameters' => [ 
     'login' => 'devteam' 
    ] 
]); 

$user = $userQuery->rows()->current(); 

echo 'Hello ' . $user['login']; 
私は作曲に使用

要件は以下のとおりです。

"require": { 
     "google/cloud": "^0.32.1", 
     "google/cloud-spanner": "^0.2.2" 
} 

私はブラウザを介して入力した場合、エラーが提示していることに気づきました上記は引き続き表示されます。端末上にphp teste.phpというコマンドを実行すると、スクリプトが正しく実行されます。つまり、端末は動作し、ブラウザは正しく動作しません。

答えて

2

Google Cloud PHPのスパナクライアントはgRPCのみです。あなたはcomposer.jsonにgoogle/proto-client-phpgoogle/gaxを追加し、composer updateを実行する、ことを行っているたら

pecl install grpc 

:これは、あなたがgRPC PHP拡張モジュールをインストールする必要があります、それを使用することを意味します。これが行われた後、エラーは解決されます。

+0

必要なバージョンで引用した依存関係のあるクラウドスパナをインストールしましたが、何も起こりません。私もGRPCをインストールし、それはいいです。私がここでテストしたところ、私がブラウザで入力した場合、投稿に報告されたエラーが返されますが、端末** php teste.php **を入力するとスクリプトが正常に実行されます。 –

+0

PHPのインストールで、Webサーバーとcliに異なる構成ファイルが使用されているかのように聞こえます。 Webサーバーのphp.iniファイルにも 'extension = grpc.so'を追加してください。 – jdp

+0

ブラウザで 'phpinfo()'を実行すると、上部に '設定ファイル(php.ini)パス"というラベルの 'php.ini'へのパスがあります。 'php -i |を実行するgrep "設定ファイル(php.ini)"には、別のパスまたはファイル名が表示されます。 – jdp

1

詳細な手順については、this pageを参照してください.GRPC for PHPをインストールして有効にしてください!

0

CLIでは動作していてもブラウザでは動作しないと言われているので、あなたのphp Webサーバーの設定でgrpc拡張を有効にする必要があると言えるでしょう。

など。 extension=grpc.soを/etc/php/5.6/apache2/php.iniに追加

関連する問題