PHP Fatal Error — это критическая ошибка, при которой выполнение кода останавливается. Сайт может показать белую страницу, 500 Internal Server Error или сообщение с путем к файлу и номером строки.
Хорошая новость: fatal error обычно достаточно конкретен. В логах почти всегда видно, какой файл, класс, функция или зависимость вызвали сбой.
С чего начать диагностику
Важнее всего не гадать по внешнему виду сайта, а найти точный текст ошибки в логах PHP или приложения.
- Найти error log PHP, nginx/apache или CMS.
- Определить файл, строку и тип ошибки.
- Проверить, что менялось перед сбоем: версия PHP, плагин, тема, код.
- Проверить совместимость функций и зависимостей.
- Сделать точечную правку или откат проблемного изменения.
Частые причины
- несовместимая версия PHP
- плагин или тема вызывает несуществующую функцию
- ошибка в самописном коде
- не хватает памяти PHP
- сломалась автозагрузка классов
- после обновления исчезла нужная библиотека
Что можно проверить без риска
Если сайт показывает путь к файлу и строку, эту информацию нужно сохранить, но не публиковать с приватными путями и данными.
- записать текст ошибки и время появления
- вспомнить, обновляли ли PHP, CMS или плагины
- проверить, открываются ли другие страницы
- не включать вывод ошибок на публичном сайте надолго
- сделать копию файла перед правкой
Когда лучше не экспериментировать
Опасно удалять целые папки плагинов, править код без копии или менять версию PHP туда-сюда на рабочем сайте. Иногда это помогает, но часто добавляет новые несовместимости.
Как я обычно чиню такую проблему
Я иду от текста fatal error к конкретному месту в коде: проверяю контекст, совместимость и делаю минимальное исправление, чтобы не затронуть остальные части сайта.
- Смотрю симптомы: адрес страницы, скриншот ошибки, время появления, что меняли перед сбоем.
- Проверяю серверные логи, конфигурацию сайта, права файлов, базу данных и зависимости.
- Делаю точечную правку: без лишней смены CMS, шаблона или случайной установки плагинов.
- Проверяю результат на основной странице, мобильной версии, формах и важных пользовательских сценариях.
- Кратко объясняю, что сломалось и что сделать, чтобы ошибка не повторялась.
Что подготовить для оценки
- адрес сайта или проблемной страницы
- когда появилась ошибка и что меняли перед этим
- доступ к хостингу, серверу или админке, если он нужен для проверки
- скриншот ошибки или текст из консоли, если он есть
- приоритет: срочно восстановить работу или спокойно разобраться в причине
Сроки
| Одна понятная PHP-ошибка | 30-90 минут |
|---|---|
| Конфликт версии PHP или плагинов | 1-3 часа |
| Цепочка ошибок после обновления | по результату логов |
Вопрос-ответ
Белая страница — это всегда PHP Fatal Error?
Не всегда, но очень часто. Нужно смотреть логи: там будет точный тип ошибки.
Можно ли просто скрыть ошибку?
Скрыть вывод можно, но это не исправит проблему. Ошибка продолжит ломать страницу или сценарий.
Почему ошибка появилась после обновления PHP?
Код мог использовать устаревшие функции, несовместимые типы или библиотеки, которые не работают на новой версии.
Итог
PHP Fatal Error лучше чинить по логам, а не по догадкам. Обычно проблема локализуется в конкретном файле или зависимости, после чего ее можно исправить точечно.
Если нужно быстро разобраться с такой ошибкой на сайте, напишите в Telegram: @rabotator_support. Посмотрю симптомы, скажу, что нужно проверить, и предложу аккуратный план исправления.