Ошибки и журнал ошибок в PHP

Изучаем основные ошибки с которыми встречаются разработчики на языке программирования PHP и что такое журнал ошибок.

Журнал ошибок в PHP
Журнал ошибок в PHP

Журнал ошибок

Журнала ошибок PHP — файл, отвечающий за регистрацию ошибок сайта и указания, в какой строке код требует исправления. Многие сообщения об ошибках не содержат подробных сведений о том, что следует делать для их устранения. По этой причине рекомендуется использовать PHP error log файл.

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

Вы сможете проверить соответствуют ли ваши конфигурации PHP требованиям какого-либо программного обеспечения, которое вы хотите запустить на своем сервере.

Ниже рассмотрим как создать файл phpinfo, а также как проверить его подробную информацию с помощью инструментов, представленных в панели управления хостингом.

Создание phpinfo

В случае, если ваша хостинговая платформа не предлагает упомянутую встроенную функцию PHP Info, вам не о чем беспокоиться. Вы можете достичь той же цели, создав файл phpinfo в вашей директории public_html.

Этот файл будет доступен через браузер и покажет вам ту же самую подробную информацию.

Вам понадобится доступ к вашим файлам public_html. Здесь мы будем использовать файловый менеджер (File Manager) хостинга Beget в качестве примера.

1. Перейдите в «Файловый менеджер»

2. Переходим в public_html нужного сайта:

3. Нажмите кнопку «Новый файл».

4. Назовите ваш файл phpinfo.php и нажмите Ок.

5. Найдите новый файл phpinfo в каталоге, затем щелкните правой кнопкой мыши и нажмите «Правка».

6. Теперь скопируйте и вставьте следующий код в текстовый редактор и нажмите «Сохранить».

<?php
    phpinfo();
?>

Такого же результата можно добиться с помощью любого текстового редактора на вашем компьютере.

Создайте файл phpinfo.php, выполнив те же действия, что и ранее, а затем загрузите файл в папку public_html вашего сервера через FTP-клиент.

Проверка phpinfo

Нам нужно после создания phpinfo проверить информацию в нем. Есть пара способов, которые нам в этом помогут.

Проверка с помощью панели управления хостингом

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

После входа в систему, как правило, нам нужно перейти во вкладку Advanced -> PHP Info (Дополнительно -> PHP Info).

Затем вы будете перенаправлены на страницу с подробной информацией о текущей версии PHP, модулях, значениях и т.д. Прокрутите вниз для просмотра более подробной информации.

Если вы хотите найти данные о конкретном модуле или функции, вы можете использовать сочетание клавиш CTRL + F (CMD + F для MacOS), чтобы открыть функцию поиска в вашем браузере.

Проверка информации PHP с помощью браузера

У вас уже должен быть файл phpinfo.php в каталоге public_html. Итак, осталось только получить доступ к этому файлу, добавив /phpinfo.php в конце вашего доменного имени.

Вы должны увидеть нечто подобное когда доступ к файлу осуществляется через любой браузер:

Замечание. Если Вы не хотите, чтобы Ваша страница phpinfo постоянно отображалась, Вы можете легко отключить файл, дав ему другое имя — phpinfo.php_disabled, например.

Включение ведения журнала ошибок

Перед настройкой кода и параметров убедитесь, что на вашем хостинг-аккаунте включена функция регистрации ошибок PHP.

Откройте информацию о PHP, нажмите CTRL + F и найдите значение log_errors.

Если значение установлено в Off, есть несколько способов его включить в зависимости от вашей хостинг-платформы.

Ниже рассмотрим как включить регистрацию ошибок, настроив некоторые параметры в панели управления хостинг-провайдера и отредактировав файл .htaccess.

Метод 1. Использование Панель Управления

Самый простой способ активировать протоколирование ошибок PHP — через Панель управления (File Manager).

1. Войдите в Панель и найдите инструмент «Конфигурации PHP», расположенный в разделе «Дополнительно».

2. Перейдите на вкладку «Параметры PHP» и установите флажок log_errors. Нажмите «Сохранить».

Журнал ошибок будет автоматически создан в вашем каталоге public_html.

Метод 2. Редактирование файла .htaccess

Если вы не можете найти в Панели управления хостинга эту опцию, что ведение журнала ошибок PHP также можно включить, отредактировав файл .htaccess.

1. Создайте файл error_log.txt в каталоге public_html. Все ошибки будут записаны в этот файл.

2. Откройте .htaccess и вставьте следующее:

php_flag log_errors on
php_value error_reporting 32767
php_value error_log "error_log.txt"

3. Нажмите «Сохранить». Теперь вы успешно включили ведение журнала ошибок PHP.

Когда вы перепроверяете информацию о PHP, локальное значение должно быть включено, в то время как главное значение все еще выключено. Однако, не обращайте внимания на главное значение, так как оно переопределяется локальным значением.

Изучаем журнал ошибок

Теперь, когда вы активировали регистрацию ошибок PHP, любая PHP-ошибка, произошедшая на вашем сайте, будет записана в файл журнала ошибок.

Чтобы проверить, работает ли он, добавьте дополнительный символ в свой код и обновите сайт. После этого с помощью Файлового менеджера откройте лог-файл ошибки и проверьте, нет ли новых записей:

Вот несколько примеров распространенных ошибок, которые могут помочь вам проанализировать записи журнала.

PHP Parse error:  syntax error, unexpected ‘2’ (T_LNUMBER), expecting ‘)’ in /home/u802426761/domains/username/public_html/wp-config.php on line 54

Означает, что в вашем коде есть синтаксическая ошибка. Чтобы устранить эту проблему, проверьте файл и номер строки, указанный в сообщении.

PHP Fatal error: Call to undefined function get_header() in /var/www/username/public/blog/wp-content/themes/theme/index.php on line 1

Предупреждает, что страница index.php пытается вызвать несуществующую функцию. Проверьте правильность названия функции.

Fatal error: Maximum execution time of 30 seconds exceeded in /home/username/domains/domain.com/public_html/wp-includes/class-phpmailer.php on line 737

Может быть решена модификацией max_execution_time через конфигурацию PHP или .htaccess файл.

В этом кратком уроке вы познакомились с двумя методами включения логирования ошибок PHP: настройка параметров в Панели управления и редактирование файла .htaccess.

Используя эту возможность, вы будете знать, что не так с вашим сайтом, когда он неожиданно ломается.

Опубликовано 17 января 2023 в 03:05
Обновлено 9 января 2024 в 14:11
Категория: Блог
Теги: