PHP-FPM no se inicia automáticamente después de reiniciar

15

Estoy ejecutando PHP-FPM y Nginx, ocasionalmente, por cualquier razón, tengo que reiniciar el servidor. Una vez que el servidor se está ejecutando nuevamente, el servicio nginx se inicia automáticamente, sin embargo, PHP-FPM no lo hace. Esto se puede ver cuando ejecuto el comando sudo /etc/init.d/php-fpm restartinmediatamente después de un reinicio y obtengo el resultado:

$ sudo /etc/init.d/php-fpm restart
Stopping php-fpm:                                          [FAILED]
Starting php-fpm:                                          [  OK  ]

¿Es este comportamiento esperado? ¿Cuál es la mejor manera de hacer que PHP-FPM se inicie automáticamente? ¿Hay alguna opción de configuración en alguna parte, o tengo que agregar el comando a uno de los scripts de inicio de Linux?

Gracias.

SteveEdson
fuente
¿Qué distribución de Linux estás usando? ¿Cómo instaló php-fpm? ¿De un paquete o de fuentes?
Tonin
Se está ejecutando en una instancia de Amazon EC2 Linux, PHP-FPM se instaló usandoyum install -y php-fpm
SteveEdson

Respuestas:

27

Así que configúralo para comenzar en el arranque:

chkconfig php-fpm on
Michael Hampton
fuente
1
Tan simple como eso, ¡genial! Saludos
SteveEdson
4

Me encontré con este mismo problema en Ubuntu 16.04 y dejo mi respuesta aquí para futuros usuarios de Google que se topan con el problema. Como chkconfiges principalmente específico de CentOS, obviamente no existe en Ubuntu. Aparentemente, para obtener un PHP ( php-fpmSAPI) personalizado para comenzar en el arranque systemd, que es nuevo en Ubuntu 16.04 (anteriormente, Upstart), debe registrarse con el sistema más allá de simplemente colocar el init.dscript /etc/init.d/. Para registrar el script, ejecuté:

update-rc.d php-fpm defaults

A rebooty posterior ps auxconfirmaron que php-fpmefectivamente estaba comenzando en el arranque. También se agregó a /etc/init.d/.depend.start.

Otros pensamientos: Ubuntu Upstart fue lo suficientemente bueno para que nunca tuve que ejecutar update-rc.ddespués de colocar un script init.d, simplemente funcionó. Se olvidó por completo de ese comando.

CubículoSoft
fuente
2
La pregunta original es sobre Amazon Linux, no puedo decir cuántos usuarios de Ubuntu lo verán. En cuanto a 16.04 y systemd, lo que hay que hacer es usar una unidad systemd adecuada en lugar de la secuencia de comandos de inicio antigua o antigua. Debería poder encontrar una unidad systemd utilizable con el paquete de distribución, o en otro lugar.
Michael Hampton
Soy un usuario de Ubuntu 14.04 y esto me ayudó, ¡gracias! PD: sudopodría ser necesario para ese comando.
Edson Horacio Junior