PHP Conference Nagoya 2025

Como mudar as configurações

Executando PHP como módulo do Apache

Quando usar o PHP como módulo do Apache, você pode mudar as configurações usando diretivas nos arquivos de configuração do Apache (ex.: httpd.conf e .htaccess). Você precisará de privilégios "AllowOverride Options" ou "AllowOverride All" para fazer isso.

Há várias diretivas do Apache que permitem que você mude a configuração do PHP de dentro dos arquivos de configuração do Apache. Para uma lista de quais diretivas são INI_ALL, INI_PERDIR, or INI_SYSTEM, olhe no apêndice Lista de diretivas do arquivo php.ini.

php_value name value

Define o valor da diretiva especificada. Pode ser usado apenas com diretivas do tipo INI_ALL e INI_PERDIR. Para limpar um valor definido anteriormente, use o valor none.

Nota: Não use php_value para definir valores booleanos. A diretiva php_flag deve ser usada (veja abaixo).

php_flag name on|off

Usado para definir uma diretiva de configuração booleana. Pode ser usada apenas com diretivas dos tipos INI_ALL e INI_PERDIR.

php_admin_value name value

Define o valor da diretiva especificada. Essa diretiva não pode ser usada em arquivos .htaccess. Qualquer tipo de diretiva definido com php_admin_value não pode ser sobrescrito pelo .htaccess ou pela função ini_set(). Para limpar um valor definido anteriormente, use o valor none.

php_admin_flag name on|off

Usado para definir uma diretiva de configuração booleana. Essa diretiva não pode ser usada em arquivos .htaccess. Qualquer tipo de diretiva definido com php_admin_flag não pode ser sobrescrito pelo .htaccess ou pela função ini_set().

Exemplo #1 Exemplo de configuração do Apache

<IfModule mod_php5.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag engine on
</IfModule>
<IfModule mod_php4.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag engine on
</IfModule>

Cuidado

Constantes PHP não existem fora do PHP. Por exemplo, no arquivo httpd.conf você não pode usar constantes do PHP como E_ALL ou E_NOTICE para definir a diretiva error_reporting, já que elas não terão significado algum e serão avaliadas como 0. Ao invés disso, use os valores de máscara de bits associados. Essas constantes podem ser usados no php.ini

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

Quando executar o PHP no Windows, os valores de configuração podem ser modificados para cada diretório, usando o registro do Windows. Os valores de configuração são armazenados na chave de registro HKLM\SOFTWARE\PHP\Per Directory Values, nas sub-chaves correspondentes aos caminhos dos diretórios. Por exemplo, valores para o diretório c:\inetpub\wwwroot estariam armazenados na chave HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot. As configurações para o diretório estarão ativas para qualquer script rodando neste diretório ou qualquer subdiretório dele. Os valores na chave devem ter o nome da diretiva de configuração do PHP e um valor string. Constantes PHP nos valores não são interpretados. Apenas valores de configuração modificáveis no INI_USER podem ser definidos desta forma, e valores do INI_PERDIR não podem, pois esses valores são recarregados em cada request.

Outras interfaces para PHP

Independente de como você execute PHP, você pode mudar certos valores durante a execução de seus scripts através da função ini_set(). Veja a documentação na página ini_set() para mais informações.

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

adicione uma nota

Notas Enviadas por Usuários (em inglês) 2 notes

up
8
contrees.du.reve at gmail dot com
16 years ago
Being able to put php directives in httpd.conf and have them work on a per-directory or per-vitual host basis is just great. Now there's another aspect which might be worth being aware of:

A php.ini directive put into your apache conf file applies to php when it runs as an apache module (i.e. in a web page), but NOT when it runs as CLI (command-line interface).

Such feature that might be unwanted by an unhappy few, but I guess most will find it useful. As far as I'm concerned, I'm really happy that I can use open_basedir in my httpd.conf file, and it restricts the access of web users and sub-admins of my domain, but it does NOT restrict my own command-line php scripts...
up
0
ohcc at 163 dot com
7 days ago
If a directive has beeen set many times in different places, the precedence is as follows in descending order
php-fpm php_*[foo] = bar
command line argument -d foo=bar
environment variable foo=bar and referenced as ${foo} in php.ini
php.ini foo=bar
To Top