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.
Nome | Padrão | Modificável | Changelog |
---|---|---|---|
short_open_tag | "1" | PHP_INI_PERDIR | |
asp_tags | "0" | PHP_INI_PERDIR | Removida no PHP 7.0.0. |
precision | "14" | PHP_INI_ALL | |
serialize_precision | "-1" | PHP_INI_ALL | Antes do PHP 5.3.5 o valor padrão era 100. Antes do PHP 7.1.0 o valor padrão era 17. |
y2k_compliance | "1" | PHP_INI_ALL | Removida no PHP 5.4.0. |
allow_call_time_pass_reference | "1" | PHP_INI_PERDIR | Removida no PHP 5.4.0. |
disable_functions | "" | PHP_INI_SYSTEM apenas | |
disable_classes | "" | php.ini apenas | |
exit_on_timeout | "" | PHP_INI_ALL | Disponível a partir do PHP 5.3.0. |
expose_php | "1" | php.ini apenas | |
hard_timeout | "2" | PHP_INI_SYSTEM | Disponível a partir do PHP 7.1.0. |
zend.exception_ignore_args | "0" | PHP_INI_ALL | Disponível a partir do PHP 7.4.0 |
zend.multibyte | "0" | PHP_INI_ALL | Disponível a partir do PHP 5.4.0. |
zend.script_encoding | NULL | PHP_INI_ALL | Disponível a partir do PHP 5.4.0. |
zend.detect-unicode | NULL | PHP_INI_ALL | Disponível a partir do PHP 5.4.0. |
zend.signal_check | "0" | PHP_INI_SYSTEM | Disponível a partir do PHP 5.4.0. |
zend.assertions | "1" | PHP_INI_ALL com restrições | Disponível a partir do PHP 7.0.0. |
zend.ze1_compatibility_mode | "0" | PHP_INI_ALL | Removida no PHP 5.3.0. |
detect_unicode | "1" | PHP_INI_ALL | Disponível a partir do PHP 5.1.0. Renomeada para zend.detect-unicode a partir do PHP 5.4.0. |
Uma rápida 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 também afetava a forma abreviada
<?=
antes do PHP 5.4.0, que é o mesmo que<? echo
. O uso desta forma abreviada exigia queshort_open_tag
estivesse habilitada. A partir do PHP 5.4.0<?=
está sempre disponível.
Versão | Descrição |
---|---|
7.0.0 | Removida do PHP. |
precision
int
-1
significa que um algoritmo avançado para arredondar
estes números será utilizado.
serialize_precision
int
-1
significa que um algoritmo avançado para arredondar
estes números será utilizado.
y2k_compliance
bool
allow_call_time_pass_reference
bool
Define se irá alertar ou não quando argumentos são passados por referência durante chamadas de funções. O método recomendado para especificar quais argumentos deveriam ser passados por referência é na declaração da função. É recomendado tentar desabilitar esta opção e certificar-se de que seus scripts funcionam corretamente com a opção desabilitada a fim de garantir que eles irão funcionar em futuras versões da linguagem (será emitido um alerta sempre que este recurso for usado).
Passar argumentos por referência em chamadas de função foi reprovado por razões de limpeza de código. Uma função pode modificar seus argumentos de uma forma não documentada se não foi declarado que o argumento deve ser 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 Explicação sobre Referências.
Versão | Descrição |
---|---|
5.4.0 | Removida do PHP. |
5.3.0 |
Emite um erro do nível E_DEPRECATED .
|
5.0.0 |
Obsoleta, gera um erro do nível E_COMPILE_WARNING .
|
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). Antes do PHP 5.5.0 os GUIDs do logotipo do PHP também eram expostos, portanto adicioná-los à URL do seu script PHP iria exibir o logotipo apopriado (por exemplo, » https://www.php.net/?=PHPE9568F34-D428-11d2-A769-00AA001ACF42). Isto também afetava a saída da função phpinfo(), como quando desabilitada, o logotipo PHP e as informações de créditos não seriam mostrados.
Nota:
A partir do PHP 5.5.0, estes GUIDs e a função php_logo_guid() foram removidos do PHP e os GUIDs foram substituídos por URIs de dados. Portanto, acessar o logotipo PHP adicionando o GUID ao URL não funciona mais. Da mesma forma, desativar
expose_php
não afetará a exibição do logotipo PHP na função phpinfo().
Veja também php_logo_guid() e phpcredits().
disable_functions
string
Esta diretiva permite desabilitar certas funções. Ela recebe uma lista de nomes de funções separadas por vírgula.
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. Por exemplo, ela não pode ser configurada no httpd.conf.
disable_classes
string
zend.assertions
int
1
, codigo 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.ze1_compatibility_mode
bool
Ativa o 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 a comparação de objetos.
Neste modo, objetos são passados por valor em vez de referência por
padrão.
Veja também seção entitulada Migrando do PHP 4 para o PHP 5.
Este recurso se tornou OBSOLETO e foi REMOVIDO a partir do PHP 5.3.0.
hard_timeout
int
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.
Nome | Padrão | Modificável | Changelog |
---|---|---|---|
memory_limit | "128M" | PHP_INI_ALL | "8M" antes do PHP 5.2.0, "16M" no PHP 5.2.0 |
Uma rápida explicação das diretivas de configuração.
memory_limit
int
Define a quantidade máxima de memória em bytes que um script
está permitido a alocar. Isto ajuda a previnir 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
.
Antes do PHP 5.2.1, para utilizar esta diretiva ela precisava ser habilitada em tempo de compilação usando --enable-memory-limit na linha de configuração. Esta flag de tempo de compilação também era 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 | "4M" | PHP_INI_SYSTEM | Disponível a partir do PHP 5.1.0. Antes do PHP 7.0.16 e 7.1.2, o padrão era "16K" |
realpath_cache_ttl | "120" | PHP_INI_SYSTEM | Disponível a partir do PHP 5.1.0. |
Nota:
O uso da diretiva open_basedir irá desativar o cache do caminho real.
Uma rápida 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) pela qual armazenar em cache as informações do realpath para um dado arquivo ou diretório. Para sistemas com arquivos que raramente mudam, considere aumentar o valor.
Nome | Padrão | Modificável | Changelog |
---|---|---|---|
arg_separator.output | "&" | PHP_INI_ALL | |
arg_separator.input | "&" | PHP_INI_PERDIR | |
variables_order | "EGPCS" | PHP_INI_PERDIR | PHP_INI_ALL no PHP <= 5.0.5. |
request_order | "" | PHP_INI_PERDIR | Disponível a partir do PHP 5.3.0. |
auto_globals_jit | "1" | PHP_INI_PERDIR | Disponível a partir do PHP 5.0.0. |
register_globals | "0" | PHP_INI_PERDIR | Removida no PHP 5.4.0. |
register_argc_argv | "1" | PHP_INI_PERDIR | |
register_long_arrays | "1" | PHP_INI_PERDIR | Obsoleta no PHP 5.3.0. Removida no PHP 5.4.0. |
enable_post_data_reading | "1" | PHP_INI_PERDIR | Disponível a partir do PHP 5.4.0. |
post_max_size | "8M" | PHP_INI_PERDIR | |
auto_prepend_file | NULL | PHP_INI_PERDIR | |
auto_append_file | NULL | PHP_INI_PERDIR | |
default_mimetype | "text/html" | PHP_INI_ALL | |
default_charset | "UTF-8" | PHP_INI_ALL | Por padrão, "UTF-8" a partir do PHP >= 5.6.0; vazio no PHP < 5.6.0. |
always_populate_raw_post_data | "0" | PHP_INI_PERDIR | Removida no PHP 7.0.0. |
Uma rápida 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.
Se a diretiva obsoleta
register_globals
estiver ativada, então variables_order também
configura a ordem em que as variáveis ENV
,
GET
, POST
,
COOKIE
e SERVER
são preenchidas no escopo global. Então, por exemplo, se variables_order
estiver configurada como "EGPCS"
, register_globals estiver ativada,
e ambas $_GET['action'] e
$_POST['action'] estiverem definidas, então
$action conterá o valor de
$_POST['action'] pois P
vem
depois de G
no valor da diretiva do nosso exemplo.
Em ambas as SAPIs CGI e FastCGI,
$_SERVER é
também preenchido por valores do ambiente; S
é sempre equivalente a ES
independentemente da
localização de E
em outros lugares nesta diretiva.
Nota:
O conteúdo e ordem de $_REQUEST é também afetado 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.
As diretivas do PHP register_globals, register_long_arrays e register_argc_argv devem ser desabilitadas para que esta diretiva tenha algum efeito. A partir do PHP 5.1.3 não é necessário ter register_argc_argv desabilitada.
O uso das variáveis SERVER, REQUEST e ENV é verificado durante o tempo de compilação então usá-las em, por exemplo, variáveis variáveis não causará sua inicialização.
register_globals
bool
Registra ou não as 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á desabilitada.
Veja no capítulo sobre segurança a seção Utilizando register_globals para informações relacionadas.
Note que register_globals
não pode ser definida em tempo de execução (ini_set()). Entretanto, 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
bool
register_long_arrays
bool
Esta funcionalidade tornou-se OBSOLETA desde o PHP 5.3.0 e foi REMOVIDA desde o PHP 5.4.0.
enable_post_data_reading
bool
post_max_size
int
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 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 você utilizar qualquer um destes. Cuidado para não exceder o limite de inteiros sinalizados de 32 bit (ao usar versões de 32 bit) uma vez que isso fará o script falhar.
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 estiver 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
A partir do PHP 5.6, "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
Disponível a partir do PHP 5.6.0. Esta configuração é utilizada por módulos multibyte como mbstring e iconv. O padrão é vazio.
output_encoding
string
Disponível a partir do PHP 5.6.0. Esta configuração é utilizada por módulos multibyte como mbstring e iconv. O padrão é vazio.
internal_encoding
string
Disponível a partir do PHP 5.6.0. Esta configuração é utilizada por módulos multibyte como mbstring e iconv. O 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 configurada para true
, o PHP sempre preencherá
$HTTP_RAW_POST_DATA com os dados POST brutos.
Caso contrário, a variável é preenchida somente quando o MIME type dos
dados não é reconhecido.
O método recomendado de acessar dados POST brutos é
php://input, e
$HTTP_RAW_POST_DATA está obsoleta a partir do PHP 5.6.0.
Configurar always_populate_raw_post_data
para -1
irá optar pelo novo comportamento que será
implementado numa futura versão do PHP, no qual
$HTTP_RAW_POST_DATA nunca é definida.
Independente da configuração, $HTTP_RAW_POST_DATA não
está disponível com 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 | |
user_ini.cache_ttl | "300" | PHP_INI_SYSTEM | Disponível a partir do PHP 5.3.0. |
user_ini.filename | ".user.ini" | PHP_INI_SYSTEM | Disponível a partir do PHP 5.3.0. |
extension_dir | "/path/to/php" | PHP_INI_SYSTEM | |
extension | NULL | Apenas no php.ini | |
zend_extension | NULL | Apenas no php.ini | |
zend_extension_debug | NULL | Apenas no php.ini | Disponível antes do PHP 5.3.0. |
zend_extension_debug_ts | NULL | Apenas no php.ini | Disponível antes do PHP 5.3.0. |
zend_extension_ts | NULL | Apenas no php.ini | Disponível antes do PHP 5.3.0. |
cgi.check_shebang_line | "1" | PHP_INI_SYSTEM | Disponível a partir do PHP 5.2.0. |
cgi.discard_path | "0" | PHP_INI_SYSTEM | Disponível a partir do PHP 5.3.0. |
cgi.fix_pathinfo | "1" | PHP_INI_SYSTEM | PHP_INI_ALL antes do PHP 5.2.1. |
cgi.force_redirect | "1" | PHP_INI_SYSTEM | PHP_INI_ALL antes ao PHP 5.2.1. |
cgi.nph | "0" | PHP_INI_SYSTEM | Disponível a partir do PHP 5.3.0. |
cgi.redirect_status_env | NULL | PHP_INI_SYSTEM | PHP_INI_ALL antes do PHP 5.2.1. |
cgi.rfc2616_headers | "0" | PHP_INI_ALL | |
fastcgi.impersonate | "0" | PHP_INI_SYSTEM | PHP_INI_ALL antes do PHP 5.2.1. |
fastcgi.logging | "1" | PHP_INI_SYSTEM | PHP_INI_ALL antes do PHP 5.2.1. |
Uma rápida 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
.
Você pode 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
'./arquivo'
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. Esta diretiva NÃO é afetada pelo Modo Seguro estar habilitado ou desabilitado.
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 extendida 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 a partir do PHP 5.2.16 e 5.3.4. Versões anteriores o usavam
como um prefixo. Isto significa que "open_basedir
= /dir/incl
" também permitia acessar "/dir/include
" e
"/dir/incls
" caso existissem. Quando desejar restringir o acesso
apenas ao diretório especificado termine o caminho com uma barra. Por exemplo:
open_basedir = /dir/incl/
O padrão é permitir que todos os arquivos sejam abertos.
Nota:
A partir do PHP 5.3.0 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 constantePATH_SEPARATOR
como um separador independentemente do sistema operacional.
Nota:
O uso da diretiva open_basedir definirá realpath_cache_size como
0
e assim desabilitará o cache do caminho real.
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, você deve configurar doc_root se estiver rodando o PHP 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. 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.
zend_extension_debug
string
Variante de zend_extension para extensões compiladas com informação de debug antes do PHP 5.3.0.
zend_extension_debug_ts
string
Variante de zend_extension para extensões compiladas com informação de debug e thread safety antes do PHP 5.3.0.
zend_extension_ts
string
Variante de zend_extension para extensões compiladas com thread safety antes do PHP 5.3.0.
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. Você deve corrigir seus scripts 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 rodar o PHP em modo CGI na maioria dos servidores web. Se deixada indefinida, o PHP irá habilitá-la por padrão. Você pode desabilitá-la por sua conta e risco.
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 você não está rodando sob servidores web Apache ou Netscape (iPlanet), você pode precisar 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, tenha certeza do que está fazendo antes de alterar.
cgi.rfc2616_headers
int
Indica ao PHP qual o tipo de headers usar ao enviar o código de resposta HTTP. Se configurada para 0, o PHP envia um header "Status:" da » RFC 3875 que é suportado pelo Apache e outros servidores web. Quando esta opção é configurada para 1, 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 configurada para 0 a não ser que saiba exatamente o que está fazendo.
fastcgi.impersonate
string
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) Configure para 1 ao rodar no ISS. O padrão é zero.
fastcgi.logging
bool
Ativa o logging do SAPI ao utilizar o FastCGI. O padrão é habilitar o logging.
Nome | Padrão | Modificável | Changelog |
---|---|---|---|
file_uploads | "1" | PHP_INI_SYSTEM | |
upload_tmp_dir | NULL | PHP_INI_SYSTEM | |
max_input_nesting_level | 64 | PHP_INI_PERDIR | Disponível a partir do PHP 5.3.9. |
max_input_vars | 1000 | PHP_INI_PERDIR | Disponível a partir do PHP 5.3.9. |
upload_max_filesize | "2M" | PHP_INI_PERDIR | |
max_file_uploads | 20 | PHP_INI_SYSTEM | Disponível a partir do PHP 5.2.12. |
Uma rápida 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.
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
int
O número máximo de arquivos permitidos simultaneamente durante um upload. A partir do PHP 5.3.4 os campos de upload deixados em branco no envio não contam para este limite.
Nome | Padrão | Modificável | Changelog |
---|---|---|---|
sql.safe_mode | "0" | PHP_INI_SYSTEM | Removido no PHP 7.2.0. |
Uma rápida 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.
Este recurso foi REMOVIDO a partir do PHP 7.2.0.
Nome | Padrão | Modificável | Changelog |
---|---|---|---|
windows.show_crt_warning | "0" | PHP_INI_ALL | Disponível a partir do PHP 5.4.0. |
Uma rápida explicação das diretivas de configuração.
windows.show_crt_warning
bool
Esta diretiva exibe os alertas do CRT do Windows quando habilitada. Estes alertas eram exibidos por padrão até o PHP 5.4.0.