Zmena nastavení PHP pomocou .user.ini

Od verzie PHP 5.3.0, PHP podporuje konfiguračné INI súbory na adresárovej úrovni. Názov súboru musí byť .user.ini a syntax súboru je rovnaké ako v php.ini súbore.

PHP pri spúšťaní skriptu testuje prítomnosť .user.ini súboru v adresári, kde je umiestnený spúšťaný skript až po DOCUMENT ROOT adresár uvedený v premennej: $_SERVER['DOCUMENT_ROOT']

Aby sa zbytočne pri každej požiadavke na server nenačítal .user.ini súbor, načítava sa každých 5 minút. Preto sa môže stať, že ak urobíte zmeny v súbore .user.ini, môžu sa prejaviť maximálne o 5 minút.

Povolené zmeny v parametroch PHP

Dovolené sú iba nastavenia PHP, ktoré sú označené módmi PHP_INI_ALLPHP_INI_PERDIR a PHP_INI_USER.

Parametre, ktoré nemôžete zmeniť

V .user.ini nemôžete zmeniť nasledovné hodnoty, ktoré sú nastavované našim administračným systémom automaticky:

  • memory_limit (veľkosť je závislá od zakúpeného hostingového balíčka)
  • disable_functions - kvôli lepšej ochrane pred hacknutím webov postavených na opensource, sú štandardne zakázané tieto PHP funkcie: system, exec, passthru, shell_exec, proc_open, popen, show_source. Tieto funkci sú v drvivej väčšine prípadov nevyužiteľné avšak môžu byť povolené na vyžiadanie, preto nás v prípade potreby kontaktujte.

Ukážka .user.ini súboru

V nasledujúcom príklade si zmeníme nastavenia PHP nasledovne. Budeme potrebovať napríklad predĺžiť maximálny čas vykonávania skriptu na 60 sekúnd, chceme aby nám prehliadač zobrazoval všetky chyby na obrazovke a povolíme upload 200M súborov:

max_execution_time = 60
display_errors = On
upload_max_filesize = 200M

Ak sa zmeny v PHP aplikujú, môžeme si ich skontrolovať pomocou phpinfo() funkcie. V prvom stĺpci sa nachádza názov parametra PHP, v druhom stĺpci je zmenený parameter a v treťom stĺpci sa nachádza defaultná, serverom nastavená hodnota parametra: