Подтвердить что ты не робот

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?

4b9b3361

Ответ 1

Попробуйте найти следующую строку в php.ini:

 display_errors = Off

затем сделайте это на

Ответ 2

Чтобы отправить более полный ответ, я использовал производственную версию php.ini, у которой есть display_errors = Off. Вместо того, чтобы включать его в глобальном масштабе, то, что я делаю сейчас, для файлов, для которых мне нужна отчет об ошибках, я использую ini_set('display_errors', 'On'); в начале файла.

Ответ 3

Также я встретил проблему, и я установил display_errors = Off в php.ini, но он не работает. Затем я нашел php[display_errors]=off в php-fpm.conf, и он переопределит значение php.ini, и он будет работать.

Ответ 4

Ошибки отображения влияют только на то, что ошибки печатаются для вывода или нет.

Если у вас возникли ошибки журнала, ошибки все равно будут отсутствовать в журнале, если дисплей не выключен, что не является ожидаемым поведением.

Ожидаемое поведение: если журнал включен, там обнаружены ошибки. Если дисплей включен, ошибки отображаются на экране/выходе. Если оба находятся на erros, они находятся на обоих.

В текущих версиях есть ошибка, которая лишается этого.

Ответ 5

Для Ubuntu 12.10 в файле конфигурации php-fpm-pool-config:

php_flag[display_errors] = on

В файле php.ini:

display_errors = On

Ответ 6

Если вы устанавливаете из Remi repo php72. Настал пользователь по умолчанию и группа с apache |

перейдите к файлу www.conf, найдите его /etc/opt/remi/php72/php-fpm.d/www.conf

и изменить

user=nginx
group=nginx

перед перезапуском php fpm

systemctl restart php72-php-fpm

CENTOS REMI PHP7.2

Ответ 7

вы можете отображать ошибки следующим образом: перейдите в php.ini и найдите display_errors, вы должны увидеть display_errors = Off, просто замените Off на On, перезапустите php и запустите снова.