¿Cómo verificar si PHP-FPM se está ejecutando correctamente?

2 minutos de lectura

Avatar de usuario de Marty Wallace
Marty Wallace

La documentación en el sitio web de php fpm dice que php fpm es parte de coe php a partir de 5.3.3

Estoy ejecutando 5.3.10, ¿cómo puedo comprobar que funciona correctamente? Pensé que era un servicio que se ejecutaba en un puerto.

Suponiendo que está en Linux, verifique si php-fpm se está ejecutando buscando en la lista de procesos:

ps aux | grep php-fpm

Si se ejecuta a través de IP (a diferencia de un socket de Unix), también puede verificar el puerto:

netstat -an | grep :9000

O usando nmap:

nmap localhost -p 9000

Por último, he leído que puede solicitar el estado, pero en mi experiencia esto ha resultado poco confiable:

/etc/init.d/php5-fpm status

  • ¿PHPINFO() te avisa? Puedo ver que php-fpm se está ejecutando, pero no estoy convencido de que esté configurado correctamente porque phpinfo() aún muestra mod_php7 y mod_fastcgi. ¿Es posible que ambos estén corriendo?

    – Adam Patterson

    21 de febrero de 2017 a las 17:44

avatar de usuario de prosti
prosti

Para php7.0-fpm llamo:

service php7.0-fpm status

php7.0-fpm inicio/ejecutando, proceso 25993

Ahora mira por la parte buena. El nombre del proceso es en realidad php-fpm7.0

echo `/bin/pidof php-fpm7.0`

26334 26297 26286 26285 26282

Avatar de usuario de Jason
jason

Así es como puede hacerlo con un socket en php-fpm 7

install socat
apt-get install socat

#!/bin/sh

  if echo /dev/null | socat UNIX:/var/run/php/php7.0-fpm.sock - ; then
    echo "$home/run/php-fpm.sock connect OK"
  else
    echo "$home/run/php-fpm.sock connect ERROR"
  fi

También puede verificar si el servicio se está ejecutando de esta manera.

service php7.0-fpm status | grep running

regresará

Activo: activo (en ejecución) desde el dom 2017-04-09 12:48:09 PDT; hace 48s

avatar de usuario de bitkahuna
bitkahuna

en caso de que ayude a alguien, en amilinux, con php5.6 y php-fpm instalados, es:

sudo /etc/init.d/php-fpm-5.6 status

PHP-FPM es un servicio que genera nuevos procesos PHP cuando es necesario, generalmente a través de un módulo cgi rápido como nginx. Puede saber (con un margen de error) simplemente revisando el script init.d, por ejemplo, “sudo /etc/init.d/php-fpm status”

El puerto o socket de archivos Unix que se utilice depende de la configuración, pero a menudo es solo el puerto TCP 9000, es decir, 127.0.0.1:9000.

La mejor manera de saber si se está ejecutando correctamente es tener nginx en ejecución y configurar un host virtual que pase cgi rápidamente a PHP-FPM, y simplemente verificarlo con wget o un navegador.

El script bash para el reinicio automático de php-fpm:

#!/bin/bash
is_running=`service php7.4-fpm status | grep running`
if [[ ! $is_running ]]
then
    echo 'php7.4-fpm is running'
else
    echo 'php7.4-fpm is not running';
fi

Configuración de cron para la comprobación cada 5 minutos (/root/check_php7.4_status.sh – ruta al script bash):

*/5 * * * * /root/check_php7.4_status.sh 2>&1 >> '/root/check_php7.4_status.log'

¿Ha sido útil esta solución?

¿Cómo verificar si PHP-FPM se está ejecutando correctamente?

2 minutos de lectura

Avatar de usuario de Marty Wallace
Marty Wallace

La documentación en el sitio web de php fpm dice que php fpm es parte de coe php a partir de 5.3.3

Estoy ejecutando 5.3.10, ¿cómo puedo comprobar que funciona correctamente? Pensé que era un servicio que se ejecutaba en un puerto.

Suponiendo que está en Linux, verifique si php-fpm se está ejecutando buscando en la lista de procesos:

ps aux | grep php-fpm

Si se ejecuta a través de IP (a diferencia de un socket de Unix), también puede verificar el puerto:

netstat -an | grep :9000

O usando nmap:

nmap localhost -p 9000

Por último, he leído que puede solicitar el estado, pero en mi experiencia esto ha resultado poco confiable:

/etc/init.d/php5-fpm status

  • ¿PHPINFO() te avisa? Puedo ver que php-fpm se está ejecutando, pero no estoy convencido de que esté configurado correctamente porque phpinfo() aún muestra mod_php7 y mod_fastcgi. ¿Es posible que ambos estén corriendo?

    – Adam Patterson

    21 de febrero de 2017 a las 17:44

avatar de usuario de prosti
prosti

Para php7.0-fpm llamo:

service php7.0-fpm status

php7.0-fpm inicio/ejecutando, proceso 25993

Ahora mira por la parte buena. El nombre del proceso es en realidad php-fpm7.0

echo `/bin/pidof php-fpm7.0`

26334 26297 26286 26285 26282

Avatar de usuario de Jason
jason

Así es como puede hacerlo con un socket en php-fpm 7

install socat
apt-get install socat

#!/bin/sh

  if echo /dev/null | socat UNIX:/var/run/php/php7.0-fpm.sock - ; then
    echo "$home/run/php-fpm.sock connect OK"
  else
    echo "$home/run/php-fpm.sock connect ERROR"
  fi

También puede verificar si el servicio se está ejecutando de esta manera.

service php7.0-fpm status | grep running

regresará

Activo: activo (en ejecución) desde el dom 2017-04-09 12:48:09 PDT; hace 48s

avatar de usuario de bitkahuna
bitkahuna

en caso de que ayude a alguien, en amilinux, con php5.6 y php-fpm instalados, es:

sudo /etc/init.d/php-fpm-5.6 status

PHP-FPM es un servicio que genera nuevos procesos PHP cuando es necesario, generalmente a través de un módulo cgi rápido como nginx. Puede saber (con un margen de error) simplemente revisando el script init.d, por ejemplo, “sudo /etc/init.d/php-fpm status”

El puerto o socket de archivos Unix que se utilice depende de la configuración, pero a menudo es solo el puerto TCP 9000, es decir, 127.0.0.1:9000.

La mejor manera de saber si se está ejecutando correctamente es tener nginx ejecutándose y configurar un host virtual que pase cgi rápidamente a PHP-FPM, y simplemente verifíquelo con wget o un navegador.

El script bash para el reinicio automático de php-fpm:

#!/bin/bash
is_running=`service php7.4-fpm status | grep running`
if [[ ! $is_running ]]
then
    echo 'php7.4-fpm is running'
else
    echo 'php7.4-fpm is not running';
fi

Configuración de cron para la comprobación cada 5 minutos (/root/check_php7.4_status.sh – ruta al script bash):

*/5 * * * * /root/check_php7.4_status.sh 2>&1 >> '/root/check_php7.4_status.log'

¿Ha sido útil esta solución?