Al tener que personalizar la configuración del grupo php-fpm de un nuevo servidor, me pregunto si es posible / permitido / recomendado tener un nuevo archivo de grupo, cuyo nombre va alfabéticamente después del original, que solo tiene valores que anulan la configuración inicial.
La configuración original está en /etc/php/7.0/fpm/pool.d
nombre www.conf
.
Parece que, según las páginas relacionadas con la instalación, los ingenieros modifican directamente el original (guardando una copia de los valores iniciales). P.ej
[www]
...
user www-data
group www-data
pm.max_children 2
da después de la modificación
[www]
...
user myapp ; was www-data
group myapp ; was www-data
pm.max_children 8 ; was 2
Pero parece que podría ser una tarea que se repetirá después de la próxima actualización de php-fpm (además, la configuración está en una 7.0
ruta, eso es preocupante).
En lugar de modificar el archivo original, me gustaría mantenerlo sin cambios y agregar otro, digamos wwwmyapp.conf
que declararía el mismo grupo y que solo tendría los valores que han cambiado
en wwwmyapp.conf
[www] ; same pool!
user myapp
group myapp
pm.max_children 8
en pool.d
, lista de archivos
www.conf
wwwmyapp.conf
dado que en php-fpm.conf
todos los archivos conf de grupo se cargan, los valores de wwwmyapp
se leerán después de los de www
(en el mismo www
grupo) y deben anular los primeros valores.
- Parece funcionar en algunas pruebas y no se informa ningún error, pero ¿funcionará todo el tiempo y para todos los valores?
- ¿Deberíamos sobrescribir el archivo de configuración directamente en su lugar?
No se pudo encontrar una respuesta en ningún documento, ni siquiera en php.net.
fuente
Respuestas:
No se pudo encontrar una confirmación "oficial" de otra fuente, pero aquí hay algunos resultados después de hacer una investigación:
Analizando el código fuente de
php7.0-fpm
y más específicamentefpm-conf.c
, parece quephp-fpm.conf
se lee primero [ fpm_conf_load_ini_file ()],include
directivas se leen en orden, dando una lista de archivos gracias a glob () ,include
tendrá una llamada recursiva a la función de procesamiento incluye, yGLOB_NOSORT
opción)Por lo tanto, podemos suponer, al menos en esta versión, pero es poco probable que esto cambie pronto considerando el código actual, que es seguro organizar los
pool.d
archivos de configuración del directorio en orden alfabético; cualquier valor registrado previamente se sobrescribe con una entrada con el mismo nombre leído después.Tenemos una forma limpia de manejar los archivos de configuración
php-fpm
, manteniendo intactos los de distribución y agregando archivos personalizados con un nombre alfabéticamente mayor que los empaquetados, que contienen las pocas opciones que deben cambiarse.fuente
[global]
sección. por ejemergency_restart_threshold
. Probado en php7.1-fpm ubuntu (servidor 18).www
la única forma de anularlo es usando los nombres de archivo pool.d como,wwwsomething
o comenzando conx
,y
oz
.En caso de que tenga algún archivo como php-overrides.ini, debe copiarlo en
/etc/php/7.0/fpm/conf.d/99-overrides.ini
El prefijo 99 se debe al orden de ejecución
fuente
conf.d
las anulaciones no pueden anularphp-fpm.conf
variables (solo enpool.d/
debajo[global]
) (nota para el yo futuro)