PHP FPM renvoie HTTP 500 pour toutes les erreurs PHP

j'exécute Nginx avec PHP-FPM. Ma configuration nginx pour gérer les fichiers php ressemble à ceci:

location  ~ .php$ {
            set $php_root /home/me/www;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $php_root$fastcgi_script_name;
            include /etc/nginx/fastcgi_params;
        }

Maintenant, j'ai un simple fichier php comme ceci:

<?php
     ech "asd"
     asd""
?>

Oui, avec une erreur évidente. Lorsque j'essaie d'accéder au fichier php, au lieu de tracer une erreur de syntaxe, J'obtiens toujours une erreur de serveur interne HTTP 500.J'ai essayé d'utiliser error_reporting(-1); mais il renvoie toujours HTTP 500. Comment faire pour que PHP imprime l'erreur exacte au lieu de renvoyer un HTTP 500 Générique?

17
demandé sur ErJab 2010-02-09 08:57:36

5 réponses

Essayer de trouver la ligne suivante dans votre php.ini:

 display_errors = Off

puis se rendre sur

30
répondu Young 2012-03-26 08:53:43

Pour poster une réponse plus complète, j'avais utilisé une version de production de php.ini qui a display_errors = Off. Au lieu de l'activer globalement, ce que je fais maintenant est, pour les fichiers sur lesquels j'ai besoin d'un rapport d'erreur, j'utilise ini_set('display_errors', 'On'); au début du fichier.

8
répondu ErJab 2010-03-15 09:19:37

J'ai aussi rencontré le problème, et j'ai mis display_errors = Offphp.ini mais ça fonctionne pas. Puis j'ai trouvé l' php[display_errors]=offphp-fpm.conf, et il remplace la valeur de php.ini et ça fonctionne.

4
répondu yaronli 2016-03-16 13:21:30

les erreurs D'affichage affecteront seulement le fait que les erreurs sont imprimées à la sortie ou non.

si vous avez des erreurs de journalisation activées, les erreurs seront toujours absentes de la journalisation à moins que l'affichage soit désactivé, ce qui n'est pas le comportement attendu.

le comportement attendu est que si le log est activé, les erreurs s'y trouvent. Si l'affichage est activé, les erreurs se trouvent sur l'écran/la sortie. Si les deux sont sur des erreurs sont trouvées sur les deux.

les versions actuelles ont un bug qui l'annule.

1
répondu Luis Ferro 2012-08-22 10:14:26

Pour Ubuntu 12.10, dans le fichier php-fpm-pool-config:

php_flag[display_errors] = on

en php.fichier ini:

display_errors = On
1
répondu user2009092 2016-03-16 13:21:54