Como modificar valores de configuração

Executando PHP como um módulo do Apache

Quando usar o PHP como módulo do Apache, você pode também mudar os valores de configuração usando diretivas nos arquivos de configuração do Apache (Ex.: httpd.conf e .htaccess). Você precisará de privilégios do tipo "AllowOverride Options" ou "AllowOverride All" para fazê-lo.

No PHP 4 e 5, existem várias diretivas do Apache que lhe permitem mudar a configuração do PHP a partir dos arquivos de configuração do Apache. Para ver uma lista de quais diretivas são PHP_INI_ALL, PHP_INI_PERDIR, ou PHP_INI_SYSTEM, olhe na tabela que está na documentação da função ini_set().

Nota: No PHP 3, existem diretivas do Apache que correspondem com cada parâmetro de configuração encontrado no arquivo php3.ini, exceto as que tem o nome com prefixo "php3_".

php_value name value

Edita o valor da diretiva especificada. Pode ser usada apenas com diretivas do tipo PHP_INI_ALL e PHP_INI_PERDIR. Para limpar um valor atribuído anteriormente, use none como valor.

Nota: Não use php_value para editar valores booleanos. Ao invés, use php_flag (veja abaixo).

php_flag name on|off

Usado para editar o valor de uma diretiva de configuração booleana. Pode ser usada apenas com diretivas do tipo PHP_INI_ALL e PHP_INI_PERDIR.

php_admin_value name value

Edita o valor da diretiva especificada. Não pode ser usada em arquivos .htaccess. Qualquer tipo de diretiva edita com php_admin_value não pode ser sobrescrita pelo arquivo .htaccess ou diretivas de virtualhost. Para limpar um valor atribuído anteriormente, use none como valor.

php_admin_flag name on|off

Usado para editar o valor de uma diretiva de configuração booleana. Não pode ser usada em arquivos .htaccess. Qualquer tipo de diretiva edita com php_admin_flag não pode ser sobrescrita pelo arquivo .htaccess ou diretivas de virtualhost.

Exemplo 9-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 do PHP não existem fora do PHP. Por exemplo, no arquivo httpd.conf você não pode usar constantes do PHP tais como E_ALL ou E_NOTICE para editar a diretiva error_reporting uma vez que elas não teram significado e serão avaliadas como 0. Ao invés disso, use os valoes da máscara de bits associada. Essas constantes podem ser usadas no arquivo php.ini.

Mudando a configuração do PHP através do registro do Windows

Quando executar o PHP no Windows, os valores de configuração podem ser modificados em cada diretório usando o registro do Windows. Os valores de configuração são guardados na chave de registro HKLM\SOFTWARE\PHP\Per Directory Values, nas sub-chaves correspondentes aos nomes dos caminhos. Por exemplo, os valores de configuração para o diretório c:\inetpub\wwwroot seriam guardados na chave HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot. Os parâmetros para o diretório valeriam para qualquer script rodando nesse diretório ou qualquer subdiretório do mesmo. Os valores sob a chave devem ter o nome da diretiva de configuração do PHP e um valor string. Constantes do PHP nos valores não são interpretadas.

Outras interfaces para o PHP

Independente de como você executar o PHP, você pode mudar certos valores em tempo de execução nos seus scripts através da função ini_set(). Veja a documentação de ini_set() para mais informações.

Se você estiver interessado em uma lista completa de parâmetros de configuração no seu sistema com os seus valores atuais, você pode executar a função phpinfo(), e revisar a página resultante. Você também pode acessar os valores de diretivas de configuração individuais em tempo de execução usando ini_get() ou get_cfg_var().