PHP FPM возвращает HTTP 500 для всех ошибок PHP
я запускаю nginx с PHP-FPM. Моя конфигурация nginx для обработки файлов php выглядит следующим образом:
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;
}
Теперь у меня есть простой php-файл, как это:
<?php
ech "asd"
asd""
?>
Да, с очевидной ошибкой. Когда я пытаюсь получить доступ к php-файлу, вместо трассировки синтаксической ошибки я всегда получаю внутреннюю ошибку сервера HTTP 500.Я пробовал использовать error_reporting(-1);
но все равно он всегда возвращает HTTP 500. Как получить PHP для печати точной ошибки вместо возврата общего HTTP 500?
5 ответов
чтобы опубликовать более полный ответ, я использовал производственную версию php.ini, который имеет display_errors = Off. Вместо того, чтобы включить его глобально, что я делаю сейчас, для файлов, которые мне нужны отчеты об ошибках, я использую ini_set('display_errors', 'On');
в начале файла.
также я встретил проблему, и я поставил display_errors = Off
на php.ini
но это не работает. Затем я нашел php[display_errors]=off
на php-fpm.conf
, и он переопределит значение php.ini
и это работает.
ошибки отображения будут влиять только на то, что ошибки печатаются для вывода или нет.
Если у вас включены ошибки журнала, ошибки по-прежнему будут отсутствовать в журнале, если дисплей выключен, что не является ожидаемым поведением.
ожидаемое поведение, если журнал включен, ошибки найдены там. Если дисплей включен, на экране/выходе обнаруживаются ошибки. Если оба Омеги находятся на обеих.
текущие версии имеют ошибку, которая теряет это.
для Ubuntu 12.10, в файле php-fpm-pool-config:
php_flag[display_errors] = on
в php.ini-файл:
display_errors = On