Con FPM puede ejecutar varios grupos de procesos con diferentes configuraciones.
Estas son las configuraciones que se pueden ajustar por grupo.
-
listen
string
-
La dirección en la que aceptar solicitudes FastCGI. Sintaxis válidas son:
'ip.add.re.ss:port', 'port', '/path/to/unix/socket'. Esta opción es
obligatoria para cada grupo.
-
listen.backlog
int
-
Establecer listen(2) backlog. Un valor de -1
significa máximo en sistemas BSD.
Valor por defecto: -1
(FreeBSD o OpenBSD) o 511
(Linux y otras plataformas).
-
listen.allowed_clients
string
-
Lista de direcciones IPv4 o IPv6 de clientes FastCGI que están autorizados a conectarse. Equivalente
a la variable de entorno FCGI_WEB_SERVER_ADDRS en el PHP FastCGI original (5.2.2+).
Solo tiene sentido con un socket de escucha tcp. Cada dirección debe estar separada por una coma.
Si este valor se deja en blanco, se aceptarán conexiones desde cualquier dirección ip.
Valor por defecto: no establecido (se acepta cualquier dirección ip).
-
listen.owner
string
-
Establecer permisos para el socket unix, si se utiliza uno. En Linux, los permisos de lectura/escritura
deben establecerse para permitir conexiones desde un servidor web. Muchos sistemas derivados de BSD
permiten conexiones independientemente de los permisos.
Valores por defecto: usuario y grupo se establecen como el usuario en ejecución, modo se establece en 0660.
-
listen.group
string
-
Ver listen.owner
.
-
listen.mode
string
-
Ver listen.owner
.
-
listen.acl_users
string
-
Cuando se admiten las listas de control de acceso POSIX, puede establecerlas utilizando esta opción.
Cuando se establece, listen.owner
y listen.group
se ignoran. El valor es una lista separada por comas de nombres de usuarios.
-
listen.acl_groups
string
-
Ver listen.acl_users
.
El valor es una lista separada por comas de nombres de grupos.
-
listen.setfib
int
-
Establecer la tabla de rutas asociada (FIB). Solo para FreeBSD.
Valor por defecto: -1
. Desde PHP 8.2.0.
-
user
string
-
Usuario Unix de los procesos FPM. Esta opción es obligatoria.
-
group
string
-
Grupo Unix de los procesos FPM. Si no se establece, se utiliza el grupo del usuario por defecto.
-
pm
string
-
Elegir cómo el gestor de procesos controlará el número de procesos hijos.
Valores posibles: static
, ondemand
,
dynamic
.
Esta opción es obligatoria.
static
- el número de procesos hijos es fijo (pm.max_children
).
ondemand
- los procesos se generan bajo demanda (cuando se solicita,
a diferencia de dinámico, donde pm.start_servers
se inician
cuando se inicia el servicio.
dynamic
- el número de procesos hijos se establece dinámicamente en función de las
siguientes directivas: pm.max_children
, pm.start_servers
,
pm.min_spare_servers
, pm.max_spare_servers
.
-
pm.max_children
int
-
El número de procesos hijos que se crearán cuando pm
se establece en
static
y el número máximo de procesos hijos que se crearán
cuando pm
se establece en dynamic
. Esta
opción es obligatoria.
Esta opción establece el límite en el número de solicitudes simultáneas que
se atenderán. Equivalente a la directiva ApacheMaxClients con
mpm_prefork y a la variable de entorno PHP_FCGI_CHILDREN en el
PHP FastCGI original.
-
pm.start_servers
int
-
El número de procesos hijos creados al inicio.
Solo se utiliza cuando pm
se establece en dynamic
.
Valor por defecto: (min_spare_servers + max_spare_servers) / 2.
-
pm.min_spare_servers
int
-
El número deseado de procesos de servidor inactivos. Solo se utiliza cuando
pm
se establece en dynamic
. También
obligatorio en este caso.
-
pm.max_spare_servers
int
-
El número deseado de procesos de servidor inactivos. Solo se utiliza cuando
pm
se establece en dynamic
. También
obligatorio en este caso.
-
pm.max_spawn_rate
int
-
El número de tasa para generar procesos hijos a la vez. Solo se utiliza cuando
pm
se establece en dynamic
.
Valor por defecto: 32
-
pm.process_idle_timeout
mixed
-
El número de segundos después de los cuales un proceso inactivo será eliminado.
Solo se utiliza cuando pm
se establece en ondemand
.
Unidades disponibles: s(econdos)(por defecto), m(inutos), h(oras), o d(ías).
Valor por defecto: 10s.
-
pm.max_requests
int
-
El número de solicitudes que cada proceso hijo debe ejecutar antes
de regenerarse. Esto puede ser útil para trabajar alrededor de fugas de memoria en bibliotecas de terceros.
Para el procesamiento de solicitudes sin fin, especifique '0'. Equivalente a
PHP_FCGI_MAX_REQUESTS. Valor por defecto: 0.
-
pm.status_listen
string
-
La dirección en la que aceptar solicitudes de estado FastCGI. Esto crea un nuevo grupo invisible
que puede manejar solicitudes de forma independiente. Esto es útil si el grupo principal está ocupado con solicitudes de larga duración porque aún es posible obtener la
página de estado de FPM antes de finalizar las solicitudes de larga duración.
La sintaxis es la misma que para la directiva listen.
Valor por defecto: ninguno.
-
pm.status_path
string
-
La URI para ver la página de estado de FPM. Este valor debe
comenzar con una barra inicial (/). Si este valor no se establece, ninguna URI será reconocida como
una página de estado. Valor por defecto: ninguno.
-
ping.path
string
-
La URI de ping para llamar a la página de monitoreo de FPM. Si este valor no
se establece, ninguna URI será reconocida como una página de ping. Esto podría usarse para probar
desde fuera que FPM está vivo y respondiendo. Tenga en cuenta que el valor debe
comenzar con una barra inicial (/).
-
ping.response
string
-
Esta directiva puede usarse para personalizar la respuesta a una
solicitud de ping. La respuesta se formatea como text/plain con un código de respuesta 200.
Valor por defecto: pong.
-
process.priority
int
-
Especifica la prioridad nice(2) a aplicar al proceso de trabajo (solo si está establecido).
El valor puede variar de -19 (prioridad más alta) a 20 (prioridad más baja).
Valor por defecto: no establecido.
-
process.dumpable
bool
-
Establece la bandera de proceso dumpable (PR_SET_DUMPABLE prctl) incluso si el usuario o grupo del proceso
es diferente al usuario del proceso principal. Permite crear un volcado de núcleo de proceso
y ptrace el proceso para el usuario del grupo.
Valor por defecto: no. Desde PHP 7.0.29, 7.1.17 y 7.2.5.
-
prefix
string
-
Especificar prefijo para la evaluación de rutas
-
request_terminate_timeout
mixed
-
El tiempo límite para atender una solicitud única después del cual el
proceso de trabajo será eliminado. Esta opción debe usarse cuando la opción
ini 'max_execution_time' no detiene la ejecución del script por alguna razón. Un valor de '0' significa
'Desactivado'. Unidades disponibles: s(econdos)(por defecto), m(inutos), h(oras), o d(ías).
Valor por defecto: 0.
-
request_terminate_timeout_track_finished
bool
-
El tiempo límite establecido por
request_terminate_timeout no se activa
después de un fastcgi_finish_request o
cuando la aplicación ha terminado y se están llamando las funciones de cierre internas. Esta
directiva habilitará el límite de tiempo para que se aplique incondicionalmente incluso en tales casos.
Valor por defecto: no. Desde PHP 7.3.0.
-
request_slowlog_timeout
mixed
-
El tiempo límite para atender una solicitud única después del cual se volcará un backtrace de PHP
al archivo 'slowlog'. Un valor de '0' significa 'Desactivado'.
Unidades disponibles: s(econdos)(por defecto), m(inutos), h(oras), o d(ías).
Valor por defecto: 0.
-
request_slowlog_trace_depth
int
-
La profundidad del registro de traza de pila de slowlog.
Valor por defecto: 20. Desde PHP 7.2.0.
-
slowlog
string
-
El archivo de registro para solicitudes lentas. Valor por defecto:
#INSTALL_PREFIX#/log/php-fpm.log.slow
.
-
rlimit_files
int
-
Establecer el límite de descriptores de archivo abiertos para los procesos hijos en este grupo. Valor por defecto: valor definido por el sistema.
-
rlimit_core
int
-
Establecer el límite máximo de tamaño de núcleo para los procesos hijos en este grupo. Valores posibles: 'unlimited' o un entero mayor o igual a 0.
Valor por defecto: valor definido por el sistema.
-
chroot
string
-
Cambiar al directorio raíz al inicio. Este valor debe definirse como
una ruta absoluta. Cuando este valor no está establecido, no se utiliza chroot.
-
chdir
string
-
Cambiar al directorio al inicio. Este valor debe ser una ruta absoluta.
Valor por defecto: directorio actual o / cuando chroot.
-
catch_workers_output
bool
-
Redirigir la salida y error estándar de los trabajadores al registro de errores principal. Si no está establecido,
la salida y error estándar se redirigirán a /dev/null según las especificaciones de FastCGI.
Valor por defecto: no.
-
decorate_workers_output
bool
-
Habilitar la decoración de salida para la salida de los trabajadores cuando catch_workers_output está habilitado.
Valor por defecto: yes.
Disponible a partir de PHP 7.3.0.
-
clear_env
bool
-
Limpiar el entorno en los trabajadores de FPM.
Evita que variables de entorno arbitrarias lleguen a los procesos de trabajadores de FPM
limpiando el entorno en los trabajadores antes de que se añadan las variables de entorno especificadas en esta
configuración de grupo.
Valor por defecto: Sí.
-
security.limit_extensions
string
-
Limita las extensiones del script principal que FPM permitirá analizar.
Esto puede evitar errores de configuración en el lado del servidor web.
Solo debe limitar FPM a extensiones .php para evitar que usuarios malintencionados
utilicen otras extensiones para ejecutar código php.
Valor por defecto: .php .phar
-
apparmor_hat
string
-
Si AppArmor está habilitado, permite cambiar de sombrero.
Valor por defecto: no establecido
-
access.log
string
-
El archivo de registro de acceso.
Valor por defecto: no establecido
-
access.format
string
-
El formato del registro de acceso.
Valor por defecto: "%R - %u %t \"%m %r\" %s"
:
-
access.suppress_path
array
-
Una lista de valores de request_uri que deben filtrarse del registro de acceso.
Valor por defecto: no establecido. Desde PHP 8.2.0.
Es posible pasar variables de entorno adicionales y actualizar la configuración de PHP de un grupo determinado.
Para hacer esto, debe agregar las siguientes opciones al archivo de configuración del grupo.
La configuración de PHP puede establecerse en la configuración del servidor web.