Как я могу заставить PHP отображать ошибку вместо того, чтобы давать мне 500 внутренних ошибок сервера [дубликат]
этот вопрос уже есть ответ здесь:
- белый экран смерти PHP 15 ответов
такого еще никогда не было. Обычно он показывает ошибку, но теперь он просто дает мне 500 внутренняя ошибка сервера. Конечно, раньше, когда он отображал ошибку, это были разные серверы. Теперь я на новом сервере (у меня есть полный корень, так что если мне нужно настроить его где-то в php.Ини, я могу.) Или, может быть, его что-то с Apache?
я мирился с этим, просто перенеся файл на другой сервер и запустив его там, чтобы найти ошибку, но это стало слишком утомительным. Есть ли способ это исправить?
7 ответов:
Регистрация
error_reporting
,display_errors
иdisplay_startup_errors
параметры . Они должны быть установлены вE_ALL
и"On"
соответственно (хотя вы не должны использоватьdisplay_errors
на рабочем сервере, поэтому отключите это и используйтеlog_errors
вместо этого, если / когда вы развернете его). Вы также можете изменить эти настройки (кромеdisplay_startup_errors
) в самом начале вашего скрипта, чтобы установить их во время выполнения (хотя вы не можете поймать всех ошибок этот способ):error_reporting(E_ALL); ini_set('display_errors', 'On');
после этого перезагрузить сервер.
стоит отметить, что если ваша ошибка происходит из-за .htaccess, например отсутствует rewrite_module, вы все равно увидите 500 внутренней ошибки сервера.
используйте " php-l
" (это 'L') из командной строки для вывода синтаксической ошибки, которая может привести к тому, что PHP выдаст ошибку status 500. Он будет выводить что-то вроде: ошибка синтаксического анализа PHP: синтаксическая ошибка, неожиданная'} ' в в строке 18
включение отображения ошибок в PHP код не работает для меня. В моем случае, используя NGINX и PHP-FMP, я отслеживаю файл журнала с помощью grep. Например, я знаю имя файла mycode.php вызывает ошибку 500, но не знаю, какая линия. Из консоли я использую это:
/var/log/php-fpm# cat www-error.log | grep mycode.php
и у меня есть выход:
[04-Apr-2016 06:58:27] PHP Parse error: syntax error, unexpected ';' in /var/www/html/system/mycode.php on line 1458
Это помогает мне найти строку, где у меня опечатка.
постарайтесь не идти
MAMP > conf > [your PHP version] > php.ini
но
MAMP > bin > php > [your PHP version] > conf > php.ini
и изменить его там, это сработало для меня...
будьте осторожны, чтобы проверить, если
display_errors
или
error_reporting
активен (не комментарий) где-то еще в ini-файле.
мой сервер отказался отображать ошибки после обновления Kubuntu 16.04 - я проверил php.Ини много раз ... оказалось, что там был diplay_errors = off; около 100 строк ниже моего
display_errors = on;
Так что помните, что последний считается!