
Мы используем PHP 5.2.5 на сервере IIS 7, и у нас возникли проблемы с отображением ошибок PHP... В настоящее время при возникновении ошибки PHP сервер возвращает ошибку 500 с сообщением «Страница не может быть отображена, поскольку произошла внутренняя ошибка сервера».
Это может быть хорошей настройкой для рабочих веб-сайтов, но это довольно раздражает на сервере разработки... ;-)
Я пробовал настроить php.ini
отображение ошибок на экране, а также их запись в определенную папку, но, похоже, сервер перехватывает все ошибки заранее и предотвращает их обработку средствами PHP...
Кто-нибудь знает, что нужно сделать, чтобы IIS отображал ошибки PHP на экране? Буду признателен за любые ссылки, советы или руководства по теме!
решение1
Просто чтобы еще раз проверить, установлено ли у вас ведение журнала на error_reporting = E_ALL
, и display_errors = On
в вашем php.ini
? Обычно этого достаточно для отображения этих ошибок в IIS 7.
Далее, взгляните на настройки IIS, так как они могут быть настроены на отображение сообщений об ошибках только локально. В редакторе конфигурации IIS 7 это находится в system.webServer->httpErrors. Вам нужно будет изменить errorMode с DetailedLocalOnly на Detailed. Очевидно, что теперь это означает, что любой, кто просматривает ваш сайт, сможет увидеть ошибку.
Кроме того, если вы хотите сохранить их локально, вы можете использовать удаленный рабочий стол, чтобы войти на сервер и запустить приложение оттуда, если это возможно.
решение2
Хотел только добавить, что "existingResponse" должен быть установлен на "PassThrough". Я не получал никаких реальных сообщений об ошибках без этой дополнительной настройки.
решение3
Это можно легко сделать с помощью графического интерфейса IIS Manager. Выберите свой сайт и дважды щелкните «Страницы ошибок». Затем нажмите «Изменить параметры функций...» и выберите опцию «подробные ошибки» вместо стандартной «подробные ошибки для локальных запросов и пользовательские страницы ошибок для удаленных запросов». Вуаля, все просто!
решение4
Я попробовал это, и это не сработало. В частности, "Редактор конфигурации" мне нужно было сохранить "существующий ответ" на "авто".
Однако я обнаружил, что если вы используете FastCGI, вам нужно зайти в диспетчер IIS -> веб-сайт по умолчанию -> FastCGI->, затем выбрать c:\php\php-cgi-.exe
и «изменить..».
В разделе «Стандартный режим ошибок» вам необходимо изменить ReturnGeneric500
наReturnStdErrIn500
Это отобразит ошибки PHP, если они включены в PHP.INI или через настройки в коде PHP.