php.ini ファイル

App Engine アプリケーションには php.ini ファイルを用意できます。このファイルを使用すると、PHP インタープリタ ディレクティブの動作をカスタマイズできます。

php.ini について

php.ini ファイルは、アプリケーションのベース ディレクトリ(app.yaml ファイルと同じディレクトリ)に配置する必要があります。このファイルは、アプリケーション コードの実行前に PHP インタープリタが初期化されるときに読み込まれます。

このファイルは、他の .ini ファイルと同じ構文に従います。以下に簡単な例を示します。

; This is a simple php.ini file on App Engine
; It enables output buffering for all requests by overriding the
; default setting of the PHP interpreter.
output_buffering = "On"

コア ディレクティブのリストとその変更可能なモード値は、php.net に公開されています。拡張機能によって処理される php.ini ディレクティブは、拡張機能のそれぞれのページに記載されています。

次の変更可能なモード値のいずれかを持つ PHP ディレクティブは、オーバーライドできます。

  • PHP_INI_SYSTEM
  • PHP_INI_ALL
  • PHP_INI_PERDIR

一部の関数は、App Engine の PHP 実装で無効になっています。これらの関数を対象にするディレクティブに効果はありません。

extension ディレクティブを使用すると、動的に読み込み可能な拡張機能のセットを有効にできます。

App Engine の PHP ディレクティブ

次のディレクティブは App Engine 環境に固有のもので、php.ini ファイルに含めることができます。

  • google_app_engine.enable_curl_lite - 1 に設定すると、cURL lite、組み込み、App Engine 固有の cURL バージョンを有効にします。cURL lite は、標準の cURL 関数とほぼ同様に使用できますが、これはソケットではなく URL 取得を内部で呼び出します。このため、URL 取得を使用しない場合と同様に機能し、CurlLiteMethodNotSupportedException をスローします。

    注: アプリで curl.so 拡張機能と cURL lite を同時に有効にすることはできません。後者は cURL 関数をオーバーロードします。

  • google_app_engine.enable_functions - App Engine で無効になっている関数です。このディレクティブを使用して再度有効にできます。関数名のカンマ区切りのリストを返します。
    google_app_engine.enable_functions = "phpversion, phpinfo"
  • google_app_engine.allow_include_gs_buckets - アプリケーションで、Google Cloud Storage に保存されたファイルに include または require ステートメントを使用できます。

    注: デフォルトのバケットに #default# を使用できます。この値は、ランタイムに現在のデフォルト バケット名に自動的に置き換えられます。

    たとえば、ファイルを含むバケット bucket_1bucket_2 をカンマ区切りで指定して、デフォルトのバケットリストを取得します。

    google_app_engine.allow_include_gs_buckets = "#default#, bucket_1, bucket_2"

    次のように、バケットとそれに含まれるファイルへのパスを指定することもできます。

    google_app_engine.allow_include_gs_buckets = "bucket_1/path_x"

    GCS から組み込まれるファイルが確認されるときに、指定したパスがファイル名の先頭に一致する接頭辞として扱われます。たとえば、上の例のパスを使用すると、接頭辞が一致した場合は gs://bucket_1/path_x/... からファイルが組み込まれ、接頭辞が一致しない場合は gs://bucket_1 or gs://bucket_1/path_y/ から組み込まれます。

    アップロードしたファイルが許可されたバケットに移動すると、LFI 攻撃の可能性を知らせる警告がユーザーに表示されます。このような場合は、より制限の厳しいパスを使用する必要があります。

    注: パスはファイル接頭辞として扱われます。google_app_engine.allow_include_gs_buckets = "bucket_1/path_x.ext", "bucket_2/path_z/some_file.ext のように、特定のファイルを指定することもできます。

  • google_app_engine.disable_readonly_filesystem - デフォルトでは、PHP アプリケーションからファイルシステムに書き込むことはできません。このディレクティブを 1 に設定すると、ローカル開発環境の制限が解除されます。この設定は、本番環境で実行されているアプリケーションには適用されません。これらのアプリケーションは常にサンドボックスの制限を受けます。
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

PHP の App Engine スタンダード環境