Nastavování konfiguračních direktiv PHP

Školení, která pořádám

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.

Jakub Vrána, Výuka, 13.3.2009, diskuse: 4 (nové: 0)

Diskuse

Megaloman:

Jen dodám, že php_flag se používá pro nastavení boolean hodnot, zatímco php_value pro nastavení non-boolean hodnot.

Používejte diakritiku. Vstup se chápe jako čistý text, ale URL budou převedeny na odkazy a PHP kód uzavřený do <?php ?> bude zvýrazněn. Pokud máte dotaz, který nesouvisí s článkem, zkuste raději diskusi o PHP, zde se odpovědi pravděpodobně nedočkáte.

Jméno: URL: Reakce na: Megaloman

ikona Jakub Vrána OpenID:

Díky za doplnění – tato informace zcela zásadní pro pochopení článku chyběla. Doplnil jsem ji.

ikona 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>
avatar © 2005-2018 Jakub Vrána. Publikované texty můžete přetiskovat pouze se svolením autora. Ukázky kódu smíte používat s uvedením autora a URL tohoto webu bez dalších omezení Creative Commons. Můžeme si tykat. Skripty předpokládají nastavení: magic_quotes_gpc=Off, magic_quotes_runtime=Off, error_reporting=E_ALL & ~E_NOTICE a očekávají předchozí zavolání mysql_set_charset. Skripty by měly být funkční v PHP >= 4.3 a PHP >= 5.0.