私はGoogleアプリエンジンの「ユーザーサービスの使用」のステップバイステップガイドに従っていますが、アプリサーバーをローカルで実行した後
C:\Users\xxx>dev_appserver.py --php_exectuable_path="C:\Users\xxx\Desktop\php54\php-cgi.exe" C:\Users\xxx\Desktop\FirstPhpPrj\
以下のエラーがポップアップします。
Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed:
No such host is known. in <b>C:\Users\xxx\Desktop\google_appengine\php\sdk\
google\appengine\runtime\RemoteApiProxy.php</b> on line 92
Warning:
file_get_contents(http://localhost:51089)
: failed to open stream:
php_network_getaddresses: getaddrinfo failed: No such host is known. in C
:\Users\xxx\Desktop\google_appengine\php\sdk\google\appengine\runtime\RemoteApiP
roxy.php on line 92
Fatal error: Uncaught exception 'google\net\ProtocolBufferDecodeError'
with message 'Not initialized: login_url' in C:\Users\xxx\Desktop\google_appengin
e\php\sdk\google\appengine\runtime\proto\ProtocolMessage.php:121
Stack trace:
#0 C:\Users\xxx\Desktop\google_appengine\php\sdk\google\appengine\runtime\proto\
ProtocolMessage.php(88): google\net\ProtocolMessage->mergeFromString('')
#1 C:\Users\xxx\Desktop\google_appengine\php\sdk\google\appengine\runtime\Remote
ApiProxy.php(109): google\net\ProtocolMessage->parseFromString('')
#2 C:\Users\xxx\Desktop\google_appengine\php\sdk\google\appengine\runtime\ApiProxy.php(42): google\appengine\runtime\RemoteApiProxy->makeSyncCall('user', 'CreateLoginURL', Object(google\appengine\CreateLoginURLRequest), Object(google\app
engine\CreateLoginURLResponse), NULL)
#3 C:\Users\xxx\Desktop\google_appengine\php\sdk\google\appengine\api
\users\UserService.php(69): google\appengine\runtime\ApiProxy::makeSyncCall('user', 'CreateLoginURL', Object(google\appengine\CreateLoginURLRequest), Object(google in C
:\Users\xxx\Desktop\google_appengine\php\sdk\google\appengine\runtime\proto\ProtocolMessage.php on line 121
ログを参照したところ、2 つの警告と 1 つの致命的なエラーがあります。しかし、php sdk のコーディングを調べた後ではありませんが、「mergeFromString」での空の文字列入力によって引き起こされるこの致命的なエラーは、実際には「」の警告によって引き起こされることに気付きました。
file_get_contents(http://localhost:51089)
そのようなホストは認識されていません」という理由は、RemoteApiProxy.php で CreateLoginURLResponse 関数が使用されているためです。
$serialized_remote_respone = file_get_contents(
'http://localhost:' . $this->apiPort, false, $context);
serialized_remote_response が空の結果を取得すると、次の行のコマンドに影響します。
$remote_response->parseFromString($serialized_remote_respone);
この場合、私自身のコードは、Google のサンプル コードとまったく同じであるため、実際には無関係です: here .
Google App Engine が API サーバーを
http://localhost:51089
まだ認識されていません!このホストを固定しようとしましたが、ウィンドウもエラーをスローしました!