Datei php.ini
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Sie können in Ihre App Engine-Anwendung eine php.ini-Datei einbinden. Diese Datei bietet die Möglichkeit, das Verhalten der PHP-Interpreter-Anweisungen anzupassen.
Informationen zu php.ini
Die Datei php.ini
sollte sich im Basisverzeichnis einer Anwendung befinden (im selben Verzeichnis wie die Datei app.yaml
). Sie wird mit der Initialisierung des PHP-Interpreters geladen, bevor der Anwendungscode ausgeführt wird.
Für die Datei gilt die gleiche Syntax wie für andere INI-Dateien. Im Folgenden ist dafür ein einfaches Beispiel dargestellt:
; This is a simple php.ini file on App Engine
;
; This is a directive set to "On"
widget_compression = "On"
Eine Liste der Kernanweisungen mit ihren änderbaren Moduswerten wird auf php.net veröffentlicht. Die php.ini
-Anweisungen, die von Erweiterungen verarbeitet werden, sind auf den jeweiligen Seiten der Erweiterungen selbst dokumentiert.
Sie können jede PHP-Anweisung überschreiben, die einen der folgenden bearbeitbaren Moduswerte enthält:
PHP_INI_SYSTEM
PHP_INI_ALL
PHP_INI_PERDIR
Beachten Sie, dass einige Funktionen in der App Engine-Implementierung von PHP deaktiviert wurden. Anweisungen, die sich auf diese Funktionen beziehen, haben keine Wirkung.
Mit der extension
-Anweisung kann eine Reihe von
dynamisch geladenen Erweiterungen aktiviert werden.
PHP-Anweisungen für App Engine
Die im Folgenden aufgeführten Anweisungen gelten nur für die App Engine-Umgebung. Sie können in die Datei php.ini aufgenommen werden.
google_app_engine.enable_curl_lite
- Aktiviert "cURL Lite", eine integrierte, App Engine-spezifische Version von cURL, wenn "1" festgelegt ist.
"cURL lite" kann genauso wie die standardmäßigen cURL-Funktionen verwendet werden, ruft jedoch URL Fetch im Hintergrund statt Sockets ab, d. h. Funktionen ohne URL-Abruf-Äquivalent, lösen einen CurlLiteMethodNotSupportedException
aus.
Hinweis: Anwendungen können nicht gleichzeitig die Erweiterung "curl.so" und "cURL Lite" aktivieren, da "cURL Lite" die cURL-Funktionen zu stark beansprucht.
google_app_engine.enable_functions
- Funktionen deaktiviert in App Engine kann aber mithilfe dieser Anweisung wieder aktiviert werden. Geben Sie die Funktionsnamen durch Kommas getrennt in einem String an:
google_app_engine.enable_functions = "phpversion, phpinfo"
google_app_engine.allow_include_gs_buckets
- Ihre Anwendung kann die include
oder require
Anweisungen mit in Google Cloud Storage gespeicherten Dateien verwenden.
Hinweis: Sie können #default#
für den Standard-Bucket verwenden. Dieser Wert wird zur Laufzeit automatisch durch Ihren aktuellen Standard-Bucket-Namen ersetzt.
Listen Sie beispielsweise den Standard-Bucket zusammen mit den Buckets bucket_1
und bucket_2
auf, die die Dateien in einem kommagetrennten String enthalten:
google_app_engine.allow_include_gs_buckets = "#default#, bucket_1, bucket_2"
Sie können auch einen Bucket und einen Pfad zu Dateien angeben, die aufgenommen werden sollen. Beispiel:
google_app_engine.allow_include_gs_buckets = "bucket_1/path_x"
Bei der Prüfung der aus Google Cloud Storage aufzunehmenden Dateien wird der angegebene Pfad als Präfix behandelt. Alle Dateien, deren Namensanfang mit dem Präfix übereinstimmt, können aufgenommen oder angefordert werden. Wenn Sie beispielsweise das Pfadbeispiel oben verwenden, können Nutzer mit dem angegebenen Pfad Dateien von gs://bucket_1/path_x/...
einschließen, da das Präfix übereinstimmt, aber nicht von gs://bucket_1 or gs://bucket_1/path_y/
, da das Präfix nicht übereinstimmt.
Wenn eine hochgeladene Datei in einen zulässigen "Einschließen" -Bucket verschoben wird, wird eine Warnung generiert, um den Nutzer auf einen möglichen LFI -Anfall hinzuweisen. Sie sollten dann einen restriktiveren Pfad verwenden.
Hinweis: Der Pfad wird als Dateipräfix behandelt. Es kann also auch eine bestimmte Datei enthalten, z. B. 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-Anwendungen dürfen standardmäßig nicht in das Dateisystem schreiben.
Wenn Sie diese Anweisung auf "1" setzen, wird diese Beschränkung für die lokale Entwicklungsumgebung aufgehoben.
Diese Einstellung gilt jedoch nicht für Anwendungen, die in der Produktion ausgeführt werden. Diese unterliegen immer den Sandbox-Einschränkungen.
> 99,9 %
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2025-08-19 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Schwer verständlich","hardToUnderstand","thumb-down"],["Informationen oder Beispielcode falsch","incorrectInformationOrSampleCode","thumb-down"],["Benötigte Informationen/Beispiele nicht gefunden","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-08-19 (UTC)."],[[["\u003cp\u003eThe \u003ccode\u003ephp.ini\u003c/code\u003e file, placed in the base directory of an App Engine application, allows customization of PHP interpreter directives before application code execution.\u003c/p\u003e\n"],["\u003cp\u003eYou can override PHP directives with changeable mode values such as \u003ccode\u003ePHP_INI_SYSTEM\u003c/code\u003e, \u003ccode\u003ePHP_INI_ALL\u003c/code\u003e, and \u003ccode\u003ePHP_INI_PERDIR\u003c/code\u003e, excluding those targeting disabled functions.\u003c/p\u003e\n"],["\u003cp\u003eApp Engine provides specific directives within \u003ccode\u003ephp.ini\u003c/code\u003e, including \u003ccode\u003egoogle_app_engine.enable_curl_lite\u003c/code\u003e to use "cURL lite," and \u003ccode\u003egoogle_app_engine.enable_functions\u003c/code\u003e to re-enable certain soft-disabled functions.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003egoogle_app_engine.allow_include_gs_buckets\u003c/code\u003e directive permits the use of \u003ccode\u003einclude\u003c/code\u003e or \u003ccode\u003erequire\u003c/code\u003e statements with files stored in specified Google Cloud Storage buckets, with path prefix matching.\u003c/p\u003e\n"],["\u003cp\u003eIn local development, \u003ccode\u003egoogle_app_engine.disable_readonly_filesystem\u003c/code\u003e can be set to "1" to allow filesystem writing, but this is not applicable in production due to sandbox restrictions.\u003c/p\u003e\n"]]],[],null,["# The php.ini File\n\nYou can include a php.ini file with your App Engine application. This file\nlets you customize the behavior of the PHP interpreter directives.\n\nAbout php.ini\n-------------\n\nThe `php.ini` file should be\nplaced in the base directory of an application (the same directory as the\n`app.yaml` file). It is loaded when the PHP interpreter is\ninitialized, and before your application code is run.\n\nThe file follows the same syntax as\n[other .ini files](https://en.wikipedia.org/wiki/INI_file). A simple\nexample might look like: \n\n```php\n; This is a simple php.ini file on App Engine\n;\n; This is a directive set to \"On\"\nwidget_compression = \"On\"\n```\n\nA list of the core directives, along with their changeable mode values,\n[is published on php.net](http://www.php.net/manual/en/ini.list.php).\nThe `php.ini` directives handled by extensions are documented on the\nrespective pages of the extensions themselves.\n\nYou may override any PHP directive that has one of the following changeable mode values:\n\n- `PHP_INI_SYSTEM`\n- `PHP_INI_ALL`\n- `PHP_INI_PERDIR`\n\nNote that some functions\n[have been\ndisabled in the App Engine implementation of PHP](/appengine/docs/legacy/standard/php/runtime#disabled_functions). Directives that target\nthese functions will have no effect.\n\nA set of [dynamically loadable extensions](/appengine/docs/legacy/standard/php/runtime#dynamically_loadable_extensions) can be enabled using the\n`extension` directive.\n\nPHP Directives for App Engine\n-----------------------------\n\nThe following directives are specific to the App Engine environment. They can\nbe included in the php.ini file.\n\n- **`google_app_engine.enable_curl_lite`** - Enables \"cURL lite\", a built-in, App Engine-specific version of cURL, when set to \"1\". \"cURL lite\" can be used exactly as you would use the standard [cURL functions](http://php.net/manual/en/ref.curl.php), but it calls [URL Fetch](/appengine/docs/legacy/standard/php/issue-requests) under the hood rather than sockets, thus functions with no URL Fetch equivalent, throw a `CurlLiteMethodNotSupportedException`.\n\n Note: An app can't enable the \"curl.so\" extension and \"cURL lite\" at the same time,\n as the latter overloads the cURL functions.\n- **`google_app_engine.enable_functions`** - Functions that have been [soft\n disabled](/appengine/docs/legacy/standard/php/runtime#functions_that_can_be_manually_enabled) in App Engine, but can be re-enabled using this directive. List the function names in a comma delimited string: \n\n ```\n google_app_engine.enable_functions = \"phpversion, phpinfo\"\n ```\n- **`google_app_engine.allow_include_gs_buckets`** - Allows your application to use the [`include`](http://php.net/manual/en/function.include.php) or [`require`](http://us1.php.net/manual/en/function.require.php) statements with files stored in [Google Cloud\n Storage](/appengine/docs/legacy/standard/php/googlestorage).\n\n \u003cbr /\u003e\n\n Note: You can use `#default#` for the default bucket; this value\n will be automatically replaced at runtime with your current default bucket name.\n\n For example, list the default bucket, along with buckets `bucket_1` and `bucket_2`\n containing the files in a comma delimited string: \n\n ```\n google_app_engine.allow_include_gs_buckets = \"#default#, bucket_1, bucket_2\"\n ```\n\n You can also specify a bucket and path to files that can be included, for example: \n\n ```\n google_app_engine.allow_include_gs_buckets = \"bucket_1/path_x\"\n ```\n\n When the check is performed for which files may be included from Google Cloud Storage, the\n supplied path is treated as a prefix that must match the start of the file name in order for it\n to be included or required. For example using the path example above, the supplied\n path would allow users to include files from `gs://bucket_1/path_x/...`\n because the prefix matches but not from `gs://bucket_1 or gs://bucket_1/path_y/` because\n the prefix doesn't match.\n\n If an uploaded file is moved to an allowed include bucket, a warning\n is generated to alert the user to a potential\n [LFI](https://en.wikipedia.org/wiki/File_inclusion_vulnerability)\n attack. If this happens, you should consider using a more\n restrictive path.\n\n **Note:** the path is treated as a file\n prefix; so it could include a specific file\n as well, for example, `google_app_engine.allow_include_gs_buckets = \"bucket_1/path_x.ext\", \"bucket_2/path_z/some_file.ext`.\n- **`google_app_engine.disable_readonly_filesystem`** - By default PHP applications are not allowed to write to the filesystem. Setting this directive to \"1\" will lift the restriction for the local development environment. However, the setting does not apply to applications running in production, which are always subjected to the [sandbox restrictions](/appengine/docs/legacy/standard/php/runtime#the_sandbox)."]]