web-dev-qa-db-fra.com

Comment puis-je savoir pourquoi mon php5-fpm n'a pas pu démarrer?

j'obtiens le délai d'expiration de la passerelle 504 lorsque j'essaie d'atteindre mon serveur, une petite vérification n'a trouvé aucun journal sur les journaux php5-fpm, mais juste pour m'assurer, j'ai essayé de le redémarrer. quand j'essaye de le redémarrer:

Sudo service php5-fpm restart

je reçois [fail] mais quand je fais

Sudo service php5-fpm stop
Sudo service php5-fpm start

Je ne reçois aucune erreur.

comment puis-je enquêter s'il n'y a pas de journaux? Que puis-je faire?

10
Liad Livnat

Avez-vous vérifié votre fichier error_log pour php-fpm? L'emplacement de ce fichier doit être déclaré dans votre php-fpm.conf (dans la configuration Ubuntu est /etc/php5/fpm/php-fpm.conf, le fichier journal est/var/log/php5-fpm/log), vérifiez également votre log_level, s'il est désactivé (; log_level), veuillez l'activer et le changer en debug. Après cela, essayez de redémarrer le service php5-fpm et vérifiez vos journaux.

Vous pouvez également essayer d'exécuter php5-fpm en mode premier plan:

# php5-fpm -y /etc/php5/fpm/php-fpm.conf

Peut-être que cela vous montre quelque chose d'intéressant.

17
jamzed

Procédure de dépannage standard:

  • Vérifiez le fichier journal. Si vous ne savez pas où il se trouve, vérifiez la configuration ou pour trouver avec certitude le pid avec ps aux | grep php-fpm, alors fais lsof -p $PID | grep log (omettez le grep s'il ne montre rien).
  • 99% des fichiers journaux de temps vous montreront la cause. Sinon, recherchez un niveau de journalisation dans la configuration, augmentez-le et réessayez.
  • Il se ferme peut-être instantanément et vous ne pouvez pas obtenir le PID pour inspecter le processus. Vous pouvez également essayer de démarrer le processus au premier plan, mais cela signifie déterminer quels commutateurs de ligne de commande vous devez utiliser. Habituellement, il vous suffit de le pointer vers votre configuration existante.
  • Si ni le fichier journal ni stdout/stderr (sortie de premier plan) ne contiennent d'indices, il est temps pour strace ... mais c'est une autre publication.
4
Alex Forbes

Cette note m'a aidé: https://bugs.launchpad.net/nginx/+bug/1366651

Dans mon cas, la mise à jour vers nginx> 1.6.1 les paramètres qui sont passés à php5-fpm sont situés dans fastcgi.conf au lieu de fastcgi_params, résultant en un PHP qui renvoie toujours 200 (ok ), mais jamais de contenu, car SCRIPT_FILENAME n'est plus défini.

J'espère que cela aide aussi quelqu'un d'autre.

3

Pour moi, le problème était mon php-fpm.conf le fichier n'utilisait pas le nom de fichier de configuration par défaut - il était nommé /etc/php5/fpm/php5-fpm.conf (php5-fpm.conf contre php-fpm.conf)

php5-fpm -t  

[26-Jul-2014 22:39:16] ERROR: failed to open configuration file '/etc/php5/fpm/php-fpm.conf': No such file or directory (2)
[26-Jul-2014 22:39:16] ERROR: failed to load configuration file '/etc/php5/fpm/php-fpm.conf'
[26-Jul-2014 22:39:16] ERROR: FPM initialization failed

J'ai renommé le fichier conf en php-fpm.conf et cela a résolu le problème.

Sudo mv /etc/php5/fpm/php5-fpm.conf /etc/php5/fpm/php-fpm.conf
Sudo service php5-fpm restart
 * Restarting PHP5 FastCGI Process Manager php5-fpm                                                                           [ OK ]
2
David Thomas

Il peut arriver que lors d'une mise à niveau distante d'Ubuntu, le paquet php5-fpm soit désinstallé car php 7 utilise php-fpm à la place. essayez d'exécuter ceci sur la console:

php5-fpm

S'il n'existe pas, vous utilisez probablement déjà php 7, alors installez

apt-get install php-fpm

qui installera la version php7

0
rubo77

J'ai rencontré ce problème de l'absence de fichiers journaux, puis j'ai remarqué que j'accédais à l'URL via HTTPS au lieu de HTTP et que le protocole n'avait pas été configuré dans Nginx, donc PHP5-FPM n'obtenait pas le trafic.

Pourrait aider quelqu'un.

0
Dave Hilditch