takaya030の備忘録

PHP、Laravel、Docker などの話がメインです

Google App Engine for PHP で cURL を使う

Google App Engine for PHP (以下、GAE)で cURL を使えるように設定したときのメモ

GAE で cURL を有効化する設定

2016年3月現在、GAE はデフォルト状態で cURL を使用することはできません。
下記の通り app.yamlphp.ini を変更することで通常の cURL とサブセット版である cURL_lite が使用可能となります。

cURL_lite
  • php.ini に以下の設定を追加
google_app_engine.enable_curl_lite = "1"
  • app.yaml の runtime を php55 に変更
runtime: php55

cURL_lite はいくつかの機能が未実装なため、ローカルサーバーでは正常に動作していても、デプロイした先でエラーが発生することがあります。
自分の場合、以下のようなエラーが発生しました。

exception 'google\appengine\runtime\CurlLiteOptionNotSupportedException' with message 'Option 10065 is not supported by this curl implementation.' in /base/data/home/runtimes/php/sdk/google/appengine/runtime/CurlLite.php:487
cURL
  • php.ini に以下の設定を追加
extension = "curl.so"

cURL_lite の設定 (google_app_engine.enable_curl_lite) が残っていると正常動作しないので 削除します。

  • app.yaml の runtime を php55 に変更
runtime: php55
  • GAE の課金設定を有効にする

Google App Engine の設定画面で課金を有効にします。
課金を有効にしても無料枠内の使用であれば課金されることはありません。

cURL の設定を使用することで cURL が使用可能となりました。