Arquivo php.ini
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Você pode incluir um arquivo php.ini com seu aplicativo do App Engine. Com esse arquivo, é possível personalizar o comportamento das diretivas de interpretação do PHP.
Sobre o php.ini
O arquivo php.ini
precisa ser colocado no diretório base de um aplicativo (o mesmo diretório do arquivo app.yaml
). Ele é carregado quando o interpretador do PHP é inicializado e antes do código do aplicativo ser executado.
O arquivo tem a mesma sintaxe de outros arquivos .ini. Veja abaixo um exemplo simples:
; This is a simple php.ini file on App Engine
;
; This is a directive set to "On"
widget_compression = "On"
Uma lista das diretivas principais, com os valores de modo alteráveis, é publicada no php.net. As diretivas php.ini
processadas pelas extensões são documentadas nas respectivas páginas das próprias extensões.
É possível substituir qualquer diretiva PHP com um dos seguintes valores de modo alteráveis:
PHP_INI_SYSTEM
PHP_INI_ALL
PHP_INI_PERDIR
Observe que algumas funções foram desativadas na implementação do PHP no App Engine. Diretivas que visam essas funções não terão efeito.
Um conjunto de extensões carregáveis dinamicamente pode ser ativado usando a diretiva extension
.
Diretivas PHP para o App Engine
As diretivas a seguir são específicas para o ambiente do App Engine. É possível incluí-las no arquivo php.ini.
google_app_engine.enable_curl_lite
: ativa "cURL lite", uma versão incorporada específica do App Engine do cURL, quando definida como "1".
"cURL lite" pode ser usada exatamente como você usaria as funções cURL padrão, mas chama Busca de URL em segundo plano em vez de soquetes. Assim, para funções sem equivalente de Busca de URL, gere um CurlLiteMethodNotSupportedException
.
Observação: não é possível ativar simultaneamente a extensão "curl.so" e o "cURL lite" porque este último sobrecarrega as funções cURL.
google_app_engine.enable_functions
: funções que foram desativadas temporariamente no App Engine, mas podem ser reativadas usando essa diretiva. Ordene os nomes das funções em uma string separada por vírgulas:
google_app_engine.enable_functions = "phpversion, phpinfo"
google_app_engine.allow_include_gs_buckets
: permite que o aplicativo use as instruções include
ou require
com arquivos armazenados no Google Cloud Storage.
Observação: o #default#
pode ser usado para o bucket padrão. Esse valor será substituído automaticamente no ambiente de execução pelo nome do bucket padrão atual.
Por exemplo, liste o bucket padrão com os buckets bucket_1
e bucket_2
que contêm os arquivos em uma string delimitada por vírgula:
google_app_engine.allow_include_gs_buckets = "#default#, bucket_1, bucket_2"
Também é possível especificar um bucket e um caminho para os arquivos que podem ser incluídos. Por exemplo:
google_app_engine.allow_include_gs_buckets = "bucket_1/path_x"
Quando a verificação é executada para quais arquivos podem ser incluídos do Google Cloud Storage, o caminho informado é tratado como um prefixo que precisa corresponder ao início do nome de arquivo para que este seja incluído ou necessário. Por exemplo, usando o exemplo de caminho acima, o caminho fornecido pode permitir que os usuários incluam arquivos de gs://bucket_1/path_x/...
porque o prefixo corresponde, mas não de gs://bucket_1 or gs://bucket_1/path_y/
porque o prefixo não corresponde.
Se um arquivo enviado for movido para um bucket de inclusão permitido, um aviso será gerado para alertar o usuário sobre um possível ataque de LFI. Se isso acontecer, pense em usar um caminho mais restritivo.
Observação: o caminho é tratado como um prefixo de arquivo e, por isso, também pode incluir um arquivo específico. Por exemplo, 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
: por padrão, aplicativos PHP não podem gravar no sistema de arquivos.
Se a diretiva for definida como "1", a restrição será removida para o ambiente de desenvolvimento local.
No entanto, a configuração não se aplica a aplicativos em execução na produção, que estão sempre sujeitos às restrições de sandbox.
00:08:03,995 --> 00:08:06,690
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-08-19 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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)."]]