2012-01-13 3 views
1

Вчера я случайно ударил плохую часть кода. Мой сайт не работал весь день. Смущающе, да. Худшая часть заключалась в том, что мои клиенты не имели возможности связаться со мной, чтобы сказать мне, что она не работает.Обработка ошибок PHP в Codeigniter

Я не вижу, чтобы получить страницу пользовательской ошибки codeigniter, работающую для ошибок php application/errors/error_general.php.

Я думаю, что это, вероятно, нужно сделать на уровне Apache. Я пробовал поставить ErrorDocument 500 /error.html в базовые файлы .htacess. Это тоже не сработало.

В принципе, я хотел бы создать страницу ошибки клиента для ошибок php в codeigniter. Какие-либо предложения?

+0

500 ошибок -> что-то пошло не так, дальнейшая обработка (не синтаксический анализ ошибок и т.п.) , даже не может быть создана страница с ошибкой (на «менее серьезных» ошибках она может быть использована). И поскольку Apache передал PHP, 'ErrorDocument' также не будет использоваться. Я предлагаю отслеживать журналы ошибок с помощью cron-job. – Wrikken

+0

Вот чего я боялся. благодаря – keithhackbarth

ответ

2

Если посмотреть на system/core/CodeIgniter.php#63, то system/core/Common.php#450, то system/core/Exceptions.php#149, вы заметите, что страница обработчик ошибки application/errors/error_php.php. Обратите внимание, что некоторые фатальные ошибки, которые определенно не могут обрабатываться этим шаблоном (link).

следующие типы ошибок не могут быть обработаны с помощью пользовательской функции: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING, и большинство из E_STRICT поднятый в файле, где называется set_error_handler()

0

Собственно, я это понял. Это должно было быть сделано в файле .htaccess в корне CodeIgniter

Пример из файла .htaccess

ErrorDocument 500 /errors/500.htm 
Смежные вопросы