
PHP-FPM
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.
- 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.
¿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-FPM Apache 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.