PHP – язык программирования, который существует достаточно давно. Он популярен и хорошо известен. Используется для создания веб-приложений, а также клиент-серверных моделей. С помощью PHP можно разрабатывать как простые, так и более сложные программы.
Сегодня предстоит познакомиться с логами ошибок PHP. Необходимо выяснить, что собой представляет «баг» и какими бывают сбои. Также предстоит разобраться с тем, что такое логирование, для чего оно необходимо. Соответствующие данные пригодятся как новичкам, так и уже более опытным разработчикам. Они особо важны при отладке программного обеспечения.
Ошибка – это…
Ошибка в the PHP – структура данных, которая указывает на то, что «что-то пошло не так» в процессе исполнения исходного кода. Это своеобразный сбой системы.
Рассматриваемый ЯП позволяет различными способами имитировать ошибку. Наиболее простой вариант – это функция die:
С ее помощью удается завершить программу и сообщить системе о сбое. Принципы обработки «багов» можно контролировать.
The error в PHP вызывается при помощи функции trigger_error:
По умолчанию система выведет лог некритического уведомления. Условно все «сбои» программного обеспечения в рассматриваемом ЯП могут быть поделены на две категории:
- Обычные.
- Исключения. Они появились с PHP5. Могут быть созданы без проблем за счет статической типизации.
Сбои в the PHP встречаются различных типов. Он этот момента зависит логирование информации.
Типы сбоев в языке
Перед изучением log error the PHP необходимо выяснить, каких типов бывают «баги»:
- Синтаксические. Указывают на то, что в скрипте функции написаны неправильно. Пример – пропуск точки с запятой или «забытая» скобка.
- Фатальные. По названию становится ясно, что такой «баг» является критичным. Он приводит к сбою работы приложения. Функции могут выдать непредсказуемый результат. Чаще всего из-за них программное обеспечение вовсе выходит из строя.
- Предупреждающие. При их появлении скрипт продолжает работать. Обычно появляются из-за того, что в системе «что-то пошло не так» и сейчас это не представляет опасности, но в будущем может стать серьезной проблемой. Данной категории неполадок необходимо уделять особое внимание.
- Уведомления об ошибках. Напоминают предыдущий вариант сбоев в the PHP. Не вызывают остановку реализации скрипта. Это менее «важные» баги, чем в предыдущем случае.
Использование логирования помогает разработчикам не только отлавливать, но и своевременно исправлять the errors в коде.
Особенности записи
Все параметры исходного скрипта, включая версию, будут записываться в отдельный файл. Он называется the php.ini. С его помощью можно активировать лог программных ошибок. Когда на сервере применяется какая-нибудь панель управления, соответствующую опцию допускается подключить там. В противном случае, лог будет активироваться вручную.
Чтобы активировать the php log, потребуется в файл php.ini вставить фрагмент кода, указанный выше. При активации display_errors сбои будут выводиться на экран. В разделе error_log необходимо указать путь к файлу, в который записывается информация. Она пригодится разработчику для непосредственной отладки исходного проекта.
Теперь потребуется создать документ php-errors.log. Ему выдаются права, позволяющие записывать в файл информацию – в Debian-подобных системах Apache будет работать от имени системного пользователя www-data:
Нужно перезапустить сервер:
или.
После этого система начнет записывать все сбои, произошедшие в приложении во время работы, в специально отведенный файл. Это – только один из нескольких возможных вариантов реализации логирования в рассматриваемом языке. Далее будут представлены иные подходы к операции.
Использование htaccess
The error log php может быть активирован альтернативным способом. Следующий вариант не требует редактирования документа php.ini. Он используется тогда, когда разработчик имеет дело с Apache и mod_php.
Данный прием подразумевает редактирование .htaccess в корне сайта. Там необходимо вставить следующую запись:
Для выключения опции логирования используется команда:
Преимущество соответствующего приема заключается в том, что его можно применять в клиент-серверных моделях с отсутствующими root-правами. Выставленные параметры будут относиться не ко всему серверу, а только к странице, в корне которого добавляется .htaccess. при использовании fast_cgi директива php_flag не работает – возникает ошибка 500.
Все и сразу
А вот наиболее простой вариант отображения всех «багов» в приложении. Достаточно внести следующую запись в скрипт:
Представленный фрагмент функционирует так:
- Функция ini_set постарается переопределить конфигурацию, обнаруженную в ini-документе.
- Display_errors и display_startup_errors – доступные директивы. Первая отвечает за факт отображения сообщений о сбоях у пользователя. Обычно она не используется для «рядового» функционирования сервиса. Display_errors подойдет для разработки.
- Display_startup_errors – самостоятельная директива.
Рассмотренный прием не позволяет отображать синтаксические неполадки? Пропущенные точки с запятыми, отсутствие фигурные скобки и опечатки.
Подробные предупреждения и уведомления
Изучая тему the error log, необходимо обратить внимание на подробные предупреждения и уведомления. Иногда такие сообщения сигнализируют о наличии фатальных сбоев, которые будут реализованы при определенных обстоятельствах. Скрыть «баги», но отображать только предупреждающие окна (warnings) можно при помощи следующего способа:
Для того, чтобы отображать предупреждения и уведомления, требуется указать «E_Warning|E_Notice». В виде аргументов могут быть использованы такие параметры как:
- e_error;
- e_warning;
- e_parse;
- e_notice.
Для сообщения обо всех сбоях, исключая уведомления, достаточно задать параметр e_all &~ e_notice, где e_all – это все поддерживаемые характеристики для функции error_reporting.
Функция логирования
У веб-странице на хостинге сообщения о неполадках не должны показываться конечным пользователям. Эти данные все равно записываются в журналы (логи). Воспользоваться ими при отладке программного обеспечения и сервера удается несколькими способами.
Элементарное решение – это применение функции error-log. Она включает в себя четыре параметра:
- подробная информация о сбое и факте регистрации информации в журнале;
- тип;
- значение;
- заголовок.
Обязательно для использования функции логирования должен быть указан только первый атрибут.
Если type не определен, по умолчанию он равняет 0. Это значит, что информация из используемого журнала будет добавлена к файлу лога, определенному на веб-сервере. Type = 1 отправляет журнал сбоев по указанному адресу.
Для записи сообщений в отдельный документ используется type 3. После него указывается местоположение файла лога. Соответствующее пространство должно быть доступно для записи веб-сервером.
Выше – пример соответствующей записи.
Конфигурация сервера
Логирование in the PHP можно производить при помощи настроек сервера. Лучший способ регистрации возникающих неполадок – регистрация в файле конфигурации веб-приложения. Данный прием актуален для ситуаций, когда у разработчика имеются права администратора для того или иного сервера.
Для Apache необходимо использовать следующий фрагмент PHP:
В Nginx директива будет иметь иное название:
Теперь понятно, как работать с the error-log in PHP. Это «базовые» навыки, которые помогут формировать журналы ошибок и выводить их в отдельные документы. Лучше изучить вопросы отладки в упомянутом языке помогут дистанционные компьютерные курсы по PHP.