Capítulo 3. Configuração

Índice
O arquivo de configuração

O arquivo de configuração

O arquivo de configuração (chamado php3.ini no PHP 3.0, e simplesmente php.ini no PHP 4.0) é lido quando o PHP inicia. Para as versões de módulos de servidor do PHP, isso só acontece uma vez quando o servidor é iniciado. Para as versões CGI e CLI acontece em cada execução.

A localização padrão do php.ini é uma opção de compilação (veja a FAQ correspondente), mas pode ser modificada para as versões CGI e CLI com o opcional -c (mais informações em utilizando o PHP na linha de comando). Você também pode utilizar a variavável ambiente PHPRC para colocar caminhos adicionais para procura do php.ini.

Exemplo 3-1. php.ini example

; qualquer texto depois de um ponto e vírgula não delimitado (;) é ignorado
[php] ; marcadores de seção (texto entre colchetes) também são ignorados
; Valores booleanos podem ser:
;    true, on, yes
; ou false, off, no, none
register_globals = off
magic_quotes_gpc = yes

; você pode delimitar strings com aspas
include_path = ".:/usr/local/lib/php"

; barras invertidas são tratadas da mesma maneira que outros caracteres
include_path = ".;c:\php\lib"

Quando usando o PHP como um módulo do Apache, você também pode mudar as definições de configuração usando diretivas na configuração dos arquivos Apache e dos arquivos .htaccess (Você irá precisar de privilégios "AllowOverride Options" ou "AllowOverride All")

Com o PHP 3.0, existem diretivas Apache que correspondem a cada definição de configuração no nome php3.ini, exceto o nome predefinido por "php3_".

Com o PHP 4.0, existem várias diretivas do Apache que lhe permitem mudar a configuração PHP dentro do arquivo de configuração do Apache.

php_value nome valor

Isso define o valor da variável especificada.

php_flag nome on|off

Isto é usado para definir uma opção de configuração Booleana.

php_admin_value nome valor

Isto define o valor da variável especificada. Definições de configuração "Admin" só podem ser definidas a partir dos arquivos principais de configuração do Apache, e não dos arquivos .htaccess.

php_admin_flag nome on|off

Isto é usado para definir uma opção de configuração Booleana.

Exemplo 3-2. Exemplo de configuração do Apache

<IfModule mod_php4.c>
  php_value include_path ".:/usr/local/lib/php"
  php_flag safe_mode on
</IfModule>
<IfModule mod_php3.c>
  php3_include_path ".:/usr/local/lib/php"
  php3_safe_mode on
</IfModule>

Você pode visualizar as definições dos valores de configuração na saída de phpinfo(). Você também pode acessar os valores de definições de configuração originais usando get_cfg_var().

Diretivas Gerais de Configuração

allow_url_fopen boolean

Esta opção habilita o URL-aware fopen wrappers que possibilitam o acesso a objetos URL como arquivos. Wrappers padrão são fornecidos para o acesso de arquivos remotos usando os protocolos FTP ou HTTP, algumas extensões como zlib podem registrar wrappers adicionais.

Nota: Esta opção foi introduzida imediatamente após o lançamento da versão 4.0.3. Para versões superiores incluindo a 4.0.3, você só pode desabilitar essa função na compilação usando o argumento --d isable-url-fopen-wrapper na configuração (configure).

Atenção

No Windows, as seguintes funções não suportam o acesso a arquivos remotos: include(), include_once(), require() e require_once().

asp_tags booleano

Habilita o uso de tags no estilo ASP <% %> em adição às tags <?php ?> usuais. Isso inclui a impressão resumida de valor de variável <%= $valor %>. Para maiores informações veja Saindo do HTML.

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

auto_append_file string

Especifica o nome do arquivo que é automaticamente interpretado após o arquivo principal. O arquivo é incluído como se tivesse sido chamado com a função include(), logo include_path é usado.

O valor especial none desabilita o auto-appending.

Nota: Se o script é finalizado com exit(), auto-append não ocorrerá.

auto_prepend_file string

Especifica o nome do arquivo que é automaticamente interpretado antes do arquivo principal. O arquivo é incluído como se tivesse sido chamado com a função include(), logo include_path é usado.

O valor especial none desabilita o auto-prepending.

cgi_ext string

display_errors booleano

Isso determina se os erros deve ser impressos na tela como parte da saída HTML ou não.

doc_root string

O "root directory" do PHP no servidor. Só é usado se não estiver vazio. Se o PHP é configurado com safe mode, nenhum arquivo acima desse diretório é acessível.

engine booleano

Essa diretiva só é realmente útil com a versão de módulo Apache do PHP. É usado por sites que queiram habilitar ou desabiliar a interpretação PHP num servidor por diretório ou por domínio virtual. Colocando engine off nos devidos lugares no arquivo httpd.conf, o PHP pode ser habilitado ou desabilitado.

error_log string

Nome do arquivo onde erros de script devem ser guardados. Se o valor especial syslog for usado, os erros serão enviados para o logger do sistema. No UNIX, isto significa syslog(3) e no Windows NT isto significa o event log. O system logger não é suportado no Windows 95.

error_reporting inteiro

Define o nível de publicação de erros. O parâmetro é um inteiro representado um campo de bits. Adicione os valores que você queira do nível de publicação de erros.

Tabela 3-1. Níveis de Publicação de Erros

valor do bithabilita publicação
1erros normais
2avisos normais
4erros de interpretação
8avisos não críticos relacionados ao estilo
O valor padrão para esta diretiva é 7 (erros normais, avisos normais e erros de interpretação são mostrados).

html_errors booleano

Desabilita tags HTML nas mensagens de erro.

open_basedir string

Limita os arquios que podem ser abertos pelo PHP à arvore de diretórios especificada.

Quando um script tenta abrir um arquivo com, por exemplo, fopen or gzopen, a localização desse arquivo é checada. Quando o arquivo está fora da árvore de diretórios especificada, o PHP irá se recusar a abrí-lo. Todos os links simbólicos são resolvidos, logo não é possível evitar essa restrição com um symlink.

O valor especial . indica que o diretório onde o script está armazenado será usado como o diretório base.

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

A restrição imposta com open_basedir é na verdade um prefixo, e não um nome de diretório. Isso significa que "open_basedir = /dir/incl" também permite acesso a "/dir/include" e "/dir/incls" se eles existem. Quando você deseja restringir o acesso somente ao diretório específico, o termine com uma barra. Por exemplo: "open_basedir = /dir/incl/"

Nota: O supporte para múltiplos diretórios foi adicionado na versão 3.0.7.

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

gpc_order string

Define a ordem de interpretação da variável GET/POST/COOKIE . A definição padrão para essa diretiva é "GPC". Definindo-a para "GP", por exemplo, fará com que o PHP ignore completamente cookies e irá sobescrever quaisquer variáveis enviadas com o método GET por variáveis do método POST com o mesmo nome.

Note que esta opção não está disponível no PHP 4. Use variables_order ao invez.

variables_order string

Define a ordem de prioridade das variáveis EGPCS (Environment, GET, POST, Cookie, Server). A definição padrão para essa diretiva é "EGPCS". Definindo como "GP", por exemplo, fará com que o PHP ignore completamente as variáveis de ambiente (environment) cookies e server, e sobrescrever qualquer variavel do metodo GET com variaveis do modo POST com o mesmo nome.

Veja também register_globals.

ignore_user_abort boleano

TRUE por default. Se alterado para FALSE, os scripts serão termiandos tão logo quanto ele tentar imprimir algo e descobrir que o usuário cancelou a conexão.

Veja também: ignore_user_abort().

implicit_flush booleano

FALSE por default. Alterando para TRUE, diz ao PHP para chamar as rotinas de impressão/output automaticamente depois de cada comando de saída. Isto é equivalente a chamar a função flush() depois de cada chamada a print() ,echo() ou depois de qualquer outro bloco HTML.

Quanto utilizando o PHP em um ambiente Web, ativar esta opção tem sérias implicações na performance e é geralmente recomendado para propósitos de debug. Este valor é TRUE por default quando operando sobre a CLI SAPI.

include_path string

Especifica uma lista de diretórios onde as funções require(), include() e fopen_with_path() procuram por arquivos. O formato é o mesmo da variável de ambiente PATH do sistema: uma lista de diretórios separados por dois pontos no UNIX ou ponto-e-vírgula no Windows.

Exemplo 3-3. include_path no UNIX

include_path=.:/home/httpd/php-lib

Exemplo 3-4. include_path no Windows

include_path=".;c:\www\phplib"
O valor padrão para essa diretiva é . (apenas o diretório atual).

isapi_ext string

log_errors booleano

Diz se as mensagens de erro devem ser salvas no arquivo de log do servidor. Logo, esta opção é específica por servidor.

magic_quotes_gpc booleano

Define o estado de magic_quotes para as operações GPC (Get/Post/Cookie). Quando os magic_quotes estão habilitados (on), todas ' (aspas simples), " (aspas duplas), \ (barra invetida) e NULL's são automaticamente prefixadas (escaped) com a barra invertida. Se magic_quotes_sybase também está habilitado (on), uma aspa simples é escapada como aspa simples ao invés da barra invertida.

magic_quotes_runtime booleano

Se magic_quotes_runtime é habilitado, a maioria das funções que retornam dados de qualquer tipo de fonte externa incluindo banco de dados e arquivos de texto terão aspas escapadas com barra invertida. Se magic_quotes_sybase também estiver habilitado (on), aspas simpes são escapadas com outra aspa simples ao invés de barra invertida.

magic_quotes_sybase booleano

Se magic_quotes_sybase também estiver habilitado (on), aspas simples é escapada como aspa simples ao invés de barra invertida se magic_quotes_gpc ou magic_quotes_runtime estiverem habilitados.

max_execution_time inteiro

Isto define a quantide máxima de tempo em segundos que um script é permitido rodar antes de ser finalizado pelo interpretador. Isto previne scripts mal escritos de travar o servidor. O valor padrão é 30.

O tempo máximo de execução não é afetado por qualquer system calls, a função sleep(), etc. Veja a função set_time_limit() para mais detalhes.

memory_limit inteiro

Isto define a quantidade máxima de memória em bytes que um script é capaz de alocar. Isto ajuda a prevenir scripts mal escritos de consumir toda a memória disponível no servidor.

nsapi_ext string

precision inteiro

O número de digitos significativos mostrado em números de ponto flutuante.

register_argc_argv booleano

Diz ao PHP se declara as variaveis argv & argc (que conteriam a informação do GET).

Veja também PHP em linha de comando. Esta diretiva se tornou disponível no PHP 4.0.0 e estava sempre habilitanda antes desta versão.

post_max_size integer

Define o tamanho máximo dos dados informados via POST. Esse parâmetro afeta o upload de arquivos. Para poder receber arquivos grandes, este valor precisa ser maior que o upload_max_filesize.

Se o limite de memória foi informado no script de configuração, memory_limit afetará o upload de arquivos. Ou seja, o memory_limit também precisa maior que post_max_size.

register_globals booleano

Diz quando registrar as variáveis EGPCS (Environment, GET, POST, Cookie, Server) como globais ou não. Por exemplo, se register_globals = on, a URL http://www.example.com/test.php?id=3 irá criar a veriável $id. Ou ainda $DOCUMENT_ROOT a partir $_SERVER['DOCUMENT_ROOT']. Você pode deixar desligá-la se não quiser encher o escopo global de seu script com dados de usuários. Desde o PHP 4.2.0, esta diretiva vem com o default off. Essa preferência é consequência da alteração das Variáveis Predefinidas do PHP, principalmente as superglobals: $_ENV, $_GET, $_POST, $_COOKIE e $_SERVER. Leia o capítulo sobre segurança em Usando register_globals para mais informações.

Observe que register_globals não pode ser modificada no tempo de execução (ini_set()). Entretanto, você pode fazer isso no .htaccess se seu hospedador permitir, como descrito acima. Um exemplo de diretiva no arquivo .htaccess: php_flag register_globals on.

Nota: register_globals é afetada pela diretiva variables_order.

short_open_tag booleano

Diz quando a forma curta (<? ?> das tags do PHP deve ser permitida. Se você quer usar PHP em combinação com XML, você pode desabilita essa opção e usar <?xml ?> inline. De outra forma, você pode imprimir com o PHP assim: <?php echo '<?xml version="1.0"'; ?>. Se desabilitada, você precisá utilizar a forma longa de abertura do PHP (<?php ?>).

Nota: Esta diretiva afeta o atalho <?=, que é idêntico a <? echo. A utilização deste atalho requer short_open_tag ativado.

sql.safe_mode booleano

track_errors booleano

Se habilitado, a última mensagem de erro sempre estará presente na variável global $php_errormsg.

track_vars booleano

Se habilitado, então as variáveis Environment, GET, POST, Cookie, e Server poderão ser encontradas nas matrizes associativas globais $_ENV, $_GET, $_POST, $_COOKIE e $_SERVER.

Note que no PHP 4.0.3, track_vars sempre está habilitada.

upload_tmp_dir string

O diretório temporário usado para armazenar arquivos durante o upload de arquivos. Deve ter permissão de escrita para qualquer usuário em que o PHP esteja sendo rodado.

upload_max_filesize inteiro

O tamanho máximo de um upload de arquivo. O valor é expresso em bytes.

user_dir string

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

warn_plus_overloading booleano

Se habilitado, esta opção faz com que o PHP imprima um aviso quando o operador mais (+) é usado em variáveis string. Isto é para tornar mais fácil encontrar scripts que precisam ser reescritos para substituir pelo concatenador de strings (.).

Diretivas de Configuração de Modo Seguro (Safe Mode)

safe_mode booleano

Quando habilitar o modo seguro do PHP, leia os capítulos Capítulo de Segurança e Safe Mode para maiores informações

safe_mode_gid booleano

Configura para a utilização do UID (FALSE) ou GID (TRUE) na checagem de acesso dos arquivos. Leia em Safe Mode para maiores informações.

safe_mode_exec_dir string

Se o PHP está sendo usado em modo seguro, system() e as outras funções de execução do sistema recusam-se a iniciar programas que não estejam neste diretório.

safe_mode_include_dir string

A checagem de UID/GID pode ser ignorada quando incluindo arquivos para esse diretório e subdiretórios (o diretório precisa estar em include_path ou o caminho completo precisa ser incluído).

Diretivas ed Configuração do Debugger

debugger.host string

Nome do DNS ou endereço IP da máquina usada pelo debuger.

debugger.port string

Número da porta usada pelo debugger.

debugger.enabled booleano

Se o debugger está habilitado ou não.

Diretivas de Carregamento de Extensão

enable_dl booleano

Esta diretiva só é realmente útil na versão do módulo Apache do PHP. Você pode habilitar ou desabilitar o carregamento dinâmico de extensões PHP com dl() em servidor por virtual ou por diretório.

A principal razão em desabilitar o carregamento dinâmico é a segurança. Com carregamento dinâmico, é possível ignorar todas as restrições safe_mode e open_basedir.

O padrão é permitir o carregamento dinâmico, exceto ao ser usado o modo seguro. No modo seguro, é sempre impossível usar dl().

extension_dir string

Nesse diretório o PHP deve procurar por extensões dinamicamente carregáveis.

extension string

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

Diretivas de Configuração mSQL

msql.allow_persistent booleano

Permite ou não conexões persistentes mSQL.

msql.max_persistent inteiro

O número máximo de conexões persistentes mSQL por processo.

msql.max_links inteiro

O número máximo de conexões mSQL por processo, inclunido conexões persistentes.

Diretivas de Configuração Postgres

pgsql.allow_persistent booleano

Permite ou não conexões persistentes Postgres.

pgsql.max_persistent inteiro

O número máximo de conexões persistentes Postgres por processo.

pgsql.max_links inteiro

O número máximo de conexões Postgres por processo, incluindo conexões persistentes.

Diretivas de Configuração SESAM

sesam_oml string

Nome da biblioteca BS2000 PLAM contendo os módulos de driver SESAM carregáveis. Exigido para usar funções SESAM. A biblioteca BS2000 PLAM deve estar definida ACCESS=READ,SHARE=YES porque ela deve ser lida pelo id de usuário do servidor Apache.

sesam_configfile string

Nome do arquivo de configuração da aplicação SESAM. Exigido ao usar funções SESAM. O arquivo BS2000 deve ser lido pelo id de usuário do servidor apache.

O arquivo de configuração da aplicação irá normalmente conter um arquivo de configuração como (veja o manual de referência SESAM):

CNF=B
NAM=K
NOTYPE

sesam_messagecatalog string

Nome do arquivo de catálogo de mensagem SESAM. Na maioria dos casos, esta diretiva é desnecessária. Apenas se o arquivo de mensagem SESAM não estiver instalado na tabela de arquivo de mensagen do sistema BS2000, pode então ser definida por esta diretiva.

O catálgo de mensagem deve ser definido ACCESS=READ,SHARE=YES porque ele deve ser lido pelo id de usuário do servidor apache.

Diretivas de Configuração Sybase

sybase.allow_persistent booleano

Permite ou não conexões persistentes Sybase.

sybase.max_persistent inteiro

O número máximo de conexões persistentes Sybase por processo.

sybase.max_links inteiro

O número máximo de conexões Sybase por processo, incluindo conexões persistentes.

Diretivas de Configuração Sybase-CT

sybct.allow_persistent booleano

Permite ou não conexões persistentes Sybase-CT. O padrão é permitir.

sybct.max_persistent inteiro

O número máximo de conexões persistentes Sybase-CT por processo. O padrão é -1 que significa ilimitado.

sybct.max_links inteiro

O número máximo de conexões Sybase-CT por processo, incluindo conexões persistentes. O padrão é -1 que significa ilimitado.

sybct.min_server_severity inteiro

Mensagens do servidor muito maiores ou iguais a sybct.min_server_severity serão publicadas como avisos. Este valor também pode ser definido a partir de um script chamando sybase_min_server_severity(). O padrão é 10, que publica erros de informação muito maiores ou maiores.

sybct.min_client_severity inteiro

Mensagens de biblioteca de clientes muito maiores ou iguais a sybct.min_client_severity serã publicadas como avisos. Este valor também pode ser definido a partir de um script chamando sybase_min_client_severity(). O padrão é 10 que efetivamente desabilita publicações.

sybct.login_timeout inteiro

O máximo de tempo a esperar em segundos por uma tentativa de conexão obter sucesso antes de retornar uma falha. Note que se max_execution_time foi excedido quando uma tentativa de conexão passa do tempo, seu script será terminado antes que possa executar uma ação na falha. O padrão é um minuto.

sybct.timeout inteiro

O máximo de tempo a esperar em segundos por uma select_db ou chamada obter sucesso antes de retornar uma falha. Note que se max_execution_time foi excedido quando uma tentativa de conexão passa do tempo, seu script será terminado antes que possa executar uma ação na falha. O padrão é sem limite.

sybct.hostname string

O nome da máquina a partir da qual você diz se conectar, para ser mostrado por sp_who. O padrão é nenhum (none).

Diretivas de Configuração Informix

ifx.allow_persistent booleano

Permite ou não conexões persistentes Informix.

ifx.max_persistent inteiro

O número máximo de conexões persistentes Informix por processo.

ifx.max_links inteiro

O número máximo de conexões Informix por processo, incluindo conexões persistentes.

ifx.default_host string

A máquina padrão a ser conectada quando nenhuma máquina é especificada em ifx_connect() ou ifx_pconnect().

ifx.default_user string

O id de usuário padrão a ser usado quando nenhum é especificado em ifx_connect() ou ifx_pconnect().

ifx.default_password string

A senha padrão a ser usada quando nenhuma é especificada em ifx_connect() ou ifx_pconnect().

ifx.blobinfile booleano

Defina como TRUE (verdadeiro) se você quer retornar colunas blob num arquivo, falso se você as quer na memória. Você pode sobescrever a definição em tempo de execução com ifx_blobinfile_mode().

ifx.textasvarchar booleano

Defina como TRUE (verdadeiro) se você quer retornar colunas TEXT como strings normais em declarações select, falso se você deseja usar parâmetros id blob. Você pode sobescrever essa definição em tempo de execução com ifx_textasvarchar().

ifx.byteasvarchar booleano

Defina como TRUE (verdadeiro) se você quer retornar colunas BYTE como strings normais em chamadas select, falso se você deseja usar parâmetros id blob. Você pode sobescrever essa definição em tempo de execução com ifx_textasvarchar().

ifx.charasvarchar booleano

Defina como verdadeiro se você deseja cortar espaços de trilha de colunas CHAR ao consultá-las.

ifx.nullformat booleano

Defina como verdadeiro se você quer retornar colunas NULL como a string literal "NULL", falso se você que-las retornadas como uma string vazia "". Você pode sobescrever essa definição em tempo de execução com ifx_nullformat().

Diretivas de Configuração BC Math

bcmath.scale inteiro

Número de dígitos decimais para todas as funções bcmath.

Diretivas de Configuração de Capacidade de Navegador

browscap string

Nome do arquivo de capacidade do navegador. Veja também get_browser().

Diretivas de configuração do Multi-Byte String

mbstring.internal_encoding string

mbstring.internal_encoding define o padrão interno da página de caracteres (character encoding).

mbstring.http_input string

mbstring.http_input define a página de caracteres padrão de entrada HTTP.

mbstring.http_output string

mbstring.http_output define a página de caracteres de saída HTTP.

mbstring.detect_order string

mbstring.detect_order define a ordem de detecção da página de caracteres padrão.

mbstring.substitute_character string

mbstring.substitute_character define a página de caracteres substituta para códigos de páginas inválidas.

Diretivas de configuração Exif

A extensão Exif suporta conversão automática para página de caracteres Unicode e JIS para comentários de usuários quando o a extensão mbstring está disponível. Isto é feito primeiramente decodificando o comentário utilizando o código de página especificada. O resultado é então codificado com o outro código de página para combinar com sua saída HTTP.

exif.encode_unicode string

exif.encode_unicode define a página de código UNICODE nos comentários de usuários manipulados. Seu default é o ISO-8859-15 que funciona para a maioria dos países não-asiáticos. A diretiva pode ser vazia ou precisa ser uma página de código suportada pelo mbstring. Se ela estiver vazia a página de código interna do mbstring é utilizada.

exif.decode_unicode_motorola string

exif.decode_unicode_motorola define o código de página de caracteres Unicode para os comentários de usuários codificados cuja imagem esteja com os bytes na ordem Motorola (big-endian). Esta configuração nao pode ser vazia, mas você pode especificar uma lista de códigos suportados por mbstring. O padrão é UCS-2BE.

exif.decode_unicode_intel string

exif.decode_unicode_intel define o código de página de caracteres Unicode para os comentários de usuários codificados cuja imagem esteja com os bytes na ordem Intel (little-endian). Esta configuração não pode ser vazia, mas você pode especificar uma lista de códigos suportados por mbstring. O padrão é UCS-2LE.

exif.encode_jis string

exif.encode_jis define a página de caracteres para manipulação dos comentários de usuários. Seu default vazio força as funções para usar a página de codificação interna do mbstring.

exif.decode_jis_motorola string

exif.decode_jis_motorola define o código de página de caracteres JIS para os comentários de usuários codificados cuja imagem esteja com os bytes na ordem Motorola (big-endian). Esta configuração não pode ser vazia, mas você pode especificar uma lista de códigos suportados por mbstring. O padrão é JIS.

exif.decode_jis_intel string

exif.decode_jis_intel define o código de página de caracteres JIS para os comentários de usuários codificados cuja imagem esteja com os bytes na ordem Intel (little-endian). esta configuração não pode ser vazia, mas você pode especificar ima lista de códigos suportados por mbstring. O padrão é JIS.