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

10

j'obtiens le délai d'attente 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 le 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?

Liad Livnat
la source

Réponses:

17

Avez-vous vérifié le fichier php-fpm dans votre fichier error_log ? 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 pour le débogage . 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.

coincé
la source
1
Dans mon cas, cette commande a démarré php5-fpm alors qu'elle service php5-fpm startne l'a pas fait. Merci!
David Thomas
Davis, cela semble fonctionner pour moi +1! Mais .. jamzed m'a donné la solution, j'ai trouvé une erreur +1! Merci à tous!
Tenaciousd93
Si vous démarrez FPM à l'aide d'une tâche upstart, les journaux de démarrage php-fpm seront écrits dans / var / log / upstart /
Ashwin Date
Pour l'utilisation de php7.0php-fpm7.0 -F -c /etc/php/7.0/fpm/php-fpm.conf
Yadvendar
4

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 ps aux | grep php-fpm, alors faites 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.
Alex Forbes
la source
+1 belle façon de trouver le fichier journal!
deweydb
3

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 le SCRIPT_FILENAME n'est plus défini.

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

Sebastiaan van Doorn
la source
2

Pour moi, le problème était que mon php-fpm.conffichier n'utilisait pas le nom de fichier de configuration par défaut - il était nommé /etc/php5/fpm/php5-fpm.conf( php5-fpm.confvs 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.confet 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 ]
David Thomas
la source
0

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.

Dave Hilditch
la source
0

Il peut arriver que lors d'une mise à niveau distante d'Ubuntu, le package 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

rubo77
la source