Алгоритм работы модуля "Настройка PHP" при изменении параметров

Материал из ISPWiki
Перейти к: навигация, поиск

Введение

Администратор панели управления, а также пользователи панели управления имеют возможность изменять настройки PHP. Логика применения данных настроек отличается в зависимости от уровня доступа и режима работы PHP.

В общем случае логика применения параметров PHP с уровня администратора панели управления подразумевает применение измененного значения ко всем пользователям, если только пользователь сам не изменял значение этого же параметра. Если пользователь изменил для себя значение параметра, изменение параметра с уровня администратора панели управления не повлияет на пользовательские изменения.

Применение настроек для режима CGI (а также FastCGI (Apache))

Режим CGI кроме альтернативных версий CloudLinux

В формировании настроек PHP в режиме CGI для конкретного пользователя участвуют следующие файлы:

  1. Глобальный (root) php.ini - основной конфигурационный файл PHP для сервера;
  2. .php.ini - файл хранения измененных настроек PHP;
  3. php.ini - конфигурационный файл PHP для пользователя;

Пользовательские файлы (2 и 3) располагаются в директориях ~/php-bin для нативной версии PHP, ~/php-bin/[Версия PHP] для альтернативных версий PHP.

  1. Пользователь панели управления применяет настройки PHP:
    1. Значение записывается в .php.ini (2) файл
    2. Содержимое пользовательского php.ini (3) файла полностью заменяется на содержимое глобального (1) php.ini файла - пользовательский php.ini теперь представляет собой полную копию глобального php.ini
    3. Читаются настройки, сохранённые в .php.ini (2) файле и переносятся в пользовательский php.ini (3) файл - пользовательский php.ini теперь представляет собой полную копию глобального php.ini с примененными к нему пользовательскими изменениями параметров
  2. Администратор панели управления применяет настройки PHP:
    1. Значение записывается в глобальный php.ini (1) файл
    2. Для каждого пользователя панели управления выполняется следующая последовательность действий:
      1. Содержимое пользовательского php.ini (3) файла полностью заменяется на содержимое глобального (1) php.ini файла - пользовательский php.ini теперь представляет собой полную копию глобального php.ini
      2. Читаются настройки, сохранённые в .php.ini (2) файле и переносятся в пользовательский php.ini (3) файл - пользовательский php.ini теперь представляет собой полную копию глобального php.ini с примененными к нему пользовательскими изменениями параметров
 Внимание: при изменении из shell (или модуля "Менеджер файлов") файлов:
 1. Пользовательский php.ini (3) - будет перезаписан при следующем изменении параметров PHP из ISPmanager. Т.е. пользовательские изменения будут утеряны.
 2. .php.ini (2) - измененные параметры вступят в силу только после следующего редактирования параметров PHP из ISPmanager.

Если вам необходимо произвести настройки PHP вручную, нужно продублировать необходимые изменения в оба файла php.ini и .php.ini.

Режим CGI и LSAPI для альтернативных версий CloudLinux

Особенности работы PHP в ОС CloudLinux описаны в статье Версии PHP в CloudLinux

Применение настроек для режима FastCGI (Nginx + PHP-FPM)

  1. Пользовательские изменения настроек PHP записываются в конфигурационный файл пула PHP-FPM (конкретной версии PHP) данного пользователя
  2. При изменении настроек администратором панели управления значения записываются в глобальный конфигурационный файл PHP-FPM соответствующей версии PHP

Применение настроек для режима PHP как модуль Apache

  1. Пользователь не имеет доступа к редактированию настроек данного режима PHP из панели управления, но в подавляющем большинстве ситуаций необходимые настройки пользователь обычно выполняет в файле .htaccess
  2. При изменении настроек администратором панели управления значения записываются в глобальный конфигурационный файл модуля Apache соответствующей версии PHP

Особенности различных версий и ОС

  1. "Глобальный файл настроек PHP" в альтернативных версиях PHP, предоставляемых ISPmanger, а также для нативной версии PHP ОС семейства CentOS представляет собой один файл, хранящий общие настройки для всех режимов работы PHP (/etc/php.ini для нативной версии в CentOS и /opt/[Версия PHP]/etc/php.ini для альтернативных версий ISPmanager)
  2. Для нативной версии PHP в ОС семейства Debian и Ubuntu отдельный "глобальный файл настроек PHP" имеется для каждого отдельного режима работы PHP (например, в Debian 8 - /etc/php5/apache2/php.ini, /etc/php5/cgi/php.ini, /etc/php5/fpm/php.ini).