Nastavování konfiguračních direktiv PHP
V PHP je velká spousta konfiguračních direktiv. Některé lze nastavit funkcí ini_set (pod Windows také v registrech), některé v adresáři (u Apache souborem .htaccess
), některé v konfiguraci webového serveru (u Apache souborem httpd.conf
) a některé jen v php.ini
. Význam nastavitelnosti direktiv je vysvětlen v dokumentaci.
V konfiguračních souborech Apache lze direktivy PHP měnit příkazy php_flag (slouží pro nastavování pravdivostních hodnot), php_value (slouží pro nastavování libovolných hodnot) a jejich admin variantami (které nejdou přepsat). Zajímalo mě, čím přesně se u pravdivostních hodnot liší php_value a php_flag, tak jsem se podíval do zdrojového kódu a zjistil jsem, že php_flag nastaví direktivu na jedničku při hodnotě On
nebo 1
. Jiná hodnota nastaví direktivu na nulu. Směle tedy můžete používat následující konfiguraci:
php_flag register_globals jizNikdyVice php_flag magic_quotes_gpc obejduSeBezNich php_flag magic_quotes_runtime aniNahodou
Příkaz php_value naproti tomu u většiny pravdivostních konfiguračních direktiv vyvolá událost OnUpdateBool, která nastaví direktivu na jedničku při hodnotách on
, true
nebo yes
(ve všech případech bez rozlišování velikosti písmen).
V PHP 5.3 bude možné konfiguraci v závislosti na adresáři nebo doméně nastavovat i v php.ini
.
Diskuse
Megaloman:
Jen dodám, že php_flag se používá pro nastavení boolean hodnot, zatímco php_value pro nastavení non-boolean hodnot.
Jakub Vrána
:
Díky za doplnění – tato informace zcela zásadní pro pochopení článku chyběla. Doplnil jsem ji.


v6ak:
Co podle vás udělá toto?:
php_value error_reporting E_ALL|E_STRICT
Případně jen:
php_value error_reporting E_ALL
BACHA! Neudělá to to, co jsem očekával!

smrdidlo:
<IfModule mod_php5.c>php_flag magic_quotes_gpc Off
php_flag register_globals On
php_value error_reporting 7
</IfModule>
Diskuse je zrušena z důvodu spamu.

