← Техническая поддержка

После обновления PHP сайт перестал работать: как искать несовместимость

Переход на новую версию PHP может выявить код, который годами работал без изменений. Ошибка не обязательно находится в ядре CMS: причиной может быть старый модуль, шаблон, библиотека или собственный обработчик. Поэтому диагностику лучше вести от сообщения об ошибке к конкретному участку кода.

Диагностика сайта после обновления PHP

Сначала получите точную ошибку

Белая страница или 500 — это только внешний симптом. Нужно открыть журнал PHP-FPM, error_log или лог веб-сервера и найти первое исключение, которое возникает при запросе. Последующие ошибки могут быть лишь следствием.

Проверьте обязательные расширения

На новом сервере могут отсутствовать модули PHP, которые были установлены раньше: mbstring, intl, gd, imagick, soap или специфичный драйвер базы данных. Даже если версия PHP поддерживается, отсутствие расширения способно остановить отдельный функционал.

Ищите устаревшие конструкции

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

Порядок поиска несовместимости с новой версией PHP

Не меняйте сразу несколько компонентов

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

Проверяйте не только публичную страницу

  • административную часть;
  • авторизацию;
  • формы и почту;
  • работу изображений;
  • импорт и экспорт;
  • cron;
  • интеграции и API.

Когда нужен временный откат

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

Проверка совместимости и адаптация старого кода относятся к технической поддержке сайта. Если изменение связано с переездом, дополнительно используйте чек-лист переноса на новый сервер.

Спасибо. Ваше сообщение было успешно отправлено.
Мы свяжемся с Вами в ближайшее время.