Как отобразить детали внутренней ошибки сервера PHP? - PullRequest
5 голосов
/ 17 ноября 2009

Я установил приложение PHP на веб-сервер общего хостинга. Я получаю 500 Internal Server Error. Кажется, у меня нет доступа к каким-либо файлам журналов, поэтому я бы хотел, чтобы на странице ошибок было временно предоставлено подробное описание ошибки.

Я знаю, как это сделать в ASP.Net, но я не очень знаком с PHP.

Ответы [ 5 ]

16 голосов
/ 17 ноября 2009

попробовать:

error_reporting(E_ALL);
ini_set('display_errors', '1');

вверху файла.

4 голосов
/ 17 ноября 2009

Если решение Джереми Моргана не работает, попробуйте создать свой собственный файл журнала, используя set_error_handler(). Обычно некоторой информации о состоянии приложения ($ GLOBALS и т. Д.) Может быть достаточно, но PHP будет (по крайней мере, пытаться) передать вам всевозможную информацию о том, где произошла ошибка и что это за ошибка.

Также попробуйте использовать метод отладки «Разделяй и властвуй». Начните с примерно половины вашего файла, а затем разверните вверх, если он все еще падает, или вниз, если он выполняется до этой точки. Если вы не хотите удалять свой код, либо /* comment out */ код, который нужно вырезать, либо используйте специальную директиву __halt_compiler(), чтобы PHP игнорировал все оставшиеся данные в файле.

Наконец, одна вещь, которая сводила меня с ума, пытаясь это исправить, это то, что называется Byte Order Mark . PHP оценивал эту спецификацию в начале файла, заставляя ее отправлять выходные данные и вызывая проблемы при попытке отправить заголовки и тому подобное. Вероятно, не в чем ваша проблема, а в знаниях, которые стоит иметь.

2 голосов
/ 17 ноября 2009

Я сомневаюсь, что вы получаете эту ошибку от PHP. На виртуальном хостинге более вероятно, что конфигурация приложения .htaccess по умолчанию вызывает ошибку.

Полагаю, это будет mod_rewrite без набора RewriteBase.

1 голос
/ 17 ноября 2009

посмотрите на значения в phpinfo();, чтобы увидеть, торчит ли что-нибудь ... поместите это где-нибудь в коде, и оно должно отобразить кучу информации о версии php

0 голосов
/ 17 ноября 2009

«Внутренняя ошибка сервера» не является ошибкой PHP (как следует из названия). Поэтому вам нужно либо просмотреть журналы вашего сервера (к которым у вас нет доступа, как кажется), либо вы ничего не можете с этим поделать из PHP.

...