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?
5 réponses
Essayer de trouver la ligne suivante dans votre php.ini
:
display_errors = Off
puis se rendre sur
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.
J'ai aussi rencontré le problème, et j'ai mis display_errors = Off
php.ini
mais ça fonctionne pas. Puis j'ai trouvé l' php[display_errors]=off
php-fpm.conf
, et il remplace la valeur de php.ini
et ça fonctionne.
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.
Pour Ubuntu 12.10, dans le fichier php-fpm-pool-config:
php_flag[display_errors] = on
en php.fichier ini:
display_errors = On