web-dev-qa-db-fra.com

PHP FPM renvoie HTTP 500 pour tous PHP les erreurs

J'utilise 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 elle retourne toujours HTTP 500. Comment obtenir PHP à imprimer l'erreur exacte au lieu de renvoyer un HTTP générique 500?

17
ErJab

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

 display_errors = Off

alors fais le

31
Young

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

8
ErJab

De plus, j'ai rencontré le problème et j'ai mis display_errors = Off dans php.ini mais cela ne fonctionne pas. Ensuite, j'ai trouvé le php[display_errors]=off dans php-fpm.conf, et il remplacera la valeur de php.ini et cela fonctionnera.

5
yaronli

Les erreurs d'affichage n'affecteront que le fait qu'elles soient imprimées en sortie ou non.

Si des erreurs de journal sont activées, elles seront toujours absentes du journal à moins que l'affichage ne soit désactivé, ce qui ne correspond pas au comportement attendu.

Le comportement attendu est que si le journal est activé, les erreurs y sont trouvées. Si l'affichage est activé, des erreurs sont détectées à l'écran/à la sortie. Si les deux sont sur des erros sont trouvés sur les deux.

Les versions actuelles ont un bogue qui l'oublie.

1
Luis Ferro

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

php_flag[display_errors] = on

Dans le fichier php.ini:

display_errors = On
1
user2009092

Si vous installez à partir de Remi repo php72. Il vient utilisateur et groupe par défaut avec Apache |

accédez à votre fichier www.conf pour localiser /etc/opt/remi/php72/php-fpm.d/www.conf.

et changer

user=nginx
group=nginx

avant de redémarrer votre php fpm

systemctl restart php72-php-fpm

CENTOS REMI PHP7.2

0
Turan Zamanlı