PHP Fatal Error — как исправить критическую ошибку PHP

PHP Fatal Error означает, что PHP-скрипт столкнулся с критической ошибкой и полностью остановил выполнение. В отличие от warning или notice, такая ошибка обычно ломает страницу, админку или весь сайт целиком.

Чаще всего проблема связана с плагинами WordPress, темой, несовместимой версией PHP, нехваткой памяти, ошибкой в коде или повреждённым файлом. Ниже — полное и практичное решение шаг за шагом.

Quick Fix

  • Посмотрите точный текст PHP Fatal Error в логах.
  • Отключите недавно обновлённый плагин или тему.
  • Проверьте версию PHP на хостинге.
  • Увеличьте лимит памяти PHP.
  • Включите debug mode в WordPress.
  • Проверьте синтаксис файлов, если редактировали код вручную.
  • Переустановите повреждённые файлы CMS или плагина.

Что значит PHP Fatal Error

PHP Fatal Error — это критическая ошибка, из-за которой PHP прекращает выполнение скрипта. После такой ошибки страница обычно перестаёт загружаться, появляется белый экран, сообщение о критической ошибке или ошибка 500.

Проще говоря, PHP доходит до участка кода, который не может обработать, и сайт останавливается.

Как выглядит PHP Fatal Error

На экране или в логах ошибка может выглядеть по-разному:

  • PHP Fatal error: Uncaught Error...
  • Allowed memory size exhausted
  • Call to undefined function
  • Call to undefined method
  • Cannot redeclare function
  • Class not found
  • Maximum execution time exceeded
  • Uncaught TypeError

Иногда сам сайт вместо этого показывает только “There has been a critical error on this website” или обычную ошибку 500.

Основные причины PHP Fatal Error

1. Несовместимость версии PHP

Очень частая причина. Старый плагин или тема могут не работать на новой версии PHP, а новый код — на слишком старой. После смены версии PHP сайт может сразу начать выдавать fatal error.

2. Ошибка в плагине WordPress

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

3. Ошибка в теме

Fatal error может появиться из-за functions.php, кастомного шаблона, виджета, хуков или встроенного кода темы. Это типичный сценарий после ручных правок.

4. Нехватка памяти PHP

Если скрипт превышает лимит памяти, PHP завершает работу с фатальной ошибкой. Это часто бывает у тяжёлых плагинов, импорта товаров, бэкапов и page builder-ов.

5. Ошибка в коде после ручного редактирования

Лишняя скобка, неправильное имя класса, вызов несуществующей функции, неверный include или конфликт имён могут мгновенно вызвать PHP Fatal Error.

6. Повреждённые файлы сайта

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

7. Конфликт между плагином и темой

Иногда отдельно плагин и тема работают нормально, но вместе вызывают fatal error. Чаще всего это связано с дублированием функций, несовместимыми классами или разными ожиданиями по версии PHP.

8. Ошибка автозагрузки классов

На современных сайтах fatal error может появляться из-за неработающего autoload, отсутствующего файла класса или неправильного namespace.

9. Превышение времени выполнения

Хотя это не всегда классический fatal error, слишком долгий скрипт тоже может завершиться критически, особенно на слабом хостинге.

10. Ошибка после обновления WordPress, PHP или хостинга

После обновлений PHP Fatal Error появляется очень часто, если часть сайта уже не совместима с новой средой.

PHP Fatal Error — как исправить пошагово

1. Сначала найдите точный текст ошибки

Это главный шаг. Без точного сообщения вы будете чинить сайт вслепую. Проверьте:

  • error_log на сервере;
  • логи PHP в панели хостинга;
  • логи Apache или Nginx;
  • файл debug.log в WordPress.

Именно там обычно видно, какой файл, строка и функция вызывают фатальную ошибку.

2. Включите отладку WordPress

Если сайт на WordPress, добавьте или проверьте эти строки в wp-config.php:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

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

3. Отключите все плагины

Если админка не открывается, зайдите через FTP или файловый менеджер и переименуйте папку:

wp-content/plugins

Например, в plugins-disabled. Это временно отключит все плагины. Если сайт заработал, значит причина почти точно в одном из них.

4. Переключите тему на стандартную

Если отключение плагинов не помогло, временно активируйте стандартную тему WordPress. Если ошибка исчезла, проблема в текущей теме или её файлах.

5. Проверьте последнюю правку кода

Если вы недавно редактировали functions.php, wp-config.php, шаблоны темы или custom plugin, сначала откатите эти изменения. Очень часто fatal error появляется именно после ручной правки.

6. Проверьте версию PHP

Сравните текущую версию PHP на хостинге с требованиями WordPress, темы и плагинов. Если ошибка появилась после смены версии PHP, попробуйте временно переключиться на предыдущую совместимую версию.

7. Увеличьте лимит памяти PHP

Если в логах есть Allowed memory size exhausted, увеличьте memory limit. Для WordPress можно добавить в wp-config.php:

define('WP_MEMORY_LIMIT', '256M');

Также лимит часто можно изменить через панель хостинга.

8. Переустановите повреждённый плагин или ядро

Если ошибка указывает на конкретный плагин или системный файл, удалите и загрузите его заново из чистого источника. Иногда сам код не конфликтует, а просто файл повреждён.

9. Проверьте синтаксис PHP

Если вы редактировали код вручную, внимательно проверьте скобки, точки с запятой, имена функций, namespaces и include/require. Один маленький дефект может вызывать полный сбой сайта.

10. Проверьте классы и функции

Ошибки вида Call to undefined function, Class not found или Cannot redeclare обычно указывают на отсутствие нужного файла, неверный порядок загрузки или конфликт кода.

11. Проверьте пути к файлам

После миграции сайта или смены структуры папок fatal error может быть связан с неверным путём к include-файлу, template-файлу или библиотеке.

12. Откатите последнее обновление

Если ошибка появилась сразу после обновления темы, плагина, WordPress или PHP, лучший быстрый тест — откатить последнее изменение и проверить, исчезла ли проблема.

Как исправить PHP Fatal Error в WordPress

  1. Включить WP_DEBUG и посмотреть лог.
  2. Отключить все плагины.
  3. Переключить тему на стандартную.
  4. Проверить последнюю правку кода.
  5. Проверить версию PHP.
  6. Увеличить лимит памяти.
  7. Переустановить повреждённый плагин или ядро WordPress.

Для WordPress это самый рабочий маршрут диагностики.

Частые типы PHP Fatal Error и что они значат

Allowed memory size exhausted

Скрипт превысил лимит памяти. Нужно увеличивать memory limit или убирать слишком тяжёлую операцию.

Call to undefined function

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

Class not found

Нужный класс не загрузился. Часто проблема в autoload, include, namespace или повреждённом файле.

Cannot redeclare function

Функция объявлена дважды. Это бывает при конфликте темы и плагина или при двойном подключении одного файла.

Maximum execution time exceeded

Скрипт работал слишком долго. Нужно уменьшать нагрузку, оптимизировать код или поднимать лимит выполнения.

Если PHP Fatal Error появляется только иногда

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

Если сайт показывает только белый экран

Белый экран смерти очень часто связан именно с PHP Fatal Error. В таком случае нужно не гадать, а сразу смотреть логи и включать debug mode.

Если ошибка появилась после миграции сайта

После переноса сайта проверьте:

  • версию PHP;
  • пути к файлам;
  • повреждённые плагины и тему;
  • отсутствующие библиотеки;
  • права доступа;
  • корректность базы данных и конфигов.

Как не допустить PHP Fatal Error в будущем

  • Делайте бэкапы перед обновлениями.
  • Не редактируйте код на живом сайте без теста.
  • Следите за совместимостью версии PHP.
  • Используйте только качественные плагины и темы.
  • Проверяйте логи после обновлений.
  • Не перегружайте сайт тяжёлыми модулями без необходимости.

FAQ

Что означает PHP Fatal Error?

Это означает, что PHP столкнулся с критической ошибкой и полностью остановил выполнение скрипта.

Почему PHP Fatal Error ломает весь сайт?

Потому что fatal error прекращает работу PHP-кода. Если ошибка возникает в важном файле темы, плагина или ядра, страница больше не может загрузиться.

Что проверять первым делом?

Точный текст ошибки в логах. Это самый быстрый способ понять, где именно проблема.

Может ли плагин WordPress вызвать PHP Fatal Error?

Да, очень часто. Это одна из главных причин таких ошибок на WordPress.

Поможет ли смена версии PHP?

Во многих случаях да. Особенно если ошибка появилась после обновления хостинга или самого PHP.

Вывод

PHP Fatal Error — это критическая ошибка, которая останавливает выполнение скрипта и часто ломает весь сайт или админку. Самые частые причины — несовместимая версия PHP, конфликт плагинов или темы, нехватка памяти и ошибки в коде.

Главное правило одно: сначала найти точный текст ошибки в логах, а уже потом исправлять причину. Именно так fatal error устраняется быстро и без лишних догадок.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *