PHP-FPM, FastCGI Process Manager, es una implementación avanzada de FastCGI para manejar aplicaciones php de manera más eficiente y escalable. En términos simples, es un administrador de procesos que permite que un servidor web (como Apache o Nginx) ejecute scripts php de forma rápida y con mejor control sobre los recursos.
¿Qué hace PHP-FPM?
Intermediario entre el servidor web y php: En lugar de que el servidor web ejecute php directamente, PHP-FPM actúa como un "servicio" separado que procesa los scripts php: y devuelve los resultados al servidor web.
Gestión de procesos: Crea y administra un grupo (pool) de procesos php pre-cargados, listos para manejar solicitudes. Esto reduce el tiempo de espera porque no hay que iniciar un proceso nuevo por cada solicitud.
Escalabilidad: Permite configurar cuántos procesos php están activos, cómo se reciclan y cómo manejan la carga, lo que lo hace ideal para sitios con mucho tráfico.
¿Cómo funciona?
El servidor web recibe una solicitud para un archivo php.
En lugar de procesarlo internamente, lo pasa a PHP-FPM a través de FastCGI.
PHP-FPM ejecuta el script, genera el resultado (como HTML) y lo devuelve al servidor web, que lo envía al cliente.
Y esto nos lleva a
Sin PHP-FPMApache usa "mod_php", que carga php en cada proceso de Apache, consumiendo más memoria.
Con PHP-FPM Los procesos php están separados, y el servidor web solo actúa como intermediario, siendo más ligero.
Ventajas de PHP-FPM
Rendimiento: Más rápido que "mod_php" en Apache porque reutiliza procesos.
Flexibilidad: Se puede ajustar el número de procesos (mínimo, máximo, inactivos) según tus necesidades.
Estabilidad: Si un proceso php falla, no afecta al servidor web.
Compatibilidad: Funciona bien con Nginx (que no tiene "mod_php") y también con Apache.
*"mod_php" es un módulo de Apache que permite a Apache interpretar archivos php