## Descrição das principais diretivas do php.ini

Esta lista inclui as principais diretivas do php.ini que podemos definir para configurar o PHP. Diretivas manipuladas por extensões são listadas e detalhadas nas respectivas páginas de documentação da extensão; Informações sobre diretivas de sessão, por exemplo, podem ser encontradas na página de sessões.

> Nota:

> Os padrões listados aqui são utilizados quando o php.ini não é carregado; os valores do php.ini de produção e desenvolvimento podem variar.

## Opções de Linguagem

Opções de Linguagem e Configurações Diversas
Nome | Padrão | Modificável | Registro de Alterações
--- | --- | --- | ---
short_open_tag | "1" | `INI_PERDIR` |
precision | "14" | `INI_ALL` |
serialize_precision | "-1" | `INI_ALL` | Antes do PHP 7.1.0 o valor padrão era 17.
disable_functions | "" | `INI_SYSTEM` apenas |
disable_classes | "" | php.ini apenas | Removida a partir do PHP 8.5.0
exit_on_timeout | "" | `INI_ALL` |
expose_php | "1" | php.ini apenas |
hard_timeout | "2" | `INI_SYSTEM` | Disponível a partir do PHP 7.1.0.
zend.exception_ignore_args | "0" | `INI_ALL` | Disponível a partir do PHP 7.4.0
zend.multibyte | "0" | `INI_ALL` |
zend.script_encoding | NULL | `INI_ALL` |
zend.detect-unicode | NULL | `INI_ALL` |
zend.signal_check | "0" | `INI_SYSTEM` |
zend.assertions | "1" | `INI_ALL` com restrições |
zend.exception_string_param_max_len | "15" | `INI_ALL` | Disponível a partir do PHP 8.0.0.

Aqui está uma breve explicação das diretivas de configuração.

`short_open_tag` bool

  Informa ao PHP se a forma abreviada (`<? ?>`) da tag de abertura do PHP é permitida. Se quiser usar o PHP em conjunto com XML, esta opção pode ser desabilitada a fim de usar `<?xml ?>` em linha. Caso contrário, pode-se imprimir isto com o PHP, por exemplo `<?php echo '<?xml version="1.0"?>'; ?>`. Além disso, se desabilitada, deve ser usada a forma extensa da tag de abertura do PHP (`<?php ?>`).

  > Nota:

  > Esta diretiva não afeta o equivalente `<?=`, que está sempre disponível.

`precision` int
  O número de dígitos significativos exibidos em números de ponto flutuante. `-1` significa que um algoritmo avançado para arredondar estes números será utilizado.
`serialize_precision` int
  O número de dígitos significativos armazenados durante a serialização de números de pontos flutuantes. `-1` significa que um algoritmo avançado para arredondar estes números será utilizado.
`expose_php` bool

  Expõe para o mundo que o PHP está instalado no servidor, o que inclui a versão do PHP dentro do header HTTP (por exemplo, X-Powered-By: PHP/5.3.7).

`disable_functions` string
  Esta diretiva permite que certas funções sejam desabilitadas. Ela recebe uma lista de nomes de funções separadas por vírgula. A partir do PHP 8.0.0, desabilitar uma função remove sua definição, permitindo sua redefinição no nível do usuário. Antes do PHP 8.0.0, desabilitar uma função apenas evitava que a função fosse chamada. Apenas funções internas podem ser desabilitadas usando esta diretiva. Funções definidas pelo usuário não são afetadas. Esta diretiva deve ser configurada no php.ini. Ela não pode ser configurada no httpd.conf.
  Aviso

  Esta diretiva pode ser contornada e não deve ser considerada uma medida de segurança suficiente para ambientes de hospedagem compartilhados.

`disable_classes` string
  Esta diretiva permite que certas classes sejam desabilitadas. Ela recebe uma lista de nomes de classes separadas por vírgula. Desabilitar uma classe apenas impede que ela seja instanciada. Somente classes internas podem ser desabilitadas ao usar esta diretiva. Classes definidas pelo usuário não são afetadas. Esta diretiva deve ser configurada no php.ini. Ela não pode ser configurada no httpd.conf.
  Aviso

  Esta diretiva pode ser contornada e não deve ser considerada uma medida de segurança suficiente para ambientes de hospedagem compartilhados.

  Aviso

  Este recurso foi REMOVIDO a partir do PHP 8.5.0.

`zend.assertions` int
  Quando configurada para `1`, código assertivo será gerado e executado (modo de desenvolvimento). Quando configurada para `0` então código assertivo será gerado mas ignorado (não executado) em tempo de execução. Quando configurada para `-1` código assertivo não será gerado, tornando as asserções sem custo (modo de produção).

  > Nota:

  > Se um processo é iniciado em modo de produção, zend.assertions não poderá ser modificada em tempo de execução, já que o código para as asserções não foi gerado.

  > Se um processo é iniciado em modo de desenvolvimento, zend.assertions não poderá ser configurada para `-1` em tempo de execução.

`zend.exception_string_param_max_len` int
  O tamanho máximo das strings na serialização string dos stack traces. Deve ser entre `"0"` e `"1000000"`.
`hard_timeout` int

  Quando o timeout é configurado em max_execution_time é alcançado, o runtime PHP irá descarregar os recursos de maneira organizada. Se algo travar nesse processo, o hard_timeout irá começar a contar os segundos configurados. Se o hard_timeout for atingido, o PHP irá descarregar de maneira desorganizada. Quando configurado para zero, o hard_timeout está desconfigurado.

  Quando o PHP atinge o hard_timeout, vai ocorrer algo parecido com isso::

      Fatal error: Maximum execution time of 30+2 seconds exceeded (terminated) in Unknown on line 0

`zend.exception_ignore_args` bool

  Exclui argumentos de rastreamentos de pilha (stack traces), gerados a partir de exceções.

`zend.multibyte` bool

  Permite a análise de arquivos fontes em codificações multibyte. Habilitar zend.multibyte é necessário para utilizar character sets como SJIS, BIG5, etc., que contém caracteres especiais em dados de strings multibyte. Codificações compatíveis com ISO-8859-1 como UTF-8, EUC, etc. não requerem esta opção.

  Habilitar o zend.multibyte requer que a extensão mbstring esteja disponível.

`zend.script_encoding` string

  Este valor será usado a menos que uma diretiva declare(encoding=...) apareça no início do script. Quando uma codificação incompatível com ISO-8859-1 é usada, ambas zend.multibyte e zend.script_encoding devem ser usadas.

  Strings literais serão transliteradas de zend.script_encoding para mbstring.internal_encoding, como se a função mb_convert_encoding() tivesse sido chamada.

`zend.detect_unicode` bool

  Verifica o BOM (Byte Order Mark) e determina se o arquivo contém caracteres multibyte válidos. Essa detecção é realizada antes do processamento de __halt_compiler(). Disponível apenas no modo Zend Multibyte.

`zend.signal_check` bool

  Verifica se há manipuladores de sinais substituídos no encerramento.

`exit_on_timeout` bool

  Esta é uma diretiva unicamente do módulo mod_php do Apache1 que força um subprocesso do Apache a sair se ocorrer o timeout de execução do PHP. Esse timeout causa uma chamada interna a longjmp() no Apache1 que pode deixar algumas extensões em um estado inconsistente. Ao terminar o processo, quaisquer bloqueios ou memória pendentes serão liberados.

## Limites de Recursos

Limites de Recursos
Nome | Padrão | Modificável | Registro de Alterações
--- | --- | --- | ---
memory_limit | "128M" | `INI_ALL` |

Aqui está uma breve explicação das diretivas de configuração.

`memory_limit` int

  Define a quantidade máxima de memória em bytes que um script pode alocar. Isto ajuda a prevenir que scripts mal escritos consumam toda a memória disponível no servidor. Note que para que não haja limite de memória, esta diretiva deve ser configurada para `-1`.

  Quando um int é usado, o valor é medido em bytes. A notação abreviada, como descrita nesta FAQ, também pode ser usada.

Veja também: max_execution_time.

## Ajustes de Desempenho

Ajustes de Desempenho
Nome | Padrão | Modificável | Registro de Alterações
--- | --- | --- | ---
realpath_cache_size | "4M" | `INI_SYSTEM` | Antes do PHP 7.0.16 e 7.1.2, o padrão era `"16K"`
realpath_cache_ttl | "120" | `INI_SYSTEM` |

> Nota:

> O uso da diretiva open_basedir irá desativar o cache do caminho real.

Aqui está uma breve explicação das diretivas de configuração.

`realpath_cache_size` int

  Determina o tamanho do cache do realpath a ser usado pelo PHP. Este valor deve ser aumentado em sistemas onde o PHP abre muitos arquivos, para refletir a quantidade das operações de arquivo realizadas.

  O tamanho representa o número total de bytes nas strings de caminhos armazenadas, mais o tamanho dos dados associados à entrada de cache. Isto significa que para armazenar caminhos mais longos no cache, o tamanho de cache deve ser maior. Esse valor não controla diretamente o número de caminhos distintos que podem ser armazenados em cache.

  O tamanho necessário para os dados da entrada de cache depende do sistema operacional.

`realpath_cache_ttl` int

  Duração do tempo (em segundos) em que as informações do realpath deve ser armazenadas em cache para um dado arquivo ou diretório. Para sistemas com arquivos que raramente mudam, considere aumentar o valor.

## Manipulação de Dados

Opções de Configuração de Manipulação de Dados
Nome | Padrão | Modificável | Registro de Alterações
--- | --- | --- | ---
arg_separator.output | "&" | `INI_ALL` |
arg_separator.input | "&" | `INI_PERDIR` |
variables_order | "EGPCS" | `INI_PERDIR` |
request_order | "" | `INI_PERDIR` |
auto_globals_jit | "1" | `INI_PERDIR` |
register_argc_argv | "1" | `INI_PERDIR` | Descontinuada a partir do PHP 8.5.0
enable_post_data_reading | "1" | `INI_PERDIR` |
post_max_size | "8M" | `INI_PERDIR` |
auto_prepend_file | NULL | `INI_PERDIR` |
auto_append_file | NULL | `INI_PERDIR` |
default_mimetype | "text/html" | `INI_ALL` |
default_charset | "UTF-8" | `INI_ALL` |
input_encoding | "" | `INI_ALL` |
output_encoding | "" | `INI_ALL` |
internal_encoding | "" | `INI_ALL` |

Aqui está uma breve explicação das diretivas de configuração.

`arg_separator.output` string

  O separador usado em URLs gerados pelo PHP para separar argumentos.

`arg_separator.input` string

  Lista de separadores usados pelo PHP para analisar URLs de entrada em variáveis.

  > Nota:

  > Cada caractere nesta diretiva é considerado como separador!

`variables_order` string

  Configura a ordem de análise das variáveis EGPCS (`E`nvironment, `G`et, `P`ost, `C`ookie e `S`erver). Por exemplo, se variables_order estiver configurada como `"SP"` então o PHP irá criar as variáveis superglobals $_SERVER e $_POST, mas não irá criar $_ENV, $_GET e $_COOKIE. Configurar como "" significa que nenhuma superglobals será definida.

  Aviso

  Em ambas as SAPIs CGI e FastCGI, $_SERVER também é preenchida por valores do ambiente; `S` é sempre equivalente a `ES` independentemente da inclusão de `E` em outra parte desta diretiva.

  > Nota:

  > O conteúdo e a ordem de $_REQUEST também são afetados por esta diretiva.

`request_order` string

  Esta diretiva descreve a ordem na qual o PHP registra as variáves GET, POST e Cookie no array _REQUEST. O registro é feito da esquerda para direita, valores mais recentes sobrescrevem os valores mais antigos.

  Se esta diretiva não está definida variables_order é usada para o conteúdo de $_REQUEST.

  Note que os arquivos php.ini da distribuição padrão não contêm o `'C'` para cookies, por motivos de segurança.

`auto_globals_jit` bool

  Quando ativada, as variáveis SERVER, REQUEST e ENV são criadas quando elas são usadas pela primeira vez ("Just In Time") ao invés de quando o script inicia. Se estas variáveis não são usadas dentro de um script, habilitar esta diretiva resultará em um ganho de desempenho.

  Aviso

  O uso das variáveis SERVER, REQUEST e ENV é verificado durante o tempo de compilação então usá-las, por exemplo, em variáveis variáveis não causará sua inicialização.

`register_argc_argv` bool
  Informa ao PHP se deve declarar variáveis argv & argc (que podem conter as informações das requisições GET). Veja também PHP em linha de comando.
  Aviso

  Este recurso foi DESCONTINUADO a partir do PHP 8.5.0. O uso deste recurso é fortemente desencorajado.

  > Nota: Derivar `$_SERVER['argc']` e `$_SERVER['argv']` a partir da query string para SAPIs não-CLI foi descontinuado. Configure `register_argc_argv=0` e use $_GET ou `$_SERVER['QUERY_STRING']` para acessar a informação, depois de verificar que esse uso é seguro.

`enable_post_data_reading` bool
  Desabilitar esta opção faz com que $_POST e $_FILES não sejam preenchidos. O corpo da requisição permanecerá não consumido em php://input e pode ser lido manualmente ou analisado por request_parse_body(). Isto pode ser útil para requisições de proxy ou para processar dados POST de uma maneira eficiente em termos de memória.
`post_max_size` int
  Configura o tamanho máximo dos dados postados. Esta configuração também afeta o upload de arquivos. Para carregar arquivos grandes este valor deve ser maior que upload_max_filesize. De maneira geral memory_limit deve ser maior que `post_max_size`. Quando um int é usado, o valor é medido em bytes. A notação abreviada, como descrita nesta FAQ, também pode ser usada. Se o tamanho dos dados postados for maior que post_max_size então as variáveis superglobals $_POST e $_FILES ficarão vazias. Isto pode ser observado de várias maneiras, por exemplo, passando uma variável $_GET ao script que processará os dados, por exemplo, `<form action="edit.php?processed=1">`, e então verificando se $_GET['processed'] está preenchida.

  > Nota:

  > O PHP permite sufixos para valores em bytes, incluindo K (kilo), M (mega) e G (giga). O PHP fará as conversões automaticamente se forem utilizados qualquer um destes. Cuidado para não exceder o limite de inteiros com sinal de 32 bits (ao usar versões de 32 bits) uma vez que isso fará o script falhar.

  Registro de alterações de `post_max_size`
  Versão | Descrição
  --- | ---
  5.3.4 | `post_max_size` = 0 não irá desabilitar o limite quando o conteúdo for do tipo application/x-www-form-urlencoded ou não esteja registrado no PHP.
  5.3.2 , 5.2.12 | Permite tamanho ilimitado de dados postados ao configurar `post_max_size` como 0.

`auto_prepend_file` string

  Especifica o nome de um arquivo que é automaticamente analisado antes do arquivo principal. O arquivo é incluído como se tivesse sido chamado com require, então include_path é utilizado.

  O valor especial `none` desativa a auto-inclusão.

`auto_append_file` string

  Especifica o nome de um arquivo que é automaticamente analisado depois do arquivo principal. O arquivo é incluído como se tivesse sido chamado com require, então include_path é utilizado.

  O valor especial `none` desativa a auto-inclusão.

  > Nota: Se o script for terminado com exit(), então a auto-inclusão não ocorrerá.

`default_mimetype` string

  Por padrão o PHP irá imprimir um media type utilizando o header Content-Type. Para desabilitar o envio da codificação configure esta opção como vazio.

  O padrão interno do PHP é o media type text/html.

`default_charset` string

  "UTF-8" é o valor padrão e o valor desta diretiva é utilizado como o character set padrão para htmlentities(), html_entity_decode() e htmlspecialchars() se o parâmetro `encoding` for omitido. O valor de `default_charset` também será utilizado para configurar o character set padrão para as funções iconv se as opções de configuração `iconv.input_encoding`, `iconv.output_encoding` e `iconv.internal_encoding` não estiverem definidas, e também para as funções mbstring se as opções de configuração `mbstring.http_input`, `mbstring.http_output` e `mbstring.internal_encoding` não estiverem definidas.

  Todas as versões do PHP usarão este valor como o charset no header padrão Content-Type enviado pelo PHP caso o header não seja sobrescrito por uma chamada à função header().

  Configurar `default_charset` para um valor vazio não é recomendado.

`input_encoding` string

  Esta configuração é utilizada por módulos multibyte como mbstring e iconv. O padrão é vazio.

`output_encoding` string

  Esta configuração é utilizada por módulos multibyte como mbstring e iconv. O padrão é vazio.

`internal_encoding` string

  Esta configuração é utilizada por módulos multibyte como mbstring e iconv. O padrão é vazio. Se vazio, default_charset é utilizado.

## Caminhos e Diretórios

Caminhos e Opções de Configuração de Diretórios
Nome | Padrão | Modificável | Registro de Alterações
--- | --- | --- | ---
include_path | ".;/path/to/php/pear" | `INI_ALL` |
open_basedir | NULL | `INI_ALL` |
doc_root | NULL | `INI_SYSTEM` |
user_dir | NULL | `INI_SYSTEM` |
user_ini.cache_ttl | "300" | `INI_SYSTEM` |
user_ini.filename | ".user.ini" | `INI_SYSTEM` |
extension_dir | "/path/to/php" | `INI_SYSTEM` |
extension | NULL | Apenas no php.ini |
zend_extension | NULL | Apenas no php.ini |
cgi.check_shebang_line | "1" | `INI_SYSTEM` |
cgi.discard_path | "0" | `INI_SYSTEM` |
cgi.fix_pathinfo | "1" | `INI_SYSTEM` |
cgi.force_redirect | "1" | `INI_SYSTEM` |
cgi.nph | "0" | `INI_SYSTEM` |
cgi.redirect_status_env | NULL | `INI_SYSTEM` |
cgi.rfc2616_headers | "0" | `INI_ALL` |
fastcgi.impersonate | "0" | `INI_SYSTEM` |
fastcgi.logging | "1" | `INI_SYSTEM` |

Aqui está uma breve explicação das diretivas de configuração.

`include_path` string

  Especifica uma lista de diretórios onde as funções require, include, fopen(), file(), readfile() e file_get_contents() procuram por arquivos. O formato é como a variável de ambiente PATH: uma lista de diretórios separados por dois pontos no Unix ou ponto e vírgula no Windows.

  O PHP considera cada item no include_path separadamente ao procurar por arquivos para incluir. Ele irá verificar o primeiro caminho, e se não o encontrar, verificar o próximo caminho, até que encontre o arquivo incluído ou retorne com um `E_WARNING` ou um `E_ERROR`. Pode-se modificar ou configurar o include_path em tempo de execução usando set_include_path().

  Exemplo #1 include_path no Unix

      include_path=".:/php/includes"

  Exemplo #2 include_path no Windows

      include_path=".;c:\php\includes"

  Utilizar um `.` no include_path permite inclusões relativas ao diretório atual. Entretanto é mais eficiente utilizar explicitamente `include './file'` em vez de fazer o PHP sempre procurar no diretório atual a cada inclusão.

  > Nota:

  > Variáveis `ENV` também estão acessíveis em arquivos .ini. Assim é possível referenciar o diretório home utilizando `${LOGIN}` e `${USER}`.

  > Variáveis de ambiente podem variar entre APIs de servidor já que esses ambientes podem ser diferentes.

  Exemplo #3 include_path do Unix utilizando a variável de ambiente ${USER}

      include_path = ".:${USER}/pear/php"

`open_basedir` string

  Limita os arquivos que podem ser acessados pelo PHP à árvore de diretório especificada, incluindo o próprio arquivo.

  Quando um script tenta acessar o sistema de arquivos, por exemplo utilizando include ou fopen(), a localização do arquivo é verificada. Quando o arquivo está fora da árvore de diretório especificada, o PHP se recusará a acessá-lo. Todos os links simbólicos são resolvidos, então não é possível evitar esta restrição com um link simbólico. Se o arquivo não existe então o link simbólico não pode ser resolvido e o nome do arquivo é comparado a um open_basedir (resolvido).

  open_basedir pode afetar mais que apenas as funções de sistema de arquivos; por exemplo, se o `MySQL` está configurado para utilizar os drivers `mysqlnd`, `LOAD DATA INFILE` será afetado por open_basedir. Grande parte da funcionalidade estendida do PHP utiliza `open_basedir` desta maneira.

  O valor especial `.` indica que o diretório atual do script será utilizado como o diretório base. Isto é, no entanto, perigoso pois o diretório atual do script pode ser facilmente alterado com chdir().

  No httpd.conf open_basedir pode ser desabilitada (por exemplo, em alguns hosts virtuais) da mesma forma que quaisquer outras diretivas de configuração com "`php_admin_value open_basedir none`".

  No Windows os diretórios são separados com um ponto e vírgula. Em todos os outros sistemas os diretórios são separados com dois pontos. Como um módulo Apache os caminhos de open_basedir de diretórios pai agora são automaticamente herdados.

  A restrição especificada com open_basedir é um nome de diretório, não um prefixo.

  O padrão é permitir que todos os arquivos sejam abertos.

  > Nota: open_basedir pode ser restringido em tempo de execução. Isto significa que se open_basedir é configurado para `/www/` no php.ini então um script pode restringir a configuração para `/www/tmp/` em tempo de execução com ini_set(). Ao listar vários diretórios é possível utilizar a constante `PATH_SEPARATOR` como um separador independentemente do sistema operacional. A partir do PHP 8.3.0, open_basedir não aceita mais um caminho contendo o diretório superior (`..`) quando definido no momento da execução usando ini_set().

  > Nota:

  > O uso da diretiva open_basedir definirá realpath_cache_size como `0` e assim desabilitará o cache do caminho real.

  Cuidado

  `open_basedir` é rede de segurança extra, mas não é uma proteção total, e portanto não deve-se depender para garantir a segurança.

`doc_root` string

  O "diretório raiz" do PHP no servidor. Utilizado apenas se estiver informado. Se o PHP não foi compilado com FORCE_REDIRECT, o doc_root precisa ser configurado quando o PHP estiver sendo executado em modo CGI em qualquer servidor web (diferente do IIS). A alternativa é utilizar a configuração cgi.force_redirect abaixo.

`user_ini.cache_ttl` int

`user_ini.filename` string

`user_dir` string

  O nome base do diretório utilizado como diretório home do usuário pelos arquivos do PHP, por exemplo public_html .

`extension_dir` string

  O diretório no qual o PHP deve procurar por extensões carregadas dinamicamente. É recomendado especificar um caminho absoluto. Veja também: enable_dl e dl().

`extension` string

  Quais extensões carregáveis dinamicamente carregar quando o PHP inicia.

`zend_extension` string

  Nome da extensão Zend carregável dinamicamente (por exemplo, XDebug) a carregar quando o PHP inicia.

`cgi.check_shebang_line` bool

  Controla se o PHP CGI verifica linhas iniciando com `#!` (shebang) no início do script em execução. Esta linha pode ser necessária se o script suporta execução tanto como script autônomo e via PHP CGI. O PHP em modo CGI pula esta linha e ignora seu conteúdo se esta diretiva estiver habilitada.

`cgi.discard_path` bool

  Se habilitada, o binário PHP CGI pode ser colocado com segurança fora da árvore de diretório web e não será possível contornar a segurança .htaccess.

`cgi.fix_pathinfo` bool

  Fornece suporte real a `PATH_INFO`/ `PATH_TRANSLATED` para CGI. O comportamento anterior do PHP era definir `PATH_TRANSLATED` como `SCRIPT_FILENAME` e não perceber o que `PATH_INFO` é. Para mais informações sobre `PATH_INFO`, veja as especificações do modo CGI. Configurar esta diretiva para `1` fará o modo CGI corrigir seus caminhos para obedecer à especificação. Configurar com zero faz o PHP se comportar como antes. Ela é habilitada por padrão. Os scripts devem ser corrigidos de forma a usar `SCRIPT_FILENAME` ao invés de `PATH_TRANSLATED`.

`cgi.force_redirect` bool

  cgi.force_redirect é necessário para prover segurança ao executar o PHP em modo CGI na maioria dos servidores web. Se deixada indefinida, o PHP irá habilitá-la por padrão. Desabilitá-la é um risco de segurança.

  > Nota:

  > Usuários do Windows: Ao utilizar o IIS esta opção deve ser desabilitada. O mesmo vale para servidores OmniHTTPD e Xitami.

`cgi.nph` bool

  Se cgi.nph estiver habilitada, forçará o CGI a enviar sempre Status: 200 em todas as requisições.

`cgi.redirect_status_env` string

  Se cgi.force_redirect estiver habilitada e não estiverem sendo executados servidores web Apache ou Netscape (iPlanet), pode ser necessário configurar um nome de variável de ambiente que o PHP irá procurar para saber que é correto continuar a execução.

  > Nota:

  > Configurar esta variável pode causar problemas de segurança, deve-se ter certeza do que está sendo feito antes de realizar alterações.

`cgi.rfc2616_headers` bool

  Indica ao PHP qual o tipo de headers usar ao enviar o código de resposta HTTP. Se estiver desabilitada, o PHP envia um header "Status:" da » RFC 3875 que é suportado pelo Apache e outros servidores web. Quando esta opção é habilitada, o PHP enviará headers em conformidade com a » RFC 2616.

  Se esta opção estiver habilitada e o PHP estiver rodando em um ambiente CGI (por exemplo, PHP-FPM) não devem ser utilizados headers de resposta de status HTTP no padrão RFC 2616. Em vez disso, deve ser usado o seu equivalente RFC 3875, por exemplo, em vez de header("HTTP/1.0 404 Not found"); deve ser usado header("Status: 404 Not Found");.

  Deixe-a desabilitada a não ser que saiba exatamente o que está fazendo.

`fastcgi.impersonate` bool

  O FastCGI rodando no IIS (em sistemas baseados em WINNT) suporta a habilidade de representar os tokens de segurança do cliente que faz a requisição. Isso permite ao IIS definir o contexto de segurança no qual a requisição executa. O mod_fastcgi rodando no Apache atualmente não suporta esta funcionalidade (17/03/2002). Habilite ao rodar no ISS. O padrão é desabilitado.

`fastcgi.logging` bool

  Ativa o logging do SAPI ao utilizar o FastCGI. O padrão é habilitar o logging.

## Upload de Arquivos

Opções de Configurações de Upload de Arquivos
Nome | Padrão | Modificável | Registro de Alterações
--- | --- | --- | ---
file_uploads | "1" | `INI_SYSTEM` |
upload_tmp_dir | NULL | `INI_SYSTEM` |
max_input_nesting_level | 64 | `INI_PERDIR` |
max_input_vars | 1000 | `INI_PERDIR` |
upload_max_filesize | "2M" | `INI_PERDIR` |
max_file_uploads | 20 | `INI_PERDIR` |

Aqui está uma breve explicação das diretivas de configuração.

`file_uploads` bool

  Permite ou não upload de arquivos através do HTTP. Veja também as diretivas upload_max_filesize, upload_tmp_dir e post_max_size.

`upload_tmp_dir` string

  O diretório temporário utilizado para armazenar arquivos durante o upload. Precisa ter permissão de escrita para qualquer usuário que o PHP esteja usando para rodar. Se não especificado o PHP usará o padrão do sistema.

  Se o diretório especificado aqui não tiver permissão de escrita, o PHP tenta o diretório temporário padrão do sistema. Se open_basedir estiver habilitado, então o diretório padrão do sistema deve ser permitido para que o upload tenha sucesso.

`upload_max_filesize` int

  O tamanho máximo de um arquivo enviado.

  post_max_size precisa ser maior que esse valor.

  Quando um int é usado, o valor é medido em bytes. A notação abreviada, como descrita nesta FAQ, também pode ser usada.
`max_file_uploads` int

  O número máximo de arquivos permitidos simultaneamente durante um upload. Campos de upload deixados em branco no envio não contam para este limite.

## SQL Geral

Opções de Configurações Gerais de SQL
Nome | Padrão | Modificável | Registro de Alterações
--- | --- | --- | ---
sql.safe_mode | "0" | `INI_SYSTEM` | Removido no PHP 7.2.0.

Aqui está uma breve explicação das diretivas de configuração.

`sql.safe_mode` bool

  Se habilitada as funções de conexão de bancos de dados que especifiquem valores padrão usarão esses valores no lugar de quaisquer argumentos passados pelo usuário. Para detalhes sobre os valores padrão, veja a documentação das funções de conexão relevantes.

  Aviso

  Este recurso foi REMOVIDO a partir do PHP 7.2.0.

## Windows

Opções de Configurações Específicas do Windows
Nome | Padrão | Modificável | Registro de Alterações
--- | --- | --- | ---
windows.show_crt_warning | "0" | `INI_ALL` |

Aqui está uma breve explicação das diretivas de configuração.

`windows.show_crt_warning` bool

  Esta diretiva exibe os alertas do CRT do Windows quando habilitada.

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open