PHP имеет множество настроек, которые может изменить Администратор или Пользователь ISPmanager. Набор значений зависит от режима работы. В режимах работы "CGI", "FastCGI (Apache)"  используются пользовательские значения,  в режиме "Модуль Apache" — значения, указанные администратором. Если пользователь не изменял значение параметра, то вместо пользовательского значения переменной будет использоваться значение, указанное администратором.

Режимы CGI, FastCGI (Apache), FastCGI (Nginx + PHP-FPM), LSAPI используют три уровня настроек: настройки администратора, настройки пользователя и настройки сайта. Наивысший приоритет имеют настройки сайта. Если значение параметра для сайта не было изменено, ISPmanager использует настройки пользователя. Если пользователь не изменял значение параметра, то ISPmanager будет использовать значение, указанное администратором.

Значения переменных выделены цветами:

  • Красный — параметры, значения которых не определены в конфигурационном файле PHP и получены непосредственно от самого интерпретатора PHP.
  • Зелёный — параметры, значения которых определены в глобальном конфигурационном файле PHP для администратора и в пользовательском для пользователя.
  • Синий — параметры, значения которых не определены.
  • Жёлтый — параметры, значения которых доступны пользователю только для чтения.

Изменение значений переменных


Чтобы изменить значение переменной:

  1. Под администратором перейдите в Настройки Настройки PHP  Расширенные настройки. Под пользователем перейдите в WWW PHP  Расширенные настройки

    Обратите внимание!

    Администратор определяет значения каких переменных отображаются пользователям по умолчанию. Для настройки перейдите в Настройки Настройки PHP → Расширенные настройки, выберите переменную и нажмите Показать

  2. Выделите переменную и нажмите Изменить.
  3. Укажите новое Значение переменной.

Глобальный конфигурационный файл настроек хранится в:

  • CentOS: /etc/php.ini для нативной версии PHP и в /opt/<версия PHP>/etc/php.ini для альтернативных версий.
  • Debian: для каждого режима работы PHP индивидуальный файл. /etc/php5/apache2/php.ini, /etc/php5/cgi/php.ini и/etc/php5/fpm/php.ini.

Пользовательские конфигурационные файлы хранятся в /var/www/<директория php-bin версии PHP>/<владелец WWW-домена>/php.ini. Настройки, которые изменял пользователь, хранятся в этой же директории в конфигурационном файле изменённых параметров .php.ini.

Чтобы изменить пользовательские конфигурационные файлы вручную, отредактируйте файл php.ini и продублируйте изменения в файле /var/www/<владелец WWW-домена>/data/<директория php-bin версии PHP>/.php.ini.

Шаблон создания конфигурационных файлов

Файл /usr/local/mgr5/etc/templates/php.ini используется как шаблон создания пользовательских конфигурационных файлов. При создании нового пользователя настройки PHP для него изменяются в соответствии с шаблоном. По умолчанию шаблон содержит строки:

Шаблон пользовательских конфигурационных файлов

session.save_path = "$HOMEDIR/bin-tmp/"
upload_tmp_dir = "$HOMEDIR/bin-tmp/"
sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@example.com
BASH
Пояснения

$HOMEDIR — макрос, который при создании пользователя заменяется на его домашнюю директорию.

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

Если пользователь ISPmanager сохраняет изменения настроек PHP:

  1. Изменённые значения переменных записываются в конфигурационный файл изменённых параметров.
  2. Содержимое пользовательского конфигурационного файла полностью заменяется на содержимое глобального файла.
  3. Значения из конфигурационного файла изменённых параметров заменяют соответствующие значения в пользовательском конфигурационном файле.

Если администратор ISPmanager сохраняет изменения настроек PHP:

  1. Значения записываются в глобальный конфигурационный файл.
  2. Для каждого пользователя ISPmanager:
    1. Содержимое пользовательского конфигурационного файла полностью заменяется на содержимое глобального файла.
    2. Значения из конфигурационного файла изменённых параметров пользователя заменяют соответствующие значения в пользовательском конфигурационном файле.

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

Если пользователь ISPmanager сохраняет изменения настроек PHP, изменённые значения переменных записываются в конфигурационный файл PHP-FPM пользователя соответствующей версии PHP.

Если администратор ISPmanager сохраняет изменения настроек PHP, изменённые значения переменных записываются в глобальный конфигурационный файл PHP-FPM соответствующей версии PHP.

Если настройки PHP изменены для конкретного сайта, изменённые значения переменных сохраняются в директории:

  • для альтернативных версий PHP —/opt/php<version>/etc/php-fpm.d/;

    Пояснения

    <version> — версия PHP. Например, для PHP 5.4 конфигурационные файлы сайта находится в директории /opt/php54/etc/php-fpm.d/.

  • для нативных версий PHP в ОС CentOS — /etc/php-fpm.d/;

  • для нативных версий PHP в ОС Ubuntu, Debian — /etc/php/<version>/fpm/.

    Пояснения

    <version> — версия PHP. Например, для PHP 7.0 конфигурационные файлы сайта находится в директории /etc/php/7.0/fpm/.

Чтобы сохранить настройки PHP для конкретного сайта, панель управления создаёт поддиректории:

/user.d — содержит конфигурационные файлы PHP с настройками пользователя;

/site.d — содержит конфигурационные файлы PHP с настройками для сайта;

/pool.d — содержит конфигурационные файлы пула PHP-FPM.

Чтобы панель управления не создавала отдельные настройки PHP-FPM для каждого сайта, добавьте в конфигурационный файл ISPmanager строку:

Option DisableFpmPerSite
CODE

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

Пользователь не имеет доступа к изменению настроек PHP для этого режима.

Если администратор ISPmanager сохраняет изменения настроек PHP, изменённые значения переменных записываются в глобальный конфигурационный файл модуля Apache соответствующей версии PHP.

Первоначальная настройка PHP


Чтобы упростить первоначальную настройку PHP основные параметры сгруппированы:

  1. Перейдите в Настройки Настройки PHP  Расширенные настройки Основные.
  2. Выберите Временную зону, которая будет использоваться по умолчанию всеми функциями даты и времени. Указывается в переменной "date.timezone".
  3. Укажите Время выполнения PHP-скрипта в секундах. Если за это время загрузка скрипта не происходит, его работа завершается. Указывается в переменной "max_execution_time".
  4. Укажите ограничение на Макс. размер запроса в МиБ. Оно определяет максимально допустимый размер данных, отправляемых методом POST. Указывается в переменной "post_max_size".
  5. Укажите ограничение на Макс. размер файлов в МиБ. Оно определяет максимальный размер загружаемых с помощью PHP-скриптов файлов. Указывается в переменной "upload_max_filesize".
  6. Укажите Лимит памяти в МиБ. Он определяет максимальный объём оперативной памяти, который может использовать PHP-скрипт. Указывается в переменной "memory_limit".
  7. Чтобы выводить сообщения об ошибках вместе с остальным выводом PHP-скрипта, включите опцию display_errors. Рекомендуем использовать эту опцию только для отладки скриптов и отключать её после завершения работы.
  8. Чтобы ISPmanager вёл журнал работы PHP-скриптов, включите опцию log_errors. Настройте список ошибок, записываемых в журнал. Для этого включите опцию Вывод всех ошибок и в поле Выбор флагов для игнорирования при выводе ошибок выберите исключения, которые не будут записываться.

    Пояснения

    В конфигурационный файл php.ini добавляются строки вида:

    Конфигурационный файл php.ini

    error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT.
    BASH
    Пояснения

    E_ALL — включает вывод всех ошибок.

    & ~E_DEPRECATED & ~E_STRICT — исключаемые ошибки, указанные через "& ~".

    Или отключите опцию Вывод всех ошибок и в поле выберите ошибки, которые будут записываться в журнал.

    Пояснения

    В конфигурационный файл php.ini добавятся строки вида:

    Конфигурационный файл php.ini

    error_reporting = E_ERROR | E_NOTIC
    BASH
    Пояснения
    E_ERROR | E_NOTIC — журналируемые ошибки, указанные через " | ".

Восстановление значения переменной


Чтобы восстановить значение переменной под администратором:

  1. Нажмите Настройки Настройки PHP  Расширенные настройки Восстановить.
  2. Изменённое значение удаляется из глобального конфигурационного файла PHP.
  3. Для каждого пользователя ISPmanager:
    1. Содержимое пользовательского конфигурационного файла полностью заменяется на содержимое глобального файла.
    2. Значения из конфигурационного файла изменённых параметров пользователя заменяют соответствующие значения в пользовательском конфигурационном файле.

Чтобы восстановить значение переменной под пользователем:

  1. Нажмите WWW → PHPРасширенные настройкиВосстановить.
  2. Изменённое значение удаляется из пользовательского конфигурационного файла PHP.