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

Сегодня предстоит познакомиться с логами ошибок PHP. Необходимо выяснить, что собой представляет «баг» и какими бывают сбои. Также предстоит разобраться с тем, что такое логирование, для чего оно необходимо. Соответствующие данные пригодятся как новичкам, так и уже более опытным разработчикам. Они особо важны при отладке программного обеспечения.

Ошибка – это…

Ошибка в the PHP – структура данных, которая указывает на то, что «что-то пошло не так» в процессе исполнения исходного кода. Это своеобразный сбой системы.

Рассматриваемый ЯП позволяет различными способами имитировать ошибку. Наиболее простой вариант – это функция die:

Ошибки в PHP: виды и логирование

С ее помощью удается завершить программу и сообщить системе о сбое. Принципы обработки «багов» можно контролировать.

The error в PHP вызывается при помощи функции trigger_error:

Ошибки в PHP: виды и логирование

По умолчанию система выведет лог некритического уведомления. Условно все «сбои» программного обеспечения в рассматриваемом ЯП могут быть поделены на две категории:

  1. Обычные.
  2. Исключения. Они появились с PHP5. Могут быть созданы без проблем за счет статической типизации.

Сбои в the PHP встречаются различных типов. Он этот момента зависит логирование информации.

Типы сбоев в языке

Перед изучением log error the PHP необходимо выяснить, каких типов бывают «баги»:

  1. Синтаксические. Указывают на то, что в скрипте функции написаны неправильно. Пример – пропуск точки с запятой или «забытая» скобка.
  2. Фатальные. По названию становится ясно, что такой «баг» является критичным. Он приводит к сбою работы приложения. Функции могут выдать непредсказуемый результат. Чаще всего из-за них программное обеспечение вовсе выходит из строя.
  3. Предупреждающие. При их появлении скрипт продолжает работать. Обычно появляются из-за того, что в системе «что-то пошло не так» и сейчас это не представляет опасности, но в будущем может стать серьезной проблемой. Данной категории неполадок необходимо уделять особое внимание.
  4. Уведомления об ошибках. Напоминают предыдущий вариант сбоев в the PHP. Не вызывают остановку реализации скрипта. Это менее «важные» баги, чем в предыдущем случае.

Использование логирования помогает разработчикам не только отлавливать, но и своевременно исправлять the errors в коде.

Особенности записи

Все параметры исходного скрипта, включая версию, будут записываться в отдельный файл. Он называется the php.ini. С его помощью можно активировать лог программных ошибок. Когда на сервере применяется какая-нибудь панель управления, соответствующую опцию допускается подключить там. В противном случае, лог будет активироваться вручную.

Ошибки в PHP: виды и логирование

Чтобы активировать the php log, потребуется в файл php.ini вставить фрагмент кода, указанный выше. При активации display_errors сбои будут выводиться на экран. В разделе error_log необходимо указать путь к файлу, в который записывается информация. Она пригодится разработчику для непосредственной отладки исходного проекта.

Теперь потребуется создать документ php-errors.log. Ему выдаются права, позволяющие записывать в файл информацию – в Debian-подобных системах Apache будет работать от имени системного пользователя www-data:

Ошибки в PHP: виды и логирование

Нужно перезапустить сервер:

Ошибки в PHP: виды и логированиеилиОшибки в PHP: виды и логирование.

После этого система начнет записывать все сбои, произошедшие в приложении во время работы, в специально отведенный файл. Это – только один из нескольких возможных вариантов реализации логирования в рассматриваемом языке. Далее будут представлены иные подходы к операции.

Использование htaccess

The error log php может быть активирован альтернативным способом. Следующий вариант не требует редактирования документа php.ini. Он используется тогда, когда разработчик имеет дело с Apache и mod_php.

Данный прием подразумевает редактирование .htaccess в корне сайта. Там необходимо вставить следующую запись:

Ошибки в PHP: виды и логирование

Для выключения опции логирования используется команда:

Ошибки в PHP: виды и логирование

Преимущество соответствующего приема заключается в том, что его можно применять в клиент-серверных моделях с отсутствующими root-правами. Выставленные параметры будут относиться не ко всему серверу, а только к странице, в корне которого добавляется .htaccess. при использовании fast_cgi директива php_flag не работает – возникает ошибка 500.

Все и сразу

А вот наиболее простой вариант отображения всех «багов» в приложении. Достаточно внести следующую запись в скрипт:

Ошибки в PHP: виды и логирование

Представленный фрагмент функционирует так:

  1. Функция ini_set постарается переопределить конфигурацию, обнаруженную в ini-документе.
  2. Display_errors и display_startup_errors – доступные директивы. Первая отвечает за факт отображения сообщений о сбоях у пользователя. Обычно она не используется для «рядового» функционирования сервиса. Display_errors подойдет для разработки.
  3. Display_startup_errors – самостоятельная директива.

Рассмотренный прием не позволяет отображать синтаксические неполадки? Пропущенные точки с запятыми, отсутствие фигурные скобки и опечатки.

Подробные предупреждения и уведомления

Изучая тему the error log, необходимо обратить внимание на подробные предупреждения и уведомления. Иногда такие сообщения сигнализируют о наличии фатальных сбоев, которые будут реализованы при определенных обстоятельствах. Скрыть «баги», но отображать только предупреждающие окна (warnings) можно при помощи следующего способа:

Ошибки в PHP: виды и логирование

Для того, чтобы отображать предупреждения и уведомления, требуется указать «E_Warning|E_Notice». В виде аргументов могут быть использованы такие параметры как:

  • e_error;
  • e_warning;
  • e_parse;
  • e_notice.

Для сообщения обо всех сбоях, исключая уведомления, достаточно задать параметр e_all &~ e_notice, где e_all – это все поддерживаемые характеристики для функции error_reporting.

Функция логирования

У веб-странице на хостинге сообщения о неполадках не должны показываться конечным пользователям. Эти данные все равно записываются в журналы (логи). Воспользоваться ими при отладке программного обеспечения и сервера удается несколькими способами.

Элементарное решение – это применение функции error-log. Она включает в себя четыре параметра:

  • подробная информация о сбое и факте регистрации информации в журнале;
  • тип;
  • значение;
  • заголовок.

Обязательно для использования функции логирования должен быть указан только первый атрибут.

Ошибки в PHP: виды и логирование

Если type не определен, по умолчанию он равняет 0. Это значит, что информация из используемого журнала будет добавлена к файлу лога, определенному на веб-сервере. Type = 1 отправляет журнал сбоев по указанному адресу.

Ошибки в PHP: виды и логирование

Для записи сообщений в отдельный документ используется type 3. После него указывается местоположение файла лога. Соответствующее пространство должно быть доступно для записи веб-сервером.

Ошибки в PHP: виды и логирование

Выше – пример соответствующей записи.

Конфигурация сервера

Логирование in the PHP можно производить при помощи настроек сервера. Лучший способ регистрации возникающих неполадок – регистрация в файле конфигурации веб-приложения. Данный прием актуален для ситуаций, когда у разработчика имеются права администратора для того или иного сервера.

Для Apache необходимо использовать следующий фрагмент PHP:

Ошибки в PHP: виды и логирование

В Nginx директива будет иметь иное название:

Ошибки в PHP: виды и логирование

Теперь понятно, как работать с the error-log in PHP. Это «базовые» навыки, которые помогут формировать журналы ошибок и выводить их в отдельные документы. Лучше изучить вопросы отладки в упомянутом языке помогут дистанционные компьютерные курсы по PHP.