Como alterar as configurações definidas

Rodando o PHP como módulo do Apache

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 do Apache (httpd.conf) e .htaccess . Você irá precisá de privilégios "AllowOverride Options" ou "AllowOverride All" nesses casos.

Com o PHP 4 e PHP 5, existem várias diretivas do Apache que lhe permitem mudar a configuração PHP diretamente a partir dos arquivos de configuração do Apache. Para uma lista das diretivas que podem ser alteradas, veja aquelas marcadas com PHP_INI_ALL, PHP_INI_PERDIR, ou PHP_INI_SYSTEM, relacionadas na documentação da função ini_set().

Nota: Com o PHP 3, existem diretivas Apache que correspondem a cada definição de configuração do php3.ini, exceto os nomes prefixados por "php3_".

php_value nome valor

Define o valor da variável especificada. Pode ser utilizada somente com diretivas do tipo PHP_INI_ALL e PHP_INI_PERDIR. Para limpar um valor configurado anteriormente, utilize none como parâmetro.

Nota: Não utilize php_value para configurar valores booleandos. Em vez disso, use php_flag (veja abaixo).

php_flag nome on|off

Isto é usado para definir uma opção de configuração Booleana. Somente pode ser utilizada em diretivas do tipo PHP_INI_ALL e PHP_INI_PERDIR.

php_admin_value nome valor

Define o valor da variável especificada. Isto não pode ser utilizado em arquivos .htaccess. Qualquer tipo de diretiva modificada com php_admin_value não pode ser sobrescrita por arquivos .htaccess ou diretivas virtualhost. Para limpar um valor configurado antetiormente, utilize none como parâmetro.

php_admin_flag nome on|off

Utilizado para definir uma opção de configuração Booleana. Isto NÃO pode ser utilizado em arquivos .htaccess. Qualquer diretiva configurada com php_admin_flag não pode ser sobrescrita por arquivos .htaccess ou diretivas virtualhost.

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

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

Cuidado

Constantes PHP não existem fora do PHP. Por exemplo, no httpd.conf não pode utilizar constantes PHP como E_ALL ou E_NOTICE para configurar a diretiva error_reporting, pois elas não tem nenhum sentido e serão avaliados como 0. Nesses casos, utilize seus valores de bit. Essas constantes só podem ser utilizadas dentro do php.ini

Modificando a configuração do PHP via registro

Quando rodando o PHP no Windows, os valores de configuração podem ser modificados diretório a diretório utilizando o registro do Windows. Os valores de configuração são armazenados na chave do registro HKLM\SOFTWARE\PHP\Per Directory Values, onde as sub chaves correspondem aos caminhos. Por exemplo, valores de configuração para o diretório c:\inetpub\wwwroot devem ser armazenados na chave HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot. As configurações para o diretório são ativadas para qualquer script rodando neste diretório ou qualquer subdiretório dele. Os valores sob a chave devem ter o nome das diretivas de configuração do PHP e um valor string. As constantes do PHP nos campos não são interpretados.

Outras interfaces para o PHP

Independentemente de como você roda o PHP, você pode mudar certos valores enquanto rodando seus scripts através de ini_set(). Veja a documentação da função ini_set() para mais detalhes.

Se você está interessado na lista completa das diretivas de configuração de seu sistema com os valores atuais, você pode executar a função phpinfo() e ver a relação na página resultante. Você também pode acessar os valores de cada diretiva individualmente através de ini_get() ou get_cfg_var().