WordPress WordPress 6.xLinuxPHP-FPM / PHP

WordPress: после обновления PHP критическая ошибка только в админке

  • Обновлено
  • Чтение ≈ 5 минут

Краткий ответ

Не пытайтесь лечить ошибку случайными изменениями памяти PHP и массовым отключением дополнений. Сначала подтвердите версию веб-PHP и найдите точное PHP Fatal error в журнале при открытии админки.

В этой статье
  1. Суть неисправности и признаки
  2. Почему возникает проблема
  3. Пошаговая диагностика и устранение
  4. Как проверить результат и что делать, если не помогло

#Суть неисправности и признаки

Сразу после переключения версии PHP публичные страницы WordPress продолжают открываться, но /wp-admin/ показывает «На сайте возникла критическая ошибка» или HTTP 500. Поскольку админка вызывает другие обработчики и загружает дополнительные скрипты плагинов, несовместимость кода может проявляться только там. Не пытайтесь лечить ошибку случайными изменениями памяти PHP и массовым отключением дополнений. Сначала подтвердите версию веб-PHP и найдите точное PHP Fatal error в журнале при открытии админки.

#Почему возникает проблема

Возможная причинаКак узнатьЧто делать
Административный код плагина несовместим с PHPПлагин вызывает отсутствующую функцию или использует синтаксис/поведение, изменившееся в новой версии.Fatal error указывает на файл из wp-content/plugins и возникает только в /wp-admin/.Обновить конкретный плагин до совместимой версии или вернуть прежний обработчик.
Тема добавляет код только для админкиКод functions.php или библиотека темы подключается при admin_init.В трассировке виден каталог wp-content/themes.На тестовой копии проверить исправленную тему.
Не хватает расширения в новой версии PHPPHP-FPM новый, но у него отсутствуют mysqli, mbstring, intl, gd или другое требуемое расширение.В журнале отсутствует класс/функция; команда PHP CLI показывает другой набор модулей.Проверить расширения именно для PHP сайта.
Неверные параметры отдельного пула PHPПосле смены PHP изменились настройки opcache, лимиты или путь сокета.Фатальная ошибка либо недоступность только некоторых запросов, различия между CLI и FPM.Сверить журнал и режим обработчика.
В браузере лишь кешируется старый ответРедко, но CDN или браузер хранят старую страницу ошибки.На чистом соединении админка работает, журналы сервера не показывают новых ошибок.Проверить приватное окно и правила исключения админки из общего кеша.

#Пошаговая диагностика и устранение

  1. Сохраните версии и обеспечьте возможность возвратаВ панели хостинга найдите карточку проблемного сайта и запишите старую и новую версии PHP, режим обработки (FastCGI или PHP-FPM), время переключения и используемого пользователя. Создайте резервную копию базы и файлов WordPress, особенно wp-config.php и wp-content. Не меняйте много настроек сразу: тогда нельзя определить, какая правка помогла.
  2. Подтвердите, что ошибка только в административной частиВ приватном окне откройте главную, одну обычную запись и /wp-admin/. Если публичные страницы тоже дают 500/502, это уже общая ошибка PHP или веб-сервера, и порядок диагностики шире. Если сломана только админка, запишите адрес и время, затем попробуйте открыть /wp-login.php отдельно: его доступность может отличаться от административных страниц.
  3. Найдите Fatal error в журнале нужного PHP-FPMВ панели хостинга откройте журнал ошибок именно сайта и выбранного обработчика PHP, обновите /wp-admin/ один раз и отыщите запись по времени. Выпишите тип ошибки и путь до файла: wp-content/plugins/... указывает на дополнение, wp-content/themes/... — на тему, Call to undefined function может говорить о модуле. Не публикуйте трассировку целиком с путями, ключами или данными посетителей.
  4. Проверьте письмо с аварийным режимом восстановленияWordPress может прислать администратору письмо с темой о технической проблеме и специальной ссылкой для входа в режим восстановления. Найдите сообщение в почте, проверьте, что отправитель и домен ссылки соответствуют вашему сайту. Открывайте ссылку только в доверенном браузере и не пересылайте её публично: ссылка даёт доступ к диагностике. Если письма нет, продолжайте по журналу, а не по случайным ссылкам.
  5. Сопоставьте расширение или плагин с версией PHPЕсли в ошибке назван конкретный плагин, посмотрите в его официальной карточке совместимость с новым PHP и версию обновления. На тестовой копии сайта с теми же настройками обновите только этот плагин, повторите открытие /wp-admin/ и проверьте сохранение черновика. Если несовместимость подтверждена, используйте исправленную версию или план возврата PHP, а не произвольное изменение системных файлов WordPress.
  6. Уточните обработчик и его модулиВ панели сравните версию PHP для сайта и PHP в командной строке: php -v может показывать совершенно другую среду. Проверьте список расширений именно для режима, обслуживающего сайт. Если журнал указывает на отсутствие mysqli/intl/mbstring, попросите хостинг установить модуль в нужную версию. Не устанавливайте вручную пакеты PHP через apt на управляемом хостинге без учёта панели: можно нарушить конфигурацию других сайтов.
  7. Временно верните прежнюю версию только при необходимостиЕсли админка нужна срочно, а код плагина ещё не исправлен, в панели управления можно вернуть исходную поддерживаемую версию PHP, записанную в первом шаге. Делайте это после резервной копии и проверки совместимости, в согласованное время. Устаревшая версия может содержать уязвимости: возврат допустим как краткосрочная мера при плане обновления кода, а не как постоянное решение.
  8. Проверьте сайт и откажитесь от опасной отладкиПосле исправления и безопасного перезапуска PHP-FPM, если он действительно требовался, откройте /wp-admin/, проверьте меню и редактирование тестовой записи. Убедитесь, что в журнале больше нет Fatal error. Если включали WP_DEBUG, уберите временное логирование из публичного каталога либо убедитесь в его защищённости; WP_DEBUG_DISPLAY должен оставаться выключенным для посетителей. При неуспехе верните прежнюю конфигурацию и приложите точную ошибку специалисту.
  9. Пример настройки временной отладки в wp-config.php — не команда терминала
    PHP
    Пример настройки временной отладки в wp-config.php — не команда терминала. Добавлять перед строкой «That’s all, stop editing!», только если константы ещё не определены; при существующих определениях корректировать их, не дублируя. На рабочем сайте безопаснее журнал PHP панели хостинга; если временно создаётся wp-content/debug.log, проверьте, что он недоступен публично, и отключите отладку после проверки.
    define( 'WP_DEBUG', true );
    define( 'WP_DEBUG_LOG', true );
    define( 'WP_DEBUG_DISPLAY', false );

#Как проверить результат и что делать, если не помогло

Успех — нормальное открытие /wp-admin/, сохранение тестовой записи и отсутствие новых фатальных ошибок в журнале PHP после повторного обращения. Если ошибка появилась из-за обновления конкретного плагина или расширения, исправляйте совместимость именно этого компонента. Не называйте отсутствие error_log доказательством исправления: возможно, просматривается журнал не того PHP-FPM-пула.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.