Конфигурационни файлове за PHP и техния приоритет

Можете да ползвате локални .user.ini и php.ini конфигурационни файлове, за да променяте различни настройки за PHP интерпретатора. Тези файлове могат лесно да бъдат създавани чрез страницата Файлове в Контролния панел. Когато се създава нов поддомейн на страницата Поддомейни в Контролния панел, автоматично ще се създаде и php.ini файл в главната директория на поддомейна. Файлът php.ini за главния Ви домейн (поддомейна "www") се създава при активирането на нов акаунт. Имайте предвид, че на някои акаунти тези php.ini файлове може да не съществуват заради стари настройки.

Конфигурационни файлове за PHP

Основни разлики между .user.ini и php.ini файлове

  • В .user.ini файловете можете да ползвате само директиви, които са маркирани с PHP_INI_PERDIR и PHP_INI_USER режими за промяна (можете да намерите списък с тези режими за промяна тук), а php.ini файловете могат да се използват за променяне на всички директиви, които се поддържат на нашите сървъри.
  • .user.ini файловете работят рекурсивно (за всички поддиректории), за разлика от php.ini файловете, които не работят рекурсивно (техните настройки са валидни единствено за директорията, в която се намира php.ini файлът).
  • Стойностите за директиви, които не са дефинирани в .user.ini файлове, ще бъдат взети от php.ini файла с най-висок приоритет според таблицата с приоритети. Това не е така за php.ini файловете - при тях стойностите за всички директиви, които не са описани в php.ini файла, се задават по подразбиране.
  • За директории, в които се ползва FPM технологията за PHP, всички промени по .user.ini файловете ще имат ефект веднага, докато за php.ini файловете може да се наложи да презаредите главния FPM процес, за да се активират новите php.ini настройки. Има повече информация за презареждането на главния FPM процес в статията PHP настройки.

Глобален php.ini файл

Глобалният php.ini файл за акаунта Ви се намира в главната директория на акаунта (/home/USERNAME/php.ini). Настройките в този php.ini файл се прилагат глобално за всички PHP скриптове, освен ако не са променени от локален php.ini или .user.ini файл.

Съдържание на php.ini файловете

Всички автоматично генерирани php.ini файлове на нашите сървъри съдържат следните редове:

post_max_size = 60M
memory_limit = 3000M
upload_max_filesize = 60M
max_execution_time = 120
expose_php = Off
session.save_path = /tmp
error_reporting = E_ALL & ~E_STRICT & ~E_NOTICE & ~E_DEPRECATED
date.timezone = ${TZ}

Важно: Ако искате да ползвате локални php.ini файлове, Ви препоръчваме да добавите тези редове във всеки от тях от съображения за съвместимост. Разбира се, можете да промените стойностите на тези директиви, ако решите. Например ако не искате скриптовете Ви да ползват часовата зона на физическото местоположение на сървъра, можете да смените стойността по подразбиране ${TZ} на директивата date.timezone.

Възстановяване на началните настройки в глобален или главен php.ini файл за поддомейн

Можете да възстановите настройките в глобалния php.ini за акаунта или за главните php.ini файлове в поддомейните си чрез бутона Възстанови на страницата PHP настройки в Контролния панел.

Приоритет на конфигурационните файлове на PHP

PHP интерпретатор (CGI и FPM технологии)

Приоритетът на конфигурационните файлове за PHP е както следва (от най-висок към най-нисък):

Конфигурационен файл\Технология
 CGI
 PHP-FPM
.user.ini файл в директорията на скрипта
  
php.ini файл в директорията на скрипта  ×
главен php.ini файл за поддомейна
 × 
глобален php.ini за хостинг акаунта
  
сървърен php.ini файл
  
настройки на PHP по подразбиране  


Важно: Стойностите за директивите, които не са дефинирани в .user.ini файлове, ще бъдат взети от php.ini файла с най-висок приоритет от таблицата по-горе. За разлика от .user.ini файловете, стойностите за директивите, които не са дефинирани в php.ini файл, ще бъдат зададени от PHP инсталацията на сървъра.

PHP на командния ред

Конфигурационните файлове за PHP интерпретатора, изпълнен от командния ред (php.cli), имат следния приоритет: