При необходимости настроить конфигурацию пула php-fpm для нового сервера, мне интересно, возможно ли / разрешено / рекомендовано иметь новый файл пула, имя которого идет в алфавитном порядке после исходного, который имеет только значения, которые переопределяют исходную конфигурацию.
Оригинальная конфигурация в /etc/php/7.0/fpm/pool.d
названном www.conf
.
Кажется, согласно страницам, связанным с установкой, инженеры изменяют непосредственно оригинал (сохраняя копию начальных значений). Например
[www]
...
user www-data
group www-data
pm.max_children 2
дает после модификации
[www]
...
user myapp ; was www-data
group myapp ; was www-data
pm.max_children 8 ; was 2
Но кажется, что это может быть задачей, которую нужно повторить после следующего обновления php-fpm (более того, конфигурация находится в 7.0
пути, это беспокоит).
Вместо того, чтобы изменять исходный файл, я хотел бы оставить его без изменений и добавить еще один, скажем, wwwmyapp.conf
что он объявит тот же пул, и будет иметь только те значения, которые изменились
в wwwmyapp.conf
[www] ; same pool!
user myapp
group myapp
pm.max_children 8
в pool.d
, список файлов
www.conf
wwwmyapp.conf
поскольку во php-fpm.conf
всех пулах загружаются файлы conf, значения wwwmyapp
будут считываться после значений www
(в том же www
пуле) и должны переопределять первые значения.
- Похоже, что он работает в нескольких тестах и не сообщается об ошибке, но будет ли он работать постоянно и для всех значений?
- Должны ли мы перезаписать файл конфигурации напрямую?
Не удалось найти ответ ни в одном документе, даже на php.net.
источник
Ответы:
Не удалось найти «официальное» подтверждение из другого источника, но вот некоторые результаты после некоторого исследования:
Анализируя исходный код
php7.0-fpm
и, более конкретноfpm-conf.c
, кажется, чтоphp-fpm.conf
читается первым [ fpm_conf_load_ini_file ()],include
директивы читаются по порядку, давая список файлов благодаря glob () ,include
будет иметь рекурсивный вызов функции обработки включений, иGLOB_NOSORT
опция)Таким образом, мы можем предположить - по крайней мере, в этой версии, но это вряд ли скоро изменится, учитывая существующий код - что безопасно расположить
pool.d
файлы конфигурации каталогов в алфавитном порядке; любое ранее записанное значение перезаписывается записью с тем же именем, прочитанной после.У нас есть простой способ обрабатывать файлы конфигурации
php-fpm
, не затрагивая дистрибутивные файлы, и добавляя пользовательские файлы, имена которых в алфавитном порядке больше, чем упакованные, которые содержат несколько параметров, которые необходимо изменить.источник
[global]
раздела. напримерemergency_restart_threshold
. Протестировано на php7.1-fpm Ubuntu (сервер 18).www
единственным способом переопределения, используется имя файла pool.d, например,wwwsomething
или начинающееся сx
,y
илиz
.z-www-overrides.conf
и он переопределяет[www]
параметры пула!В случае, если у вас есть какой-либо файл, например php-overrides.ini, вы должны скопировать его в
/etc/php/7.0/fpm/conf.d/99-overrides.ini
99 префикс связан с порядком исполнения
источник
conf.d
Переопределение не может переопределитьphp-fpm.conf
переменные (только вpool.d/
Under[global]
) (примечание к будущей самостоятельной)