PHP-FPM ne démarre pas automatiquement après le redémarrage

15

J'utilise PHP-FPM et Nginx, parfois, pour une raison quelconque, je dois redémarrer le serveur. Une fois que le serveur fonctionne à nouveau, le service nginx démarre automatiquement, mais pas PHP-FPM. Cela peut être vu lorsque j'exécute la commande sudo /etc/init.d/php-fpm restartimmédiatement après un redémarrage et que j'obtiens le résultat:

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

Est-ce un comportement attendu? Quelle est la meilleure façon de faire démarrer automatiquement PHP-FPM? Y a-t-il une option de configuration n'importe où, ou dois-je ajouter la commande à l'un des scripts de démarrage Linux?

Merci.

SteveEdson
la source
Quelle distribution Linux utilisez-vous? Comment avez-vous installé php-fpm? À partir d'un package ou de sources?
Tonin
Il fonctionne sur une instance Linux Amazon EC2, PHP-FPM a été installé à l'aide deyum install -y php-fpm
SteveEdson

Réponses:

27

Alors configurez-le pour démarrer au démarrage:

chkconfig php-fpm on
Michael Hampton
la source
1
Aussi simple que ça, génial! Acclamations
SteveEdson
4

Je viens de rencontrer ce problème sur Ubuntu 16.04 et je laisse ma réponse ici aux futurs utilisateurs de Google qui tombent sur le problème. Étant donné qu'il chkconfigest principalement spécifique à CentOS, il n'existe évidemment pas sur Ubuntu. Apparemment, pour obtenir un PHP personnalisé ( php-fpmSAPI) pour démarrer au démarrage systemd, qui est nouveau pour Ubuntu 16.04 (précédemment, Upstart), il doit être enregistré auprès du système au-delà de la simple suppression du init.dscript /etc/init.d/. Pour enregistrer le script, j'ai couru:

update-rc.d php-fpm defaults

A rebootet les suivants ont ps auxconfirmé que cela php-fpmcommençait effectivement au démarrage. Il a également été ajouté à /etc/init.d/.depend.start.

Autres réflexions: Ubuntu Upstart était assez sympa pour que je n'ai jamais eu à courir update-rc.daprès avoir placé un script init.d - ça a juste fonctionné. J'ai complètement oublié cette commande.

CubicleSoft
la source
2
La question d'origine étant sur Amazon Linux, je ne peux pas dire combien d'utilisateurs d'Ubuntu le verront. Comme pour 16.04 et systemd, la chose à faire est d'utiliser une unité systemd appropriée plutôt que le script upstart à l'ancienne ou l'ancien script init. Vous devriez pouvoir trouver une unité systemd utilisable avec le package distro, ou ailleurs.
Michael Hampton
Je suis un utilisateur d'Ubuntu 14.04 et cela m'a aidé, merci! PS: sudopourrait être nécessaire pour cette commande.
Edson Horacio Junior du