У меня довольно старый процедурный php-сайт, работающий на сервере IIS7.5 — он находится на коробке Windows просто потому, что он работает рядом с классическим ASP-сайтом.
Сайт Classic ASP имеет настроенную страницу ошибки 500, которая использует Server.GetLastError для вывода сведений об ошибке, которая вызвала страницу. Эти детали затем отправляются мне по электронной почте.
В PHP я нашел error_get_last()
, что должно сделать подобное, но я не уверен, как это настроить. У кого-нибудь есть опыт использования error_get_last()
на сервере IIS7.5?
Могу ли я просто вывести error_get_last()
как ниже?
$error = error_get_last();
if ($error !== NULL) {
$errno = $error["type"];
$errfile = $error["file"];
$errline = $error["line"];
$errstr = $error["message"];
//send the email...
}
Благодарю.
Нет, ты не можешь Ошибка 500 в php-скрипте означает, что скрипт покончил с собой и сорвался по всему полу. Там не осталось ошибок, потому что сценарий мертв. Любой другой скрипт, который запускается как обработчик для 500, НЕ сможет получить внутреннюю ошибку, которая вызвала 500 — это полностью независимый скрипт с собственной очередью ошибок.
В лучшем случае можно было бы обработать сценарий обработчика ошибок через журнал ошибок сервера, но, поскольку это совершенно отдельный сценарий, вы не можете точно сказать, какая из ошибок в журнале будет той, которую вы хотите просмотреть.
Других решений пока нет …