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.

POZOR: názov súboru .user.ini musí mať na začiatku názvu súboru bodku, nie je to preklep, naozaj to tak musí byť, inak ho PHP odignoruje.

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: