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

Essa lista inclue as diretivas principais do arquivo php.ini que você pode modificar para configurar o PHP. Diretivas manipuladas por extensões são listadas e detalhadas nas páginas de documentação de suas respectivas extensões; Informação sobre diretivas de sessão, por exemplo, podem ser encontradas nas páginas de sessão.

Opções do servidor HTTP

Tabela H-3. Opções do servidor HTTP

NomeValor padrãoAlterávelChangelog
async_send"0"PHP_INI_ALL 

Opções da Linguagem

Tabela H-4. Opções e Configurações Mistas da Linguagem

NameValor padrãoChangeableChangelog
short_open_tag"1"PHP_INI_PERDIRPHP_INI_ALL no PHP <= 4.0.0.
asp_tags"0"PHP_INI_PERDIRPHP_INI_ALL no PHP <= 4.0.0.
precision"14"PHP_INI_ALL 
y2k_compliance"1"PHP_INI_ALL 
allow_call_time_pass_reference"1"PHP_INI_PERDIRPHP_INI_ALL no PHP <= 4.0.0.
expose_php"1"php.ini only 
zend.ze1_compatibility_mode"0"PHP_INI_ALLDisponível desde o PHP 5.0.0.

Breve descrição das diretivas de configuração.

short_open_tag boolean

Determina se a forma abreviada das tags de abertura do PHP (<? ?>) serão permitidas. Se você usar o PHP junto com XML, você pode desabilitar essa opção para usar <?xml ?> inline. Caso contrário, você pode imprimir o XML com o PHP, por exemplo: <?php echo '<?xml version="1.0"'; ?>. E, se desabilitado, você deve usar a forma extensa das tags de abertura do PHP (<?php ?>).

Nota: Essa diretiva também afeta o atalho <?=, que é idêntico à <? echo. Uso desse atalho requer que short_open_tag esteja ativada.

asp_tags boolean

Habilita o uso de tag no estilo ASP <% %> além das tags comuns <?php ?>. Isso inclui o atalho para impressão do valor de variável <%= $value %>. Para mais informação, veja Imprimindo HTML.

Nota: Suport para tags no estilo ASP foi adicionado na versão 3.0.4.

precision integer

O número de digitos de significância mostrado em números decimais (ponto flutuante).

y2k_compliance boolean

Reforça compatibilidade com ano 2000 (causará problemas com navegadores não compatíveis)

allow_call_time_pass_reference boolean

Se deve lançar um aviso quando argumentos são passados por referência durante a chamada de uma função. Esse método é depreciado e provavelmente deixará de ser suportado em versões futuras do PHP/Zend. O método encorajado para especificar quais argumentos devem ser passados por referência é na declaração da função. Você é encorajado a tentar deligar essa opção e assegurar-se que seus script funcionam corretamente para garantir que eles funcionarão em versões futuras da linguagem (você receberá um aviso cada vez que você usar essa funcionalidade).

Passar argumentos por referência durante a chamade de uma função foi depreciado por razões de clareza de código. A função pode modificar seus argumentos de maneira não documentada se não for declarado que o argumento foi passado por referência. Para previnir efeitos-colaterais é melhor especificar quais argumentos são passados por referência apenas na declaração da função.

Veja também Entendendo Referências.

expose_php boolean

Decide se o PHP deve ou não expor o fato de que está instalado no servidor (ex.: adicionando sua assinatura ao cabeçalho do servidor Web). Não é nenhuma falha de segurança, mas torna possível determinar se você usar o PHP no seu servidor ou não.

zend.ze1_compatibility_mode boolean

Habilita modo de compatibilidade com o Engine do Zend 1 (PHP 4). Isso afeta a clonagem, conversão (objetos sem propriedades são convertidos para 0), e comparação de objetos. Desse modo, objetos são passados, por padrão, por valor ao invés de referência.

Veja também a seção entitulada Migrando do PHP 4 para o PHP 5.

Limites de Recursos

Tabela H-5. Limites de Recursos

NameValor padrãoAlterávelChangelog
memory_limit"8M"PHP_INI_ALL 

Breve descrição das diretivas de configuração.

memory_limit integer

Essa diretiva configura a quantidade máxima de memória (bytes) que o script pode alocar. Isso ajuda a previnir que scripts mal feitos consumam toda a memória disponível em um servidor. Para usar essa diretiva, você deve habilitá-la na hora de compilar o PHP. Portanto, sua linha de configure teria que incluir: --enable-memory-limit. Note que você deve configurá-la para -1 se você não quiser qualquer limite de memória.

A partir do PHP 4.3.2, e quando memory_limit está habilitada, a PHP função memory_get_usage() torna-se disponível.

Quando um integer é utilizado, o valor é medido em bytes. Você também pode utilizar a notação resumida como descrito neste FAQ.

Veja também: max_execution_time.

Manuseio de Dados

Tabela H-6. Opções de Configuração do Manuseio de Dados

NameValor padrãoChangeableChangelog
track_vars"On"PHP_INI_?? 
arg_separator.output"&"PHP_INI_ALLDisponível desde o PHP 4.0.5.
arg_separator.input"&"PHP_INI_PERDIRDisponível desde o PHP 4.0.5.
variables_order"EGPCS"PHP_INI_PERDIRPHP_INI_ALL no PHP <= 5.0.5.
auto_globals_jit"1"PHP_INI_PERDIRDisponível desde o PHP 5.0.0.
register_globals"0"PHP_INI_PERDIRPHP_INI_ALL no PHP <= 4.2.3.
register_argc_argv"1"PHP_INI_PERDIRPHP_INI_ALL no PHP <= 4.2.3.
register_long_arrays"1"PHP_INI_PERDIRDisponível desde o PHP 5.0.0.
post_max_size"8M"PHP_INI_PERDIRPHP_INI_SYSTEM no PHP <= 4.2.3. Disponível desde o PHP 4.0.3.
gpc_order"GPC"PHP_INI_ALL 
auto_prepend_fileNULLPHP_INI_PERDIRPHP_INI_ALL no PHP <= 4.2.3.
auto_append_fileNULLPHP_INI_PERDIRPHP_INI_ALL no PHP <= 4.2.3.
default_mimetype"text/html"PHP_INI_ALL 
default_charset""PHP_INI_ALL 
always_populate_raw_post_data"0"PHP_INI_PERDIRPHP_INI_ALL no PHP <= 4.2.3. Disponível desde o PHP 4.1.0.
allow_webdav_methods"0"PHP_INI_PERDIR 

Breve descrição das diretivas de configuração.

track_vars boolean

Se disponível, então variáveis de Ambiente, do Servidor, enviadas via GET, POST ou Cookie podem ser encontradas no arrays associativos globais $_ENV, $_SERVER, $_GET, $_POST e $_COOKIE.

Preste atenção que a partir do PHP 4.0.3, a diretiva track_vars está sempre ligada.

arg_separator.output string

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

arg_separator.input string

Lista de separador(es) usados pelo PHP para converter URLs em variáveis.

Nota: Cada caracter nessa diretiva é considerado um separador!

variables_order string

Configura a ordem de avaliação das variáveis EGPCS (Environment (Ambiente), GET, POST, Cookie, Server (Servidor)). A configuração padrão dessa diretiva é "EGPCS". Usar o valor "GP" para a diretiva, por examplo, fará com que o PHP ignore completamente variáveis de ambiente, cookies e de servidor, e sobrescreva qualquer variável recebida via GET pela variável recebida por método POST que tenha o mesmo nome.

Veja também register_globals.

auto_globals_jit boolean

Quando habilitada, as variáveis de ambiente e de servidor são criadas quando são usadas (Just In Time) ao invés de quando o script começa. Se essas variáveis não forem usadas no script, ligar essa diretiva resultará em ganho de performance.

As diretivas do PHP register_globals, register_long_arrays, e register_argc_argv devem estar desabilitadas para essa diretiva ter algum efeito.

register_globals boolean

Configura se deve ou não registrar variáveis EGPCS (Environment, GET, POST, Cookie, Server) como globais.

A partir da versão do PHP 4.2.0, essa diretiva é desabilitada por padrão.

Por favor, leia o capítulo de segurança em Usando register_globals para informações relacionadas.

Por favor, perceba que register_globals não pode ser configurada em tempo de execução (usando ini_set()). Embora você possa usar o arquivo .htaccess se seu servidor permitir, como descrito acima. Exemplo de entrada no arquivo .htaccess: php_flag register_globals off.

Nota: register_globals é afetada pela diretiva variables_order.

register_argc_argv boolean

Diz ao PHP se deve declarar as variáveis argv & argc (que contêm informação recebida via GET).

Veja também linha de comando. Além disso, essa diretiva está disponível no PHP 4.0.0 e estava sempre ligada antes disso.

register_long_arrays boolean

Diz ao PHP se deve ou não criar as variáveis do tipo $HTTP_*_VARS que são depreciadas. Quando ligada (padrão), variáveis predefinidas com nomes longos como $HTTP_GET_VARS serão criadas. Se você não estiver usando elas, é recomendado desligá-la, por razões de performance. Ao invés, use os arrays superglobais, como $_GET.

Essa diretiva se tornou disponível no PHP 5.0.0.

post_max_size integer

Configura o tamanho máximo dos dados enviados via POST. Essa configuração também afeta o envio (upload) de arquivos. Para enviar arquivos grandes, esse valor deve ser maior que upload_max_filesize.

Se um limite de memória for imposto pelo seu script configure, memory_limit também afeta envio de arquivos. De maneira geral, memory_limit deve ser maior que post_max_size.

Quando um integer é utilizado, o valor é medido em bytes. Você também pode utilizar a notação resumida como descrito neste FAQ.

Se o tamanho de dados for maior que o valor de post_max_size, os arrays $_POST e $_FILES superglobais estarão vazios. Isso pode ser verificado de várias maneiras, por exemplo, passando uma variável via $_GET ao script que vai processar os dados, ex.: <form action="edit.php?processed=1">, e checar se $_GET['processed'] está configurada.

gpc_order string

Configura a ordem de avaliação das variáveis GET/POST/COOKIE. A configuração padrão dessa diretiva é "GPC". Configurá-la para "GP", por exemplo, causará que o PHP ignore os cookies complementamente e sobrescreva qualquer variável recebida via GET com a variável recebida via POST de mesmo nome.

Nota: Essa opção não está disponível no PHP 4. Use variables_order ao invés.

auto_prepend_file string

Especifica o nome do arquivo que é automaticamente avaliado antes do arquivo principal. O arquivo é incluído como em uma chamada à função include(), então include_path é usada.

O valor especial none desabilita a inclusão automática antes do script rodar.

auto_append_file string

Especifica o nome do arquivo que é automaticamente avaliado depois do arquivo principal. O arquivo é incluído como em uma chamada à função include(), então include_path é usada.

O valor especial none desabilita a inclusão automática depois do script rodar.

Nota: Se o arquivo for terminado com exit(), a inclusão automática não ocorrerá.

default_mimetype string

default_charset string

A partir da versão 4.0b4, PHP sempre envia um tipo de codificação de caracteres no cabeçalho Content-type:. Para desabilitar o envio de um conjunto de caracteres, simplesmente deixe essa diretiva vazia.

always_populate_raw_post_data boolean

Sempre popular o array $HTTP_RAW_POST_DATA contendo os dados raw enviados via POST. Caso contrário, a variável é populada somente com o tipo MIME não reconhecido dos dados. No entanto, o método preferido para acessar dados raw enviados via POSTé php://input. $HTTP_RAW_POST_DATA não está disponível com enctype="multipart/form-data".

allow_webdav_methods boolean

Permite lidar com requisiçõs http WebDAV dentro de scripts (ex.: PROPFIND, PROPPATCH, MOVE, COPY, etc.). Essa diretiva não existe nas versões inferiores à 4.3.2. Se você quiser receber os dados dessas requisições, você tem que ligar always_populate_raw_post_data também.

Veja também: magic_quotes_gpc, magic_quotes_runtime, e magic_quotes_sybase.

Caminhos e Diretórios

Tabela H-7. Opções de Configurações de Caminhos e Diretórios

NameValor padrãoAlterávelChangelog
include_path".;/path/to/php/pear"PHP_INI_ALL 
doc_rootNULLPHP_INI_SYSTEM 
user_dirNULLPHP_INI_SYSTEM 
extension_dir"/path/to/php"PHP_INI_SYSTEM 
extensionNULLphp.ini only 
cgi.fix_pathinfo"1"PHP_INI_ALLDisponível desde o PHP 4.3.0.
cgi.force_redirect"1"PHP_INI_ALLDisponível desde o PHP 4.2.0.
cgi.redirect_status_envNULLPHP_INI_ALLDisponível desde o PHP 4.2.0.
fastcgi.impersonate"0"PHP_INI_ALLDisponível desde o PHP 4.3.0.
cgi.rfc2616_headers"0"PHP_INI_ALLDisponível desde o PHP 4.3.0.

Breve descrição das diretivas de configuração.

include_path string

Especifica a lista de diretórios onde as funções require(), include() e fopen_with_path() procurem arquivo. O formato é como a variável de ambiente PATH do sistema: uma lista de diretórios separadas com dois-pontos no Unix e ponto-e-vírgula no Windows.

Exemplo H-1. Unix include_path

include_path=".:/php/includes"

Exemplo H-2. Windows include_path

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

Usando um . no caminho de inclusão permite includes usando caminho relativo, já que significa o diretório atual.

doc_root string

O "diretório raiz" do PHP no servidor. Só usada se não estiver vazia. Se o PHP é configurado com safe mode, nenhum arquivo fora desse diretório pode ser acessado. Se o PHP não foi compilado com FORCE_REDIRECT, você deve configurar doc_root se você estivar usando o PHP como CGI em qualquer servidor web (fora o IIS). A alternativa é usar a diretiva cgi.force_redirect abaixo.

user_dir string

O nome base do diretório usado na home do usuário para arquivos PHP, por examplo, public_html .

extension_dir string

Em qual diretório o PHP deve procurar por extensões carregadas dinamicamente. Veja também: enable_dl, e dl().

extension string

Quais extensões carregáveis dinamicamente devem ser carregadas quando o PHP iniciar.

cgi.fix_pathinfo boolean

Prove suporte real para PATH_INFO/PATH_TRANSLATED no CGI. O comportamento anterior do PHP era configurar PATH_TRANSLATED como SCRIPT_FILENAME, e não configurar PATH_INFO. Para mais informações sobre PATH_INFO, veja as especificações do CGI. Configurar essa diretiva para 1 causará o PHP CGI para consertar os seus paths para se adaptar as especificações. O valor zero faz com que o PHP se comporte como antes. O valor padrão é zero. Você deve modificar seus scripts para usar SCRIPT_FILENAME ao invés de PATH_TRANSLATED.

cgi.force_redirect boolean

cgi.force_redirect é necessário para prover segurança no PHP rodando como CGI na maioria dos servidores web. Se deixar indefinido, PHP liga essa diretiva por padrão. Você pode desligar mas o risco é seu!.

Nota: Usuários Windows: Vocês podem desligar essa diretiva com segurança para o IIS, de fato, vocês devem. Para fazer o OmniHTTPD ou o Xitami funcionar, você deve desligar essa diretiva.

cgi.redirect_status_env string

Se cgi.force_redirect estiver ligado, e você não estiver usando os servidores Apache or Netscape (iPlanet), você pode precisar configurar um nome de variável de ambiente que o PHP procurará para saber se pode continuar a execução.

Nota: Configurar essa variável pode causar problemas de segurança, saiba o que está fazendo antes.

fastcgi.impersonate string

FastCGI no IIS (em SOs baseados no WINNT) suporta a habilidade de fingir tokens de segurança do cliente. Isso permite que o IIS defina o contexto de segurança que a requisição deve rodar. mod_fastcgi no Apache não atualmente não suporta essa característica. (03/17/2002) Configure para 1 se estiver rodando no IIS. O valor padrão é zero.

cgi.rfc2616_headers int

Diz ao PHP qual tipo de cabeçalho de usar quando enviar o código de resposta HTTP. Se o valor for 0, o PHP envia um Status: cabeçalho suportado pelo Apache e outros servidores web. Quando essa opção tiver o valor 1, o PHP enviará um cabeçalho compatível com o RFC 2616. Deixe essa opção como 0 a não ser que você saiba o que está fazendo.

Envio de Arquivos

Tabela H-8. Opções de Configuração de Envio de Arquivos

NameValor padrãoChangeableChangelog
file_uploads"1"PHP_INI_SYSTEMPHP_INI_ALL no PHP <= 4.2.3. Disponível desde o PHP 4.0.3.
upload_tmp_dirNULLPHP_INI_SYSTEM 
upload_max_filesize"2M"PHP_INI_PERDIRPHP_INI_ALL no PHP <= 4.2.3.

Breve descrição das diretivas de configuração.

file_uploads boolean

Se deve ou não permitir envio de arquivos via HTTP. Veja também as diretivas upload_max_filesize, upload_tmp_dir, e post_max_size.

Quando um integer é utilizado, o valor é medido em bytes. Você também pode utilizar a notação resumida como descrito neste FAQ.

upload_tmp_dir string

O diretório temporário usado para guardar arquivos quando arquivos forem enviados. O usuário do PHP deve ter permissão de escrita nesse diretório. Se não for especificado, o PHP usuará o padrão do sistema.

upload_max_filesize integer

O tamanho máximo de um arquivo enviado.

Quando um integer é utilizado, o valor é medido em bytes. Você também pode utilizar a notação resumida como descrito neste FAQ.

Opções Gerais de SQL

Tabela H-9. Opções de Configuração Geral de SQL

NameValor padrãoAlterávelChangelog
sql.safe_mode"0"PHP_INI_SYSTEM 

Breve descrição das diretivas de configuração.

sql.safe_mode boolean

Diretivas de Configuração do Depurador (Debugger)

Cuidado

Apenas o PHP 3 implementa um depurador padrão, para mais informação veja Apêndice F.

debugger.host string

Nome de DNS ou endereço IP do servidor usado pelo depurador.

debugger.port string

Número da porta usado pelo depurador.

debugger.enabled boolean

Determina se o depurador estará ativado.