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 detalhas na respectiva página de documentação da extensão; Informações sobre diretivas de sessões por exemplo, pode ser encontrada na página de sessões.
Nota:
Os padrões listados aqui são utilizados quando o php.ini não é carregado. Valores de produção e desenvolvimento no php.ini podem variar.
Nome | Padrão | Modificável | Changelog |
---|---|---|---|
async_send | "0" | PHP_INI_ALL | Disponível no PHP 4.2.0. Removido no PHP 4.3.0. |
Nome | Padrão | Modificável | Changelog |
---|---|---|---|
short_open_tag | "1" | PHP_INI_PERDIR | PHP_INI_ALL no PHP 4.0.0. PHP_INI_PERDIR no PHP >= 4.0.1. |
asp_tags | "0" | PHP_INI_PERDIR | PHP_INI_ALL no PHP 4.0.0. Removido no PHP 7.0.0. |
precision | "14" | PHP_INI_ALL | |
serialize_precision | "17" | PHP_INI_ALL | Disponível desde PHP 4.3.2. Até PHP 5.3.5, o valor padrão é 100. |
y2k_compliance | "1" | PHP_INI_ALL | Removido no PHP 5.4.0. |
allow_call_time_pass_reference | "1" | PHP_INI_PERDIR | PHP_INI_ALL in PHP 4.0.0. Removido no PHP 5.4.0. |
disable_functions | "" | PHP_INI_SYSTEM apenas | Disponível desde PHP 4.0.1. |
disable_classes | "" | php.ini apenas | Disponível desde PHP 4.3.2. |
exit_on_timeout | "" | PHP_INI_ALL | Disponível desde PHP 5.3.0. |
expose_php | "1" | php.ini apenas | |
zend.multibyte | "0" | PHP_INI_ALL | Disponível desde PHP 5.4.0 |
zend.script_encoding | NULL | PHP_INI_ALL | Disponível desde PHP 5.4.0 |
zend.detect-unicode | NULL | PHP_INI_ALL | Disponível desde PHP 5.4.0 |
zend.signal_check | "0" | PHP_INI_SYSTEM | Disponível desde PHP 5.4.0 |
zend.assertions | "1" | PHP_INI_ALL com restrições | Disponível desde PHP 7.0.0. |
zend.ze1_compatibility_mode | "0" | PHP_INI_ALL | Disponível desde PHP 5.0.0. Removido no PHP 5.3.0 |
detect_unicode | "1" | PHP_INI_ALL | Disponível desde PHP 5.1.0. Renomeado para zend.detect-unicode a partir do PHP 5.4.0. |
Uma rápida explicação das diretivas de configuração.
short_open_tag
boolean
Diz ao PHP se a forma abreviada de abertura de tag (<? ?>
)
(<? ?>
) está permitida. Se quiser usar PHP em
conjunto com XML, pode ser desabilitado esta opção a fim de
usar em linha <?xml ?>
. Caso contrário,
pode-se imprimir com PHP, por exemplo <?php echo '<?xml
version="1.0"?>'; ?>
. Além disso, se se desabilitado, pode-se usar
a forma extensa de abertura de tag (<?php ?>
).
Nota:
Esta diretiva também afeta a forma abreviada
<?=
anteriores ao PHP 5.4.0, que é a mesma que<? echo
. Para uso desta abreviatura é necessário queshort_open_tag
esteja ativo. Desde PHP 5.4.0,<?=
está sempre disponível.
Versão | Descrição |
---|---|
7.0.0 | Removido no PHP 7.0.0. |
precision
integer
serialize_precision
integer
y2k_compliance
boolean
allow_call_time_pass_reference
boolean
Serve para avisar quando argumentos são passados por referência durante chamadas de funções. O método recomendado para específicar quais argumentos deveriam ser passados por referência está na declaração da função. Recomendado tentar alterar esta função para Off e garantir que seus scripts funcionam corretamente a fim de garantir que eles executam com futuras versões da linguagem (pode-se receber uma mensagem de warning toda vez que for usado este recurso).
Passagem de argumentos por referência durante chamadas de função está obsoleta por razões de limpreza código. Uma função pode modificar estes argumentos maneira não documentada se não declarar que o argumento deve ser passado por referência. Para previnir efeitos colaterais é melhor especificar quais argumentos devem ser passados por referência apenas na declaração da função.
Veja também Explicação sobre referências.
Versão | Descrição |
---|---|
5.4.0 | Removido do PHP. |
5.3.0 |
Emite um nível de erro E_DEPRECATED .
|
5.0.0 |
Obsoleta, gera um nível de erro E_COMPILE_WARNING .
|
expose_php
boolean
Expõe para o mundo que o PHP está instalado no servidor, inclui a versão do PHP dentro do header HTTP (e.g., X-Powered-By: PHP/5.3.7). Antes do PHP 5.5.0 o logotipo guids do PHP também são expostos, de modo que, quando adicionado à URL do seu script PHP, será mostrado o logotipo correspondente (e.g., » http://www.php.net/?=PHPE9568F34-D428-11d2-A769-00AA001ACF42). Isto também afeta a saída do phpinfo(), quando desabilitado, o logotipo PHP as informações de créditos não serão mostradas.
Nota:
Desde o PHP 5.5.0, estes GUID e função php_logo_guid() foi removida do PHP e GUID foram substituídos por dados com URIs. Portanto, não funciona mais o acesso ao logotipo PHP adicionando o GUID para o URL. Similarmente, desativar
expose_php
não afeta a exibição de logotipo PHP phpinfo().
Veja também php_logo_guid() e phpcredits().
disable_functions
string
Esta diretiva permite você desabilitar certas funções por razões de segurança. Recebe uma lista de nomes delimitada por vírgulas. disable_functions não não é afetado pelo Modo Seguro.
Apenas funções internas podem ser dsabilitadas usando esta diretiva. Funções definidas pelo Usuário não são afetadas.
Esta diretiva deve ser configurada no php.ini, por exemplo, não pode ser configurada dentro do httpd.conf.
disable_classes
string
zend.assertions
integer
Nota:
Se um processo foi iniciado no modo de produção, zend.assertions não poderá ser modificado em tempo de execução, já que o código para a asserção não foi gerado.
Se um processo foi iniciado no modo de desenvolvimento, zend.assertions não poderá ser definido para -1 em tempo de execução.
zend.ze1_compatibility_mode
boolean
Ativa modo de compatibilidade com Zend Engine 1 (PHP 4). Afeta a clonagem,
conversão ( objetos sem propriedades são convertidos para FALSE
ou 0), e
comparação de objetos.
Neste modo, objetos são passados por valor, em vez de por referência como padrão.
Veja também seção entitulada Migrando do PHP 4 para o PHP 5.
Este recurso se tornou OBSOLETO e foi REMOVIDO do PHP 5.3.0
zend.multibyte
boolean
Permite a análise de arquivos fontes em codificações multibytes. Ativar zend.multibyte é requerido para utilizar codificações de caracteres como SJIS, BIG5, etc que contém caracteres especiais em strings multidata. Codificações compatíveis com ISO-8859-1 como UTF-8, EUC, etc não requerem essa opção.
Habilitar o zend.multibyte requer que a extensão mbstring esteja disponível.
zend.script_encoding
string
Este valor vai ser usado, a menos que diretiva declare(encoding=...) apareça no início do script. Quando uma codificação incompatível com ISO-8859-1 é utilizada, ambos zend.multibyte e zend.script_encoding precisam ser utilizados.
Strings literais serão transliteradas de zend.script_enconding para mbstring.internal_encoding, como se a função mb_convert_encoding() tivesse sido chamada.
zend.detect_unicode
boolean
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
boolean
Para verificar se manipuladores de sinais são substituídos no encerramento.
exit_on_timeout
boolean
Esta é uma diretiva mod_php-only Apache1que força um subprocesso do Apache para sair se um execução PHP ocorre um timeout. Esse timeout causa uma chamada interna longjmp() no Apache1 que pode deixar alguma extensão em um estado inconscitente. Ao terminar o processo, será limpo de qualquer bloqueio pendente ou da memória.
Nome | Padrão | Modificável | Changelog |
---|---|---|---|
memory_limit | "128M" | PHP_INI_ALL | "8M" antes PHP 5.2.0, "16M" no PHP 5.2.0 |
Uma rápida explicação das diretivas de configuração.
memory_limit
integer
Define a quantidade máxima de memória em bytes que um script está permitido alocar. Isto ajuda a previnir que scripts mal escritos consumam toda memória disponível no servidor. Note que para não ter limite de memória, defina esta diretiva para -1.
Antes do PHP 5.2.1, para utilizar esta diretiva é necessário que seja habilitado em tempo de execução usando --enable-memory-limit no linha de comando. Esta flag em tempo de execução também é necessária para definir as funções memory_get_usage() e memory_get_peak_usage() em versões anteriores à 5.2.1.
Quando um integer é utilizado, o valor é medido em bytes. A resumida notação, como descrito neste FAQ, pode também ser usada.Veja também: max_execution_time.
Nome | Padrão | Modificável | Changelog |
---|---|---|---|
realpath_cache_size | "16K" | PHP_INI_SYSTEM | Disponível desde PHP 5.1.0. |
realpath_cache_ttl | "120" | PHP_INI_SYSTEM | Disponível desde PHP 5.1.0. |
Uma rápida explicação das diretivas de configuração.
realpath_cache_size
integer
Determina o tamanho de cache do realpath para ser usado pelo PHP. Este valor deve ser aumentado em sistemas onde PHP abre muitos arquivos, para refletir a quantidade das operações realizadas com os arquivos.
O tamanho representa o número total de bytes nos caminhos de strings armazenados, mais o tamanho associado ao registro de cache. Isto significa que para guardar caminhos longos no cache, o tamanho de cache precisa ser maior. Esse valor não controla diretamente o número de de caminhos distintos que pode ser cacheado.
O tamanho requerido para o registro de cache depende do sistema operacional.
realpath_cache_ttl
integer
Tempo de duração (em segundos) para que o cache de informações do realpath para um dado arquivo ou diretório. Para sistemas que arquivos raramente mudam, considere aumentar o valor.
Nome | Padrão | Modificável | Changelog |
---|---|---|---|
arg_separator.output | "&" | PHP_INI_ALL | Disponível desde PHP 4.0.5. |
arg_separator.input | "&" | PHP_INI_PERDIR | Disponível desde PHP 4.0.5. |
variables_order | "EGPCS" | PHP_INI_PERDIR | PHP_INI_ALL no PHP <= 5.0.5. |
request_order | "" | PHP_INI_PERDIR | Disponível desde PHP 5.3.0 |
auto_globals_jit | "1" | PHP_INI_PERDIR | Disponível desde PHP 5.0.0. |
register_globals | "0" | PHP_INI_PERDIR | PHP_INI_ALL in PHP <= 4.2.3. Removido no PHP 5.4.0. |
register_argc_argv | "1" | PHP_INI_PERDIR | PHP_INI_ALL in PHP <= 4.2.3. |
register_long_arrays | "1" | PHP_INI_PERDIR | Disponível desde PHP 5.0.0. Deprecated in PHP 5.3.0. Removido no PHP 5.4.0. |
enable_post_data_reading | "1" | PHP_INI_PERDIR | Disponível desde PHP 5.4.0 |
post_max_size | "8M" | PHP_INI_PERDIR | PHP_INI_SYSTEM no PHP <= 4.2.3. Disponível desde PHP 4.0.3. |
auto_prepend_file | NULL | PHP_INI_PERDIR | PHP_INI_ALL in PHP <= 4.2.3. |
auto_append_file | NULL | PHP_INI_PERDIR | PHP_INI_ALL in PHP <= 4.2.3. |
default_mimetype | "text/html" | PHP_INI_ALL | |
default_charset | "UTF-8" | PHP_INI_ALL | Padrão em "UTF-8" desde o PHP >= 5.6.0; vazio para para PHP < 5.6.0. |
always_populate_raw_post_data | "0" | PHP_INI_PERDIR | PHP_INI_ALL in PHP <= 4.2.3. Disponível desde PHP 4.1.0. Removido no PHP 7.0.0. |
Uma rápida explicação das diretivas de configuração.
arg_separator.output
string
O separador usado em URLs geradas 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 caracter na diretiva é considerado como separador!
variables_order
string
Define a ordem de interpretação das variáveis EGPCS (Environment, Get, Post, Cookie, e Server). Por exemplo, se variables_order estiver defindo como "SP" então o PHP vai criar as variáveis superglobals $_SERVER e $_POST, mas não irá criar $_ENV, $_GET e $_COOKIE. Configurar para "" significa que superglobals não será definida.
Se a diretiva obsoleta register_globals está ativada, então variables_order também configura a ordem que as variáveis ENV, GET, POST, COOKIE e SERVER são preenchidas no escopo global. Por exemplo, se variables_order estiver definida para "EGPCS", register_globals está ativada, e ambos $_GET['action'] e $_POST['action'] estão definidos, então $action conterá o valor de $_POST['action'] como P vem depois G em nosso exemplo acima.
Em ambos CGI e FastCGI SAPIs, $_SERVER é também preenchido por valores de ambiente; S é sempre equivalente à ES independentemente do lugar do E nesta diretiva.
Nota:
O conteúdo e ordem do $_REQUEST é também afetada por esta diretiva.
request_order
string
Esta diretiva descreve a ordem na qual PHP regista as variáves GET, POST, e Cookie no array _REQUEST. Registro é feito da esquerda para direita, valores mais recentes sobreescrevem os valores antigos.
Se esta diretiva não está definida, variables_order é usado para conteúdo $_REQUEST.
Note que a distribuição padrão do arquivo php.ini não contém o 'C' para cookies, por motivos de segurança.
auto_globals_jit
boolean
Quando ativado, as variáveis SERVER 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, esta diretiva resultará em um ganho de desempenho.
As diretivas PHP register_globals, register_long_arrays, e register_argc_argv devem ser desabilitadas para esta diretiva ter algum efeito. Desde PHP 5.1.3 não é necessário que register_argc_argv esteja desabilitado.
Uso das variáveis SERVER e ENV é verificada durante tempo de compilação fazendo uso através e.g. variable variables não causará sua inicialização.
register_globals
boolean
Configura se registra ou não a variáveis EGPCS (Environment, GET, POST, Cookie, Server) como variáveis globais.
A partir do » PHP 4.2.0, essa diretiva por padrão está desligada.
Veja o capitulo sobre segurança Utilizando register_globals para informações relacionadas.
Note que register_globals
não pode ser modificado quando executando scripts (ini_set()). Você pode
utilizar .htaccess caso seu host permita, como descrito
acima. Um exemplo de como ficaria o .htaccess:
php_flag register_globals off
.
Nota:
register_globals
é afetada pela diretiva variables_order.
Esta funcionalidade tornou-se OBSOLETA desde o PHP 5.3.0 e foi REMOVIDA desde o PHP 5.4.0.
register_argc_argv
boolean
register_long_arrays
boolean
Esta funcionalidade tornou-se OBSOLETA desde o PHP 5.3.0 e foi REMOVIDA desde o PHP 5.4.0.
enable_post_data_reading
boolean
post_max_size
integer
post_max_size
.
Quando um integer é utilizado, o
valor é medido em bytes. A resumida notação, como descrito
neste FAQ, pode também ser usada.
Se o dados postados forem maiores que post_max_size então as variáveis
superglobals
$_POST e $_FILES
ficarão vazias. Isso pode ser observado de várias maneiras, por exemplo, por incluir uma variável no array
$_GET ao chamar o script
(chamar <form action="edit.php?processed=1">),
então verificando se $_GET['processed'] está preenchido.
Nota:
O PHP permite sufixos para valores em bytes, incluindo K (kilo), M (mega) e G (giga). O PHP fará conversões automaticamente se você utilizar qualquer um desses. Cuidado para não exceder o limite de inteiros sinalizados de 32 bit (se utilizando versões de 32 bits) o que fará o script falhar.
Versão | Descrição |
---|---|
5.3.4 |
post_max_size = 0 não irá desligar o limite quando o conteúdo
for do tipo application/x-www-form-urlencoded ou não estiver registrado no PHP.
|
5.3.2 , 5.2.12 |
Permite qualquer tamanho de dados postados ao configurar post_max_size to 0.
|
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 require, então include_path é utilizado.
O valor especial none desativa a auto inclusão.
auto_append_file
string
Especifica o nome do arquivo que é automaticamente interpretado 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á declarar um tipo de mídia utilizando o header Content-Type. Para desabilitar o envio da codificação configure essa opção para vazio.
O padrão interno é o media type text/html.
default_charset
string
A partir do PHP 5.6, "UTF-8" é o valor default e esse valor é utilizado
como a codificação de caracteres padrão para
htmlentities(),
html_entity_decode() e
htmlspecialchars() no caso do parâmetro
encoding
for omitido. O valor de
default_charset
também será utilizado para configurar
a codificação pardão para as funçõesiconv
se as configurações
iconv.input_encoding
,
iconv.output_encoding
e
iconv.internal_encoding
estiverem vazias, e também para as funções
mbstring se
mbstring.http_input
mbstring.http_output
mbstring.internal_encoding
estiverem vazias.
Todas as versões do PHP usarão esse valor como enviado no header padrão Content-Type caso não seja sobrescrito por uma chamada da função header().
Configurar default_charset
para um valor padrão
não é recomendado.
input_encoding
string
Disponível desde o PHP 5.6.0. Essa configuração é utilizada para módulos multibyte como mbstring e iconv. Padrão é vazio.
output_encoding
string
Disponível desde o PHP 5.6.0. Essa configuração é utilizada para módulos multibyte como mbstring e iconv. Padrão é vazio.
internal_encoding
string
Disponível desde o PHP 5.6.0. Essa configuração é utilizada para módulos multibyte como mbstring e iconv. Padrão é vazio. Se vazio default_charset é utilizado.
always_populate_raw_post_data
mixed
Este recurso está OBSOLETO desde o PHP 5.6.0, e REMOVIDO desde o PHP 7.0.0.
Se configurado para TRUE
, o PHP o sempre preencherá
$HTTP_RAW_POST_DATA contento os dados POST puro.
Caso contrário a variável é preenchida somente quando o tipo MIME dos
dados não são reconhecidos.
O meio recomendado de acessar dados POST puro é através do
php://input, sendo
$HTTP_RAW_POST_DATA obsoleto desde o PHP 5.6.0
em diante. Configurando always_populate_raw_post_data
para -1 irá evitar novos comportamentos
implementados em futuras versões do PHP, como se
$HTTP_RAW_POST_DATA nunca tivesse sido definido.
Independente da configuração, $HTTP_RAW_POST_DATA não está disponível quando enctype="multipart/form-data".
Veja também: magic_quotes_gpc, magic_quotes_runtime, e magic_quotes_sybase.
Nome | Padrão | Modificável | Changelog |
---|---|---|---|
include_path | ".;/path/to/php/pear" | PHP_INI_ALL | |
open_basedir | NULL | PHP_INI_ALL | PHP_INI_SYSTEM no PHP < 5.3.0 |
doc_root | NULL | PHP_INI_SYSTEM | |
user_dir | NULL | PHP_INI_SYSTEM | |
extension_dir | "/path/to/php" | PHP_INI_SYSTEM | |
extension | NULL | php.ini only | |
zend_extension | NULL | php.ini only | |
zend_extension_debug | NULL | php.ini only | Disponível antes do PHP 5.3.0. |
zend_extension_debug_ts | NULL | php.ini only | Disponível antes do PHP 5.3.0. |
zend_extension_ts | NULL | php.ini only | Disponível antes do PHP 5.3.0. |
cgi.check_shebang_line | "1" | PHP_INI_SYSTEM | Disponível desde PHP 5.2.0. |
cgi.discard_path | "0" | PHP_INI_SYSTEM | Disponível desde PHP 5.3.0. |
cgi.fix_pathinfo | "1" | PHP_INI_SYSTEM | Disponível desde PHP 4.3.0. PHP_INI_ALL prior to PHP 5.2.1. |
cgi.force_redirect | "1" | PHP_INI_SYSTEM | Disponível desde PHP 4.2.0. PHP_INI_ALL prior to PHP 5.2.1. |
cgi.nph | "0" | PHP_INI_SYSTEM | Disponível desde PHP 5.3.0. |
cgi.redirect_status_env | NULL | PHP_INI_SYSTEM | Disponível desde PHP 4.2.0. PHP_INI_ALL prior to PHP 5.2.1. |
cgi.rfc2616_headers | "0" | PHP_INI_ALL | Disponível desde PHP 4.3.0. |
fastcgi.impersonate | "0" | PHP_INI_SYSTEM | Disponível desde PHP 4.3.0. PHP_INI_ALL prior to PHP 5.2.1. |
fastcgi.logging | "1" | PHP_INI_SYSTEM | Disponível desde PHP 4.3.0. PHP_INI_ALL prior to PHP 5.2.1. |
Uma rápida explicação das diretivas de configuração.
include_path
string
Especifica a lista de diretórios onde as funções require, include, fopen(), file(), readfile() e file_get_contents() procuração por arquivos. O formato é igual a variável de ambiente PATH: uma lista de diretórios separadas por virgula nos Unix e ponto e virgula no Windows.
O PHP considera cara item no include_path separadamente quando procurando por arquivos a incluir. Ele checará o primeiro caminho, e se não encontrar aqui, procurará no próximo e assim por diante, até que encontra o arquivo ou retorna um warning ou error. Você pode modificar o include_path durante a execução utilizando 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 pesquisas relativas ao diretório atual. Entretanto é mais eficiente utilizar include './file' em vez de fazer o PHP procurar em vários diretórios em cada include.
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 pode variar entre APIs de servidor por essas variáveis serem elas mesmas diferentes.
Exemplo #3 include_path utilizando variável de ambiente ${USER} no Unix
include_path = ".:${USER}/pear/php"
open_basedir
string
Limita os arquivos que o PHP pode acessar para o diretório especificado, incluindo o próprio script. Essa diretiva NÃO é afetada pelo Safe Mode.
Quando um script tenta acessar o filesystem, por exemplo utilizando include ou fopen(), o caminho do arquivo é verificado. Quando o arquivo está fora do diretório especificado, o PHP irá recusar a acessá-lo. Todos os links simbólicos são resolvidos, então não é possível evitar essa restrição com um symlink. Se o arquivo não existir então o symlink não pode ser resolvido e então o nome do arquivo é comparado a um (resolvido) open_basedir .
open_basedir pode afetar mais que as funções de filesystem. Por exemplo se MySQL é configurado para utilizar os drivers mysqlnd, LOAD DATA INFILE será afetado por open_basedir . Muitas funcionalidades extendidas do PHP utilizamopen_basedir dessa maneira.
O valor especial .
indica que o diretório atual do script pode ser utilizado como o
diretório base. Isto é perigoso, no entanto, porque o diretório padrão
do script pode ser facilmente alterado com chdir().
No httpd.conf, open_basedir pode ser desativado (por exemplo, em alguns hosts virtuais) da mesma forma que outras diretivas de configuração: "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 diferentes diretórios acima agora são automaticamente herdados.
As restrições especificadas com open_basedir são um nome de diretório desde o PHP 5.2.16 e 5.3.4. Versões anteriores permitiam também prefixos. Isto significa que "open_basedir = /dir/incl" também permitia acessar "/dir/include" e "/dir/incls" caso existissem. Quando desejasse restringir a diretórios específicos era preciso terminar o caminho com uma barra. Exemplo: open_basedir = /dir/incl/
O padrão é permitir que todos os arquivos podem ser abertos.
Nota:
A partir do PHP 5.3.0 o open_basedir pode ser afunilado durante a 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/ durante a execução com o ini_set(). Quanto há vários diretórios listados, você pode utilizar a constante
PATH_SEPARATOR
como um separador independente do sistema operacional.
doc_root
string
O "diretório root" do PHP no servidor. Utilizado apenas se preenchido. Se o PHP estiver configurado com safe mode então nenhum arquivo fora desse diretório será servido. Se o PHP não estiver compilado com FORCE_REDIRECT, você deve configurar doc_root se estiver rodando o PHP em modo CGI em qualquer servidor web (exceção ao IIS). A alternativa é utilizar a configuração cgi.force_redirect abaixo.
user_dir
string
O nome do diretório base utilizado como home do usuário para os arquivos do PHP, por exemplo public_html .
extension_dir
string
O diretório no qual o PHP deve procurar por extensões carregadas dinamicamente. Veja tambémenable_dl, and dl().
extension
string
Quais extensões carregáveis carregar quando o PHP inicia.
zend_extension
string
Nome da extensão Zend carregável dinamicamente (por exemplo APD) a carregar quando o PHP inicia.
zend_extension_debug
string
Variante de zend_extension para extensões compiladas com debug anteriores ao PHP 5.3.0.
zend_extension_debug_ts
string
Variante de zend_extension para extensões compiladas com debug e thread safety anteriores ao PHP 5.3.0.
zend_extension_ts
string
Variante de zend_extension para extensões compiladas com thread safety anteriores ao PHP 5.3.0.
cgi.check_shebang_line
boolean
Controla se CGI o PHP verifica por linhas iniciando com #! (shebang) no topo de scripts. Essa linha pode ser necessária se o script suporta execução tanto com script como via PHP CGI. O PHP em modo CGI pula essa linha e ignora seu conteúdo caso esta diretiva esteja ligada.
cgi.discard_path
boolean
Se ativado, o binário do PHP CGI binary pode ser posicionado seguramente fora da diretório web e não será possível de contornar a segurança .htaccess.
cgi.fix_pathinfo
boolean
Informa caminhos reais em PATH_INFO/ PATH_TRANSLATED em modo CGI. O comportamento anterior do PHP era configurarPATH_TRANSLATED em SCRIPT_FILENAME, sem interpretar PATH_INFO . Para mais informações sobre PATH_INFO, veja o modo CGI. Configurando para 1 fará o modo CGI corrigir os caminhos para conformar com a especificação. Configurar com zero faz o PHP se comportar como antes. O padrão é ligado. Você deve consertar seus scripts de forma a usar SCRIPT_FILENAME ao inves de PATH_TRANSLATED.
cgi.force_redirect
boolean
cgi.force_redirect é necessário para prover segurança ao rodar PHP em modo CGI na maioria dos servidores web. Por padrão essa configuração está ligada. Você pode desligá-la sob seu total risco .
Nota:
No Windows: Quando utilizando IIS essa opção deve ser desligada. O mesmo valendo para servidores OmniHTTPD e Xitami.
cgi.nph
boolean
Se cgi.nph estiver ativo então sempre será emitido um Status: 200 em cada requisição.
cgi.redirect_status_env
string
Se cgi.force_redirect estiver ativo e rodando sob servidores Apache ou Netscape (iPlanet), você talvez tenha de configurar uma variável de ambiente que o PHP verificará antes de continuar a execução.
Nota:
Configurar essa variável pode causar problemas de segurança, tenha certeza do que está fazendo antes de alterar.
cgi.rfc2616_headers
int
Instrui o PHP a qual tipo de headers enviar nas respostas HTTP. Se 0 o PHP envia um header » RFC 3875 "Status:" que é suportado pelo Apache e outros servidores web. Quando essa opção está configurada para 1 o PHP enviará um header no padrão » RFC 2616
Se essa opção estiver ativada e estiver rodando o PHP em um ambiente CGI (por exemplo, PHP-FPM) você não deve utilizar headers no padrão RFC 2616, utilizando ao invés o seu equivalente RFC 3875: em vez de header("HTTP/1.0 404 Not found"); você deve usar header("Status: 404 Not Found");
Deixe em 0 a não ser que saiba exatamente o que está fazendo.
fastcgi.impersonate
string
FastCGI sob o IIS (em WINNT) permite falsificar os tokens de segurança do cliente. Isso permite ao IIS de definir o contexto de segurança no qual a requisição executa. O mod_fastcgi sob o Apache não suporta essa funcionalidade (17/03/2002) Configure para 1 sob o ISS. Padrão é zero.
fastcgi.logging
boolean
Ativa o log SAPI logging quando utilizando o FastCGI. O padrão é ativado.
Nome | Padrão | Modificável | Changelog |
---|---|---|---|
file_uploads | "1" | PHP_INI_SYSTEM | PHP_INI_ALL in PHP <= 4.2.3. Disponível desde PHP 4.0.3. |
upload_tmp_dir | NULL | PHP_INI_SYSTEM | |
max_input_nesting_level | 64 | PHP_INI_PERDIR | Disponível desde PHP 5.3.9. |
max_input_vars | 1000 | PHP_INI_PERDIR | Disponível desde PHP 5.3.9. |
upload_max_filesize | "2M" | PHP_INI_PERDIR | PHP_INI_ALL in PHP <= 4.2.3. |
max_file_uploads | 20 | PHP_INI_SYSTEM | Disponível desde PHP 5.2.12. |
Uma rápida explicação das diretivas de configuração.
file_uploads
boolean
Se permite ou não upload de arquivos. 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 armazenas arquivos durante o upload. Precisa ter permissão de escrita para o usuários qual o PHP estiver rodando. Se não especificado o PHP usará o padrão de sistema.
Se o diretório especificado não tiver acesso de escrita, o PHP tenta o diretório temporário do sistema. Se open_basedir estiver ativo então o diretório temporário do sistema deve estar listado para que o upload aconteça.
upload_max_filesize
integer
O tamanho máximo de um arquivo enviado.
Quando um integer é utilizado, o valor é medido em bytes. A resumida notação, como descrito neste FAQ, pode também ser usada.max_file_uploads
integer
O número máximo de arquivos simultâneos durante um upload. A partir do PHP 5.3.4 os campos em branco de arquivos não são contados para efeito desse limite.
Nome | Padrão | Modificável | Changelog |
---|---|---|---|
sql.safe_mode | "0" | PHP_INI_SYSTEM |
Uma rápida explicação das diretivas de configuração.
sql.safe_mode
boolean
Se ativo as conexões de bancos de dados que especifiquem valores padrão usarão esses valores no lugar de qualquer argumento passado. Para detalhes desses valores padrão, veja a documentação específica dessa funções de conexão.
Nome | Padrão | Modificável | Changelog |
---|---|---|---|
windows.show_crt_warning | "0" | PHP_INI_ALL | Disponível desde PHP 5.4.0. |
Uma rápida explicação das diretivas de configuração.
windows.show_crt_warning
boolean
Essa diretiva exibe alertas CRT quando ativa. Esses alertas serão exibidos por padrão até o PHP 5.4.0.