Configuración

FPM usa la sintaxis de php.ini para su fichero de configuración - php-fpm.conf, y agrupa ficheros de configuración.

Lista de directivas globales de php-fpm.conf

pidstring

Ruta al fichero PID. Valor por defecto: none.

error_logstring

Ruta al fichero de registro de errores. Valor por defecto: #INSTALL_PREFIX#/log/php-fpm.log. Si se establece a "syslog", los registros son enviados a syslogd en lugar de escribir en un archivo local.

log_levelstring

Nivel de registro de errores. Posibles valores: alert, error, warning, notice, debug. Valor por defecto: notice.

log_limitint

Límite de registro para las líneas registradas que permite registrar mensajes de más de 1024 caracteres sin envolver. Valor por defecto: 1024. Disponible a partir de PHP 7.3.0.

log_bufferingbool

Registro experimental sin almacenamiento adicional en el búfer. Valor por defecto: sí. Disponible a partir de PHP 7.3.0.

syslog.facilitystring

Usado para especificar qué tipo de programa está recibiendo los mensajes de registro. Valor por defecto: daemon.

syslog.identstring

Anteponer a cada mensaje. Si hay varias instancias FPM ejecutándose en el mismo servidor, puede cambiar el valor por defecto que debe adaptarse a sus necesidades. Valor por defecto: php-fpm.

emergency_restart_thresholdint

Si este número de procesos termina con SIGSEGV o SIGBUS dentro del intervalo de tiempo establecido por emergency_restart_interval entonces FPM se reiniciará. Un valor de 0 corresponde a 'Off'. Valor por defecto: 0 (Off).

emergency_restart_intervalmixed

Intervalo de tiempo usado por emergency_restart_interval para determinar cuando un reinicio agraciado será realizado. Esto puede ser útil trabajar sobre corrupciones accidentales in en acelerador de memoria compartida. Unidades disponibles:: s(segundos), m(inutos), h(oras), o d(ías). Unidad por defecto: segundos. Valor por defecto: 0 (Off).

process_control_timeoutmixed

Límite de tiempo que un hilo de proceso espera por una señal maestra. Unidades disponibles: s(egundos), m(inutos), h(oras), o d(ías) Unidad por defecto: segundos. Valor por defecto: 0.

process.maxint

El número máximo de procesos FPM creará. Esto ha sido diseñado para controlar el número global de procesos cuando se utiliza PM dinámico dentro de muchos pools. Utilícelo con precaución. Valor por defecto: 0.

process.priorityint

Especifique la prioridad nice(2) que se aplicará al proceso maestro (sólo si se establece). El valor puede variar entre -19 (prioridad más alta) hasta 20 (prioridad más baja). Valor por defecto: no establecido.

daemonizeboolean

Envía a FPM al background. Establezca a 'no' para mantener FPM en foreground para depuración. Valor por defecto: yes.

rlimit_filesint

Establece el descriptor rlimit de archivos abiertos para el proceso maestro. Valor predeterminado: Establece el descriptor rlimit de archivos abiertos para el proceso maestro.

rlimit_coreint

Establece el tamaño máximo del núcleo rlimit para el proceso maestro. Valor por defecto: 0.

events.mechanismstring

Especifica el mecanismo de eventos que FPM utilizará. Los siguientes están disponibles: select, pool, epoll, kqueue (*BSD), port (Solaris). Valor por defecto: no establecido (auto-detección).

systemd_intervalint

Cuando FPM es compilado con integración con systemd, especifique el intervalo, en segundos, entre notificaciones de reporte de salud a systemd. Coloque a 0 para deshabilitar. Valor por defecto: 10.

Lista de directivas de grupo

Con FPM usted puede correr varios grupos de procesos con diferentes ajustes. Estos son los parámetros que pueden ser ajustados por grupo.

listenstring

La dirección sobre la cual desea aceptar peticiones FastCGI. Las sintaxis válidas son: 'ip.add.re.ss:port', 'port', '/path/to/unix/socket'. Esta opción es obligatoria por cada grupo.

listen.backlogint

Establece listen(2) backlog. Un valor de '-1' significa ilimitado. Valor por defecto: -1.

listen.allowed_clientsstring

Lista de direcciones ipv4 de clientes FastCGI que tienen permiso para conectarse. El equivalente a la variable de entorno FCGI_WEB_SERVER_ADDRS en el PHP FastCGI (5.2.2+) original. Tiene sentido solamente con un socket tcp escuchando. Cada dirección debe ser separada por coma. Si este valor es dejado en blanco, las conexiones serán aceptas desde cualquier dirección ip. Valor por defecto: any.

listen.ownerstring

Establece permisos para sockets unix, si uno es usado. En Linux, los permisos de lectura/escritura deben ser puestos a fin de permitir conexiones desde un servidor web. Muchos sistemas derivados de BSD permiten conexiones sin considerar los permisos. Valor por defecto: usuario y grupo son establecidos según el usuario ejecutor, permisos puestos a 0660.

listen.groupstring

Ver listen.owner.

listen.modestring

Ver listen.owner.

listen.acl_usersstring

Cuando las lsitas de control de acceso POSIX están soportadas, usted puede configurarlas usando esta opción. Cuando se establece, listen.owner y listen.group son ignoradas. El valor es una lista de nombres de usuario separado por comas. Desde PHP 5.6.5.

listen.acl_groupsstring

Ver listen.acl_users. El valor es una lista de nombres de grupo separado por comas. Desde PHP 5.6.5.

userstring

Usuario Unix de procesos FPM. Esta opción es obligatoria.

groupstring

Grupo Unix group of FPM processes. Si no es establecido, el grupo del usuario por defecto será usado.

pmstring

Seleccione cómo el manejador de procesos controlará el número de hilos de procesos. Valores posibles: static, ondemand, dynamic. Esta opción es obligatoria.

static - el número de hilos de proceso es fijo (pm.max_children).

ondemand - el proceso se lanza en demanda (cuando se solicita, al contrario que dynamic, donde pm.start_servers son iniciados cuando el servicio está iniciado.

dynamic - el número de hilos de proceso será basado dinámicamente basado en las siguientes directivas: pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.

pm.max_childrenint

El número de hilos de procesos a ser creados cuando pm es puesto a static y el máximo número de hilos de proceso a ser creados cuando pm es puesto a dynamic. Esta opción es obligatoria.

Esta opción establece el límite sobre el número de peticiones simultaneas que serán servidas. Equivale a la directiva ApacheMaxClients con mpm_prefork y a la variable de entorno PHP_FCGI_CHILDREN del PHP FastCGI original.

pm.start_serversint

Número de hilos de procesos creados al inicio. Usado solamente cuando pm es puesto a dynamic. Valor por defecto: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.

pm.min_spare_serversint

El número mínimo deseado de procesos libres en el servidor. Usado sólo cuando pm es puesto a dynamic. También obligatorio en este caso.

pm.max_spare_serversint

El número máximo deseado de procesos libres en el servidor. usado sólo cuando pm es puesto a dynamic. También obligatorio en este caso.

pm.process_idle_timeoutmixed

El número de segundos después de los cuales se matará un proceso inactivo. Usado sólo cuando pm está establecido como ondemand. Unidades disponibles: s(segundos)(predeterminado), m(inutos), h(horas), o d(ías). Valor por defecto: 10s.

pm.max_requestsint

El número de pedidos que cada hilo de proceso debe ejecutar antes de reaparecer. Esto puede ser útil para evitar las fugas de memoria en librerías de terceros. para el procesamiento de solicitudes sin límites especifique '0'. Equivale a PHP_FCGI_MAX_REQUESTS. Valor por defecto: 0.

pm.status_pathstring

La dirección URI para ver la página de status FPM. Este valor debe comenzar con una barra inclinada (/). Si no se establece este valor, no se reconocerá ninguna URI como página de estado. Valor por defecto: ninguno. . Valor por defecto: none.

ping.pathstring

La dirección URI del ping para llamar a la página de monitor del FPM. Si este valor no es establecido, ninguna dirección URI será reconocida como página del ping. Esto debería ser usado para probar desde el exterior que el FPM está funcionando y respondiendo. Por favor, note que este valor debe empezar con un slash (/).

ping.responsestring

Esta directiva puede ser usada para personalizar las peticiones de respuestas a ping. La respuesta es formateada como text/plain con un código de respuesta 200. Valor por defecto: pong.

process.priorityint

Especifique la prioridad nice(2) que se aplicará al proceso maestro (sólo si se establece). El valor puede variar entre -19 (prioridad más alta) hasta 20 (prioridad más baja). Valor por defecto: no establecido.

process.dumpablebool

Establece el indicador de proceso descargable (PR_SET_DUMPABLE prctl) incluso si el usuario o grupo del proceso o grupo es diferente al usuario del proceso maestro. Permite crear el proceso core dump y ptrace el proceso para el usuario del pool. Valor por defecto: no. Desde de PHP 7.0.29, 7.1.17 y 7.2.5.

prefixstring

Establece un prefijo para la ruta de evaluación

request_terminate_timeoutmixed

El tiempo de espera para servir una simple petición luego que el proceso worker sea eliminado. Esta opción debe ser usada cuando la opción 'max_execution_time' no detenga la ejecuciuón del script por cualquier razón. Un valor de '0' corresponde a 'Off'. Unidades disponibles: s(egundos)(por defecto), m(inutos), h(horas), or d(ías). Default value: 0.

request_slowlog_timeoutmixed

El tiempo de espera para servir una simple petición después de que un backtrace PHP sea volcado al fichero 'slowlog'. Un valor de '0' corresponde a 'Off'. Unidades disponibles: s(egundos)(por defecto), m(inutos), h(oras), or d(ías). Valor por defecto: 0.

slowlogstring

El fichero de registro para peticiones lentas. Valor por defecto: #INSTALL_PREFIX#/log/php-fpm.log.slow.

rlimit_filesint

Establece el fichero descriptor rlimit. Valor por defecto: definido por el sistema.

rlimit_coreint

Establece el tamaño máximo del rlimit. Valores posibles: 'unlimited' o un entero mayor o igualo a 0. Valor por defecto: definido por el sistema.

chrootstring

Establece el Chroot (enjaulado) a este directorio al inicio. Este valor debe ser definido como una ruta absoluta. Cuando este valor no es establecido, el chroot no es usado.

chdirstring

Establece el Chdir a este directorio al inicio. Este valor debe ser establecido como una ruta absoluta. Valor por defecto: directorio actual o / cuando está en chroot (enjaulado).

catch_workers_outputboolean

Redirige los worker stdout y stderr en el fichero de registro principal. Sí no es establecido, stdout y stderr serán redirigidos a /dev/null de acuerdo a las especificaciones FastCGI. Valor por defecto: no.

decorate_workers_outputbool

Habilitar la decoración de salida para la salida de los catch_workers_output si está activado. Valor por defecto: sí. Disponible a partir de PHP 7.3.0.

clear_envboolean

Entorno limpio in workers FPM. Evita que variables de entorno arbitrarias lleguen a los procesos FPM mediante la limpieza del entorno en los workers antes de que se añadan las variables env a las pools correspondientes a esta configuración. Desde PHP 5.4.27, 5.5.11, y 5.6.0. Valor por defecto: Yes.

security.limit_extensionsstring

Limita las extensiones del script principal que FPM procesará. Esto puede evitar errores de configuración del lado del servidor. Usted debería limitar su FPM a procesar unicamente extensiones .php para evitar que usuarios malintencionados usen diferentes extensiones para ejecutar código PHP. Valor por defecto: .php .phar

access.logstring

Archivo de registro de acceso. Valor por defecto: no establecido

access.formatstring

Formato del archivo de registro de acceso. Valor por defecto: "%R - %u %t \"%m %r\" %s"

Opciones válidas
PlaceholderDescripción
%C%CPU
%dduration µs
%efastcgi env
%fscript
%lcontent length
%mmethod
%Mmemory
%npool name
%oheader output
%pPID
%qquery string
%Qthe glue between %q and %r
%rrequest URI
%Rremote IP address
%sstatus
%Ttime
%ttime
%uremote user

Es posible pasar las variables de entorno adicionales y actualizar los ajustes PHP de ciertos grupos. Para ello, se necesita agregar las siguientes opciones al fichero de configuración.

Ejemplo #1 Pasando variables de entorno y ajustando las configuraciones de PHP por grupos

env[HOSTNAME] = $HOSTNAME env[PATH] = /usr/local/bin:/usr/bin:/bin env[TMP] = /tmp env[TMPDIR] = /tmp env[TEMP] = /tmp php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com php_flag[display_errors] = off php_admin_value[error_log] = /var/log/fpm-php.www.log php_admin_flag[log_errors] = on php_admin_value[memory_limit] = 32M
Los ajustes PHP pasados con php_value o php_flag serán sobre-escritos a sus valores previos. Por favor note que definiendo disable_functions o disable_classes no sobre-escribirá los valores de definiciones anteriores php.ini, pero añadirán nuevos en cambio.

Ajustes definidos con php_admin_value and php_admin_flag cannot be anulados con ini_set().

Como 5.3.3, establecer los ajustes PHP es también posible como servidor web.

Ejemplo #2 Establecer ajustes PHP en nginx.conf

set $php_value "pcre.backtrack_limit=424242"; set $php_value "$php_value \n pcre.recursion_limit=99999"; fastcgi_param PHP_VALUE $php_value; fastcgi_param PHP_ADMIN_VALUE "open_basedir=/var/www/htdocs";
Precaución

Dado a que estos valores se pasan a php-fpm como cabeceras fastcgi, php-fpm no debe estar vinculado a una dirección accesible para todo el mundo. De lo contrario, cualquiera podría alterar las opciones de configuración de PHP. Ver también listen.allowed_clients.

Nota: Los pools no son un mecanismo de seguridad, porque no proporcionan una separación total; por ejemplo, todos los pools utilizarían una única instancia de OPcache.

To Top