Aqui está uma breve 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
'./file'
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.
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, não um prefixo.
O padrão é permitir que todos os arquivos sejam abertos.
Nota:
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 constante PATH_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.
Cuidado
open_basedir
é rede de segurança extra, mas não é uma proteção
total, e portanto não deve-se depender para garantir a segurança.
-
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. É recomendado especificar um caminho absoluto. 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.
-
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.
-
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.