¿Qué es PHP-FPM? Un PHP para webs de alto tráfico

PHP-FPM

PHP-FPM (FastCGI Process Manager, en inglés) es la implementación alternativa más popular de PHP FastCGI. PHP (acrónimo de PHP: Hypertext Preprocessor) es uno de los lenguajes de programación de código abierto más populares de Internet, que se utiliza para desarrollo web en plataformas como Magento, WordPress o Drupal. Aunque inicialmente se diseñó para preprocesar texto plano en UTF-8.

PHP, creado por Rasmus Lerdorf en 1995, fue uno de los primeros lenguajes que se podía incorporar en código HTML, sin necesidad de llamar a archivos externos. Este lenguaje de propósito general de código del lado del servidor ha ido evolucionando para que sea soportado por cualquier sistema operativo o plataforma web. Además, PHP sigue evolucionando y está publicado bajo la licencia PHP, que es incompatible con la Licencia Pública General de GNU debido a las restricciones del uso del término PHP.

Qué es PHP-FPM y características

PHP-FPM es la implementación alternativa más popular de PHP FastCGI, que cuenta con características adicionales realmente útiles para sitios web de alto tráfico. Estas son algunas de ellas:

  • Gestión avanzada que permite detener/arrancar procesos fácilmente.
  • Posibilidad de iniciar hilos de procesos con diferentes uid/gid/chroot/environment y distintos php.ini; sustituye a safe_mode.
  • Registro stdout y stderr.
  • Reinicio de emergencia en caso de destrucción accidental del caché opcode.
  • Soporte acelerado de subidas.
  • Configuración de variable slowlog; para detectar qué funciones tardan en ejecutarse más de lo habitual.
  • Basado en archivos de configuración php.ini.
  • Mejora de FastCGI, como fastcgi_finish_request(); una función especial para detener y descargar todos los datos mientras se continúa haciendo un proceso más largo como la conversión de vídeos o el procesamiento de estadísticas.
  • Estadísticas básicas (similar al módulo mod_status de Apache). ¡NUEVO!

Nginx y PHP-FPM: los compañeros ideales

Nginx como servidor web de alto rendimiento estable, y con un consumo de recursos muy bajo, es el compañero ideal de PHP-FPM. Nginx tiene una arquitectura asíncrona que es mucho más escalable, basada en eventos. Además, al usar Nginx con PHP-FPM se mejora la eficiencia a nivel de consumo de memoria.

PHP funciona como un servicio separado al usar PHP-FPM. Al usar esta versión de PHP como intérprete del lenguaje, las peticiones se procesan a través de un socket TCP/IP; de modo que el servidor web Nginx solo maneja las peticiones HTTP y PHP-FPM interpreta el código PHP. El hecho de tener dos servicios separados es clave para ganar en eficiencia.

HHVM: una antigua alternativa a PHP-FPM

En la actualidad, HHVM ya no se utiliza. La llegada de la última versión de PHP junto con FPM ha conseguido igualar, e incluso mejorar, el rendimiento de este lenguaje sin necesidad de usar HHVM —compatible con la mayoría de funciones de PHP 7—.

Hasta que llegó PHP 7, el procesador de PHP HHVM que desarrolló Facebook y fue liberado en GitHub con Licencias PHP y Zend se utilizó mucho. HHVM (HipHop Virtual Machine, en inglés) es una máquina virtual de código abierto basado en compilador JIT (Just-in-Time), el cual sirve como un motor de ejecución para los lenguajes PHP y Hack.

Usando el principio del compilador JIT, HHVM ejecuta código PHP o Hack en código Bytecode HipHop intermedio; un código que luego se traduce en código máquina, optimizado y ejecutado nativamente.​ Esto contrasta con la ejecución interpretada habitual de PHP en la que el Motor Zend transforma código fuente PHP en opcode (forma de bytecode); que la CPU virtual del motor Zend se encarga de ejecutar.

PHP 7 y futuras versiones de PHP

La llegada de PHP 7 supuso un gran aumento del rendimiento con respecto a versiones de PHP anteriores. Esto hizo que aplicaciones como HHVM, que se utilizaban para acelerar los servicios, quedaran obsoletas. En este comparador de PHP, puedes visualizar las diferencias entre las diversas versiones de PHP para varias aplicaciones. La comparativa muestra cómo el rendimiento casi se ha doblado desde PHP 5.

Para la siguiente versión importante, PHP 8, el desarrollo parece estar más enfocado a crear nuevas funcionalidades que a mejorar mucho la velocidad. De modo que, para evitar que la aplicación deje de funcionar tras la actualización, a la hora de actualizar hay que tener en cuenta la compatibilidad de las aplicaciones con los cambios que incorpore la nueva versión.

WordPress con PHP-FPM

Si tienes un plataforma de contenidos, diario online o, simplemente, un WordPress que necesita un alto rendimiento y que recibe miles o millones de visitas, está claro que necesitas un Nginx con soporte PHP-FPM. Esto te permitirá configurar de un modo mucho más eficiente la ejecución del código PHP de tu gestor de contenidos WordPress.

Magento con PHP-FPM

La plataforma de comercio electrónico Magento también se integra muy bien con Nginx y PHP-FPM. De hecho, para conseguir que tu tienda online tenga el mejor rendimiento, además de usar balanceadores y cachés, es clave utilizar este popular servidor web junto con el soporte para PHP-FPM.

Stackscale puede ayudarte con soluciones de infraestructura y Cloud Privado y también con sysadmin de tu Magento o WordPress.

Si te ha gustado, compártelo en redes sociales

Configuración de las cookies
Stackscale, Grupo Aire logo

Al aceptar las cookies acepta voluntariamente el tratamiento de sus datos. Esto también incluye, por un tiempo limitado, su consentimiento de acuerdo con el Artículo 49 (1) (a) RGPD para el procesamiento de datos fuera del EEE, por ejemplo, en los EE.UU. En estos países, a pesar de una cuidadosa selección y obligación de los proveedores de servicios, no se puede garantizar el alto nivel europeo de protección de datos.

Si los datos se transfieren a los EE.UU., existe, por ejemplo, el riesgo de que las autoridades de los EE.UU. procesen estos datos con fines de control y supervisión sin que estén disponibles recursos legales efectivos o sin que se puedan hacer valer todos los derechos del interesado. Puede revocar su consentimiento en cualquier momento.

Cookies necesarias

Son aquellas que ayudan a hacer una página web utilizable activando funciones básicas como la navegación en la página y el acceso a áreas seguras de la página web. La página web no podrá funcionar adecuadamente sin estas cookies. Le informamos de que puede configurar su navegador para bloquear o alertar sobre estas cookies, sin embargo, es posible que determinadas áreas de la página web no funcionen. Estas cookies no almacenan ninguna información de identificación personal.

- moove_gdpr_popup

Cookies analíticas

Son aquéllas que permiten al Editor de las mismas, el seguimiento y análisis del comportamiento de los usuarios de los sitios web a los que están vinculadas. La información recogida mediante este tipo de cookies se utiliza en la medición de la actividad de los sitios web, aplicaciones o plataformas y para la elaboración de perfiles de navegación de los usuarios de dichos sitios, aplicaciones y plataformas, con el fin de introducir mejoras en función del análisis de los datos de uso que hacen los usuarios del servicio.

Google Analytics: Registra una identificación única que se utiliza para generar datos estadísticos acerca de cómo utiliza el visitante el sitio web. La información generada por la cookie sobre su uso de este sitio web generalmente se transmite a un servidor de Google en los EE. UU. y es almacenada allí por Google LLC, 1600 Amphitheatre Parkway Mountain View, CA 94043, EE.UU.

- _dc_gtm_UA-30121999-1

- _ga_C3BSYFJ6DM

- _gat_gtag_UA_30121999_1

- _ga

- _gcl_au

- _gid