Как настроить PHP для отображения подробных ошибок вместо страницы с ошибкой 500?

У меня есть приложение PHP, развернутое на моем хостинге IIS, и я всегда получаю общие страницы IIS «ошибка 500» вместо подробных страниц ошибок.

Я понимаю, что мне нужно изменить некоторый файл php.ini (из этот вопрос).

Кажется, что display_errors установлен правильно:

echo ini_get('display_errors');

выходы 1.

Я также попытался установить display_errors и error_reporting в функции, которая вызывает ошибку (я знаю, что проблема заключается в конкретной функции, потому что я вручную изменил ее).

function sendEmail( $aForm, $sFile = 'messages.tpl', $sTargetEmail = null ){ 
  error_reporting(E_ALL);
  ini_set('display_errors', 'On');
  //rest of the function

РЕДАКТИРОВАТЬ: я знаю, что должен был установить эти значения в каком-то файле php.ini - как я могу указать значения php.ini на общем хостинге, когда у меня есть доступ только к папке моего приложения через FTP?

Как я могу определить детали ошибки?


person Marek    schedule 17.07.2010    source источник
comment
Регистрируется ли фактическая ошибка в журнале ошибок сервера? (Раньше я работал на сервере, где я просто не мог отобразить соответствующие ошибки - иногда вывод был просто пустым! Однако журнал ошибок сообщал об этом правильно - просто больно иметь продолжать проверять!)   -  person MrWhite    schedule 17.07.2010
comment
Предположительно, у вас включена функция error_reporting(E_ALL)? Вы не получаете сообщения об ошибках вообще правильно? Или это связано только с вашим скриптом sendMail()? Что касается mail(), в этом отношении есть некоторые существенные различия между IIS и Apache, которые могут быть ответственными?   -  person MrWhite    schedule 17.07.2010


Ответы (1)


Мне кажется, что у вас включен «display_errors», но ваш хостинг-провайдер перенаправляет вашу страницу с ошибкой 500 на пользовательскую страницу, которая не отображает ошибки. Не лучшая настройка, но я бы связался с вашим хостинг-провайдером в надежде, что они смогут пролить свет на проблему. В IIS могут быть файлы .user.ini, см. http://learn.iis.net/page.aspx/745/enable-per-site-php-configuration-on-iis-60-и-iis-7-и-выше/ опять же, только ваш хостинг-провайдер будет знать, настроено ли это.

person Dan-Dev    schedule 23.10.2011