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

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

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

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


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

  1. Под администратором перейдите в Настройки web-сервера → PHP → Расширенные настройки. Под пользователем перейдите в WWW → PHP → Расширенные настройки.
  2. Выделите переменную и нажмите Изменить.
  3. Укажите новое Значение переменной.

Чтобы пользователи имели возможность изменить переменную, им нужно разрешить это под администратором: нажмите Настройки web-сервера → PHP → Расширенные настройки → Показать. Список разрешённых переменных хранится в /etc/cl.selector/php.conf.

Конфигурационные файлы настроек PHP

Глобальный конфигурационный файл настроек хранится в /etc/php.ini для нативной версии PHP и в /opt/alt/<версия PHP>/etc/php.ini для альтернативных версий.

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

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

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

В режиме работы PHP "CGI", если для пользователя выбрана альтернативная версия PHP, то для запуска интерпретатора используется скрипт /usr/local/bin/php-cgi-etc. Этот скрипт исключает загрузку пользовательского php.ini из каталога php-bin, в котором прописываются настройки для системной версии PHP. Если выбрана нативная версия PHP, то используется скрипт /usr/bin/php-cgi.

Пользовательские настройки для альтернативных версий PHP хранятся в /var/www/<владелец WWW-домена>/data/.cl.selector/.

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

Файл /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 — макрос, который при создании пользователя заменяется на его домашнюю директорию.

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

Если вы хотите изменить шаблон, то сделать это нужно на мастер-сервере. Чтобы синхронизировать изменения с узлами кластера, выполните на каждом узле команду:

/usr/local/mgr5/sbin/mgrctl -m ispmgrnode exit
BASH

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

Если пользователь ISPmanager сохраняет изменения настроек PHP, запускается утилита CloudLinux selectorctl с необходимыми параметрами.

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

  1. Значения записываются в глобальный конфигурационный файл версии PHP.
  2. Запускается утилита cagefsctl с ключом "--rebuild-alt-php-ini" для применения изменений.

Применение настроек для режима работы PHP "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 "модуль Apache"

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

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

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


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

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

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

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