Manual do PHP
Anterior | Capítulo 4. Configuração | Próxima

# Diretivas de configuração diversas

Esta não é uma lista completa das diretivas do PHP. Muitas diretivas são listadas em seus lugares apropriados como, por exemplo, informações sobre diretivas de sessões estão no capítulo sobre sessões.

## Opções Httpd

Tabela 4-2. Opções Httpd

Nome | Padrão | Alterável
--- | --- | ---
async_send | "0" | PHP_INI_ALL

## Opções da Linguagem

Tabela 4-3. Opções gerais da linguagem

Nome | Padrão | Alterável
--- | --- | ---
short_open_tag | On | PHP_INI_SYSTEM|PHP_INI_PERDIR
asp_tags | Off | PHP_INI_SYSTEM|PHP_INI_PERDIR
precision | "14" | PHP_INI_ALL
y2k_compliance | Off | PHP_INI_ALL
allow_call_time_pass_reference | On | PHP_INI_SYSTEM|PHP_INI_PERDIR
expose_php | On | PHP_INI_SYSTEM

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

`short_open_tag` boolean

  Informa quando a tag reduzida (`<? ?>`) do PHP pode ser permitida. Se você quiser usar o PHP em combinação com XML, você pode desligar essa opção para poder utilizar `<?xml ?>` inline. De outra forma, você pode imprimir com o PHP, por exemplo: `<?php echo '<?xml version="1.0"'; ?>`. Se desligado, você precisará utilizar a forma longa da tag de abertura do PHP (`<?php ?>`).

  > Nota: Esta diretiva também afeta o atalho `<?=`, que é idêntico a `<? echo`. A utilização desse atalho requer short_open_tag ligado.

`asp_tags` boolean

  Ativa a utilização das tags estilo ASP <% %> em adição as tags <?php ?>. Isto inclui o atalho de impressão de valores <%= $var %>. Para mais informações, veja Alternando do HTML.

  > Nota: O suporte a tags estilo APS foi acrescentado no 3.0.4.

`precision` integer

  O número de dígitos significantes exibidos em números de ponto flutuante.

`y2k_compliance` boolean

  Força a especificação Ano 2002 (poderá causar problemas com browsers não compatíveis)

`allow_call_time_pass_reference` boolean

  Especifica a habilidade em forçar que argumentos possam ser passados por referência na chamada de uma função. Este método é obsoleto e logo não será mais suportado nas futuras versões do PHP/Zend. O método recomendado para especificar que argumentos devem ser passados por referência é pela declaração da função. Você é encorajado em tentar desligar essa opção e verificar se seus scripts trabalham adequadamente de forma a garantir que elas irão funcionar nas futuras versões da linguagem (você receberá um alerta cada vez que utilizar esse recurso, e o argumento será passado por valor em vez de por referência).

  Veja também Referências Explicadas.

`expose_php` boolean

  Decide se o PHP poderá expor o fato de que ele está instalado no servidor (acrescentando sua assinatura no header do servidor web). Isto não causa problemas de segurança de qualquer forma, mas torna possível determinar se você usa o PHP em seu servidor ou não.

## Limitação de recursos

Tabela 4-4. Limitação de recursos

Nome | Padrão | Alterável
--- | --- | ---
memory_limit | "8M" | PHP_INI_ALL

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

`memory_limit` integer

  Isto configura a quantidade máxima de memória, em bytes, que um script poderá alocar. Isto ajuda a prevenir que scripts mal escritos acabem com toda a memória disponível do servidor. Para poder utilizar esta diretiva, você precisa ativá-la na compilação. Assim, sua linha de configuração deve incluir: `--enable-memory-limit`. Note que você pode configura-la para -1 se não quiser impor nenhum limite para a utilização da memória.

  A partir do PHP 4.3.2 e quando memory_limit estiver ativo, a função PHP memory_get_usage() fica disponível.

Veja também max_execution_time.

## Manipulação de dados

Tabela 4-5. Opções configuráveis para manipulação de dados

Nome | Padrão | Alterável
--- | --- | ---
track-vars | "On" | PHP_INI_??
arg_separator.output | "&" | PHP_INI_ALL
arg_separator.input | "&" | PHP_INI_SYSTEM|PHP_INI_PERDIR
variables_order | "EGPCS" | PHP_INI_ALL
register_globals | "Off" | PHP_INI_PERDIR|PHP_INI_SYSTEM
register_argc_argv | "On" | PHP_INI_PERDIR|PHP_INI_SYSTEM
register_long_arrays | "On" | PHP_INI_PERDIR|PHP_INI_SYSTEM
post_max_size | "8M" | PHP_INI_SYSTEM|PHP_INI_PERDIR
gpc_order | "GPC" | PHP_INI_ALL
auto_prepend_file | "" | PHP_INI_SYSTEM|PHP_INI_PERDIR
auto_append_file | "" | PHP_INI_SYSTEM|PHP_INI_PERDIR
default_mimetype | "text/html" | PHP_INI_ALL
default_charset | "iso-8859-1" | PHP_INI_ALL
always_populate_raw_post_data | "0" | PHP_INI_SYSTEM|PHP_INI_PERDIR
allow_webdav_methods | "0" | PHP_INI_SYSTEM|PHP_INI_PERDIR

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

`track_vars` boolean

  Se ativado, quaisquer variáveis Environment, GET, POST, Cookie e Server encontradas poderão ser acessadas nos arrays globais associativos `$_ENV`, `$_GET`, `$_POST`, `$_COOKIE` e `$_SERVER`.

  Note que a partir do PHP 4.0.3, track_vars está sempre ativado.

`arg_separator.output` string

  O separador de parâmetros em URLs geradas pelo PHP.

`arg_separator.input` string

  Lista dos separador(es) utilizados pelo PHP para interpretar URLs em variáveis.

  > Nota: Cada caracter nesta diretiva é considerado como um separador!

`variables_order` string

  Configura a ordem de interpretação das variáveis EGPCS (Environment, GET, POST, Cookie e Server). O default dessa diretiva é "EGPCS". Configurando para "GP", por exemplo, fará com que o PHP ignore completamente variáveis de ambiente (E), cookies (C) e do servidor (S), sendo que qualquer variável GET será sobrescrita por qualquer variável do método POST com o mesmo nome.

  Veja também register_globals.

`register_globals` boolean

  Ativa ou não o registro de variáveis EGPCS (Environment, GET, POST, Cookie e Server) como variáveis globais. Por exemplo: se register_globals = on, a URL `http://www.example.com/test.php?id=3` irá criar a variável `$id`. Ou, `$DOCUMENT_ROOT` de `$_SERVER['DOCUMENT_ROOT']`. Você pode desligar essa diretiva se você não deseja sujar o escopo global de seus scripts com dados do usuário. Desde o PHP 4.2.0, o padrão dessa diretiva é off. É preferível utilizar as variáveis predefinidas do PHP, como as superglobals: `$_ENV`, `$_GET`, `$_POST`, `$_COOKIE` e `$_SERVER`. Leia cuidadosamente o capitulo de segurança em Utilizando register_globals para mais informações.

  Veja que register_globals não pode ser alterado em tempo de execução (ini_set()). Entretanto, você pode utilizar o `.htaccess` se seu host permitir como descrito anteriormente. Um exemplo de entrada do `.htaccess`: `php_flag register_globals on`.

  > Nota: register_globals é afetada pela diretiva variables_order .

`register_argc_argv` boolean

  Configura quando o PHP deve declarar ou não as variáveis argv e argc (que podem conter dados do método GET).

  Veja também Utilizando o PHP em linha de comando. Além, essa diretiva foi criada no PHP 4.0.0 e sempre foi "ativa" antes disso.

`register_long_arrays` boolean

  Configura quando o PHP vai ou não registrar os grandes e obsoletos arrays `$HTTP_*_VARS` pré definidos. Se ativo (default), grandes variáveis arrays PHP como a `$HTTP_GET_VARS` serão defininas. Se você não estiver usando-as, é recomendado desligar essa opção, por questão de performance. Em vez desses arrays, utilize os arrays superglobais como `$_GET`.

  Esta diretiva se tornou disponível no PHP 5.0.0.

`post_max_size` integer

  Configura o tamanho máximo dos dados postados. Esta configuração também afeta o upload de arquivos. Para receber arquivos grandes, esse valor precisa ser maior que upload_max_filesize.

  Se o limite de memória estiver ativado em seu script de configuração, memory_limit também afeta o upload de arquivos. Falando diretamente, memory_limit precisa ser maior que `post_max_size`.

`gpc_order` string

  Informa a ordem de interpretação das variáveis GET/POST/COOKIE. O padrão dessa diretiva é "GPC". Configurando para "GP", por exemplo, fará com que o PHP ignore completamente cookies e que sobrescreva qualquer dado postado via GET por variáveis postados via POST que tenham o mesmo nome.

  > Nota: Esta opção não está disponível no PHP 4. Utilize variables_order no seu lugar.

`auto_prepend_file` string

  Especifica o nome do arquivo que será automaticamente interpretado antes do arquivo principal. O arquivo é incluído como se ele fosse chamado com a função include(), então include_path é utilizado.

  O valor especial none desabilita a auto inclusão.

`auto_append_file` string

  Especifica se o nome do arquivo que será automaticamente interpretado depois do arquivo principal. O arquivo é incluído como se ele fosse chamada a função include(), então include_path é utilizado.

  O valor especial none desabilita a auto inclusão.

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

`default_mimetype` string

`default_charset` string

  A partir da versão 4.0b4, o PHP sempre emite a codificação de caracter por padrão no header Content-type:. Para desabilitar o envio do código de página, simplesmente deixe a diretiva em branco.

`always_populate_raw_post_data` boolean

  Sempre preenche a variável $HTTP_RAW_POST_DATA.

`allow_webdav_methods` boolean

  Permite a manipulação de headers HTTP com scripts PHP (com PROPFIND, PROPPATCH, MOVE, COPY, etc). Se você quiser obter os dados postados dessas requisições, ative always_populate_raw_post_data para isso.

Veja também magic_quotes_gpc, magic-quotes-runtime, e magic_quotes_sybase.

## Paths and Directories

Tabela 4-6. Opções de configuração de caminhos e diretórios

Nome | Padrão | Alterável
--- | --- | ---
include_path | PHP_INCLUDE_PATH | PHP_INI_ALL
doc_root | PHP_INCLUDE_PATH | PHP_INI_SYSTEM
user_dir | NULL | PHP_INI_SYSTEM
extension_dir | PHP_EXTENSION_DIR | PHP_INI_SYSTEM
cgi.fix_pathinfo | "0" | PHP_INI_SYSTEM
cgi.force_redirect | "1" | PHP_INI_SYSTEM
cgi.redirect_status_env | "" | PHP_INI_SYSTEM
fastcgi.impersonate | "0" | PHP_INI_SYSTEM
cgi.rfc2616_headers | "0" | PHP_INI_SYSTEM

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

`include_path` string

  Especifica a lista de diretórios onde as funções require(), include() and fopen_with_path() procurarão por arquivos. O formato é o mesmo que o da variável ambiente `PATH`: uma lista de diretórios, separador por vírgula no Unix ou ponto e vírgula no Windows.

  Exemplo 4-3. include_path Unix

      include_path=".:/php/includes"

  Exemplo 4-4. include_path Windows

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

  Colocar um `.` no include_path permite includes relativos a partir do diretório atual.

`doc_root` string

  O "diretório root" do PHP no servidor. Utilizado somente se for preenchido. Se o PHP estiver configurado com safe mode, nenhum arquivo acima desse diretório será acessível. Se o PHP não estiver compilado com FORCE_REDIRECT, você DEVE configurar doc_root se estiver rodando o PHP como CGI sob qualquer servidor web (que não o IIS) Outra alternativa é configurar a diretiva cgi.force_redirect, abaixo.

`user_dir` string

  O caminho base do usado como diretório home do usuário para arquivos PHP, por exemplo `public_html`.

`extension_dir` string

  Diretório de onde o PHP poderá carregar dinamicamente as extensões. Veja também enable_dl e dl().

`extension` string

  Que extensões dinamicamente carregáveis devem ser carregadas quando o PHP inicia.

`cgi.fix_pathinfo` boolean

  Provém o correto PATH_INFO/PATH_TRANSLATED suporte para CGI. O comportamento anterior do PHP era informar PATH_TRANSLATED em SCRIPT_FILENAME, e não truncá-lo com PATH_INFO. Para maiores informações sobre PATH_INFO, veja as especificações CGI. Configurando isto para 1 fará com PHP CGI corrija os caminhos conforme a especificação. Configurando para 0 fará o PHP se comportar como antes. O default é zero. Você deve corrigir seus scripts para usar SCRIPT_FILENAME em vez de PATH_TRANSLATED.

`cgi.force_redirect` boolean

  cgi.force_redirect é necessário para prover segurança quando rodando o PHP como módulo sob a maioria dos servidores web. Se deixado indefinido, o PHP assume como ativo. Você pode desligá-lo SOB SEU RISCO.

  > Nota: Usuários Windows: Você PODE desligar isso no ISS, e de fato, você DEVE fazê-lo. Para que o OmniHTTPD ou Xitami funcionem, você PRECISA desligá-lo.

`cgi.redirect_status_env` string

  Se cgi.force_redirect estiver ativado, e se não estiver rodando o PHP sob os servidores web Apache ou Netscape (iPlanet), você PRECISARÁ configurar uma variável de ambiente que o PHP procurará para saber se ele pode continuar a execução.

  > Nota: Configurar essa variável PODERÁ causar problemas de segurança, POR ISSO SAIBA QUE ESTEJA FAZENDO PRIMEIRO.

`fastcgi.impersonate` string

  FastCGI sob o IIS (em sistemas baseados em WinNT) suporta a habilidade de despersonalizar tokens de segurança da chamado do cliente. Isto permite ao ISS definir o contexto de segurança da requisição que está rodando. mod_fastcgi sob o Apache ainda não suporta esse recurso (17/03/2002). Configure 1 se estiver rodando sob o ISS. O padrão é zero.

`cgi.rfc2616_headers` int

  Diz ao PHP que tipo de header utilizar quando enviando a resposta HTTP. Se configurado para 0, o PHP envia um header Status:, suportado pelo Apache e outros servidores web. Quando configurado para 1, o PHP irá enviar headers compatíveis com o RFC 2616. Deixe configurado para 0 a não ser que saiba o que está fazendo.

## Upload de arquivos

Tabela 4-7. Opções de configuração para upload de arquivos

Nome | Padrão | Alterável
--- | --- | ---
file_uploads | "1" | PHP_INI_SYSTEM
upload_tmp_dir | NULL | PHP_INI_SYSTEM
upload_max_filesize | "2M" | PHP_INI_SYSTEM|PHP_INI_PERDIR

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

`file_uploads` boolean

  Permite ou não upload de arquivos HTTP. Veja também upload_max_filesize, upload_tmp_dir e post_max_size directives.

`upload_tmp_dir` string

  O diretório temporário utilizado para armazenar arquivos quando realizando o upload de arquivos. Ele precisa ter permissão de escrita para qualquer usuário que for rodar o `PHP`. Se não especificado, o PHP utilizará o default do sistema.

`upload_max_filesize` integer

  O tamanho máximo de um arquivo para upload.

## SQL Geral

Tabela 4-8. Opções de configuração SQL gerais

Nome | Padrão | Alterável
--- | --- | ---
sql.safe_mode | "0" | PHP_INI_SYSTEM

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

`sql.safe_mode` boolean

## Diretivas de configuração do debugador

Cuidado
Somente o PHP 3 implemente um debugador padrão. Para mais informações, veja Apêndice E.

`debugger.host` string

  Nome DNS ou endereço IP do host utilizado pelo debugador.

`debugger.port` string

  Porta utilizado pelo debugador.

`debugger.enabled` boolean

  Controle de ativação do debugador.

Anterior | Principal | Próxima
Como alterar as configurações definidas | Acima | Referência da Linguagem