Переход 1С-Битрикс на PHP 8.4: чек-лист перед обновлением

Обновление PHP на проекте 1С-Битрикс — это не обычное переключение версии в панели хостинга. Ядро может быть готово к новой версии, но сайт всё равно сломается из-за старого шаблона, собственного модуля, обработчика события или библиотеки, которая годами не обновлялась.
По актуальным требованиям 1С-Битрикс минимальная версия PHP уже находится в ветке 8.x, поэтому откладывать проверку старого кода становится всё сложнее. Переход на PHP 8.4 лучше выполнять как отдельную техническую задачу с тестовой копией и планом отката.
Сначала обновите сам Битрикс
Плохой сценарий — оставить старое ядро и первым шагом переключить сервер на новый PHP. Перед изменением окружения проверьте лицензию, резервную копию и доступные обновления платформы. Чем старше установленная версия продукта, тем выше вероятность несовместимости ещё до проверки собственного кода.
Обновление ядра тоже лучше делать последовательно. Подход к безопасному процессу мы отдельно разобрали в материале как обновлять 1С-Битрикс без риска для рабочего сайта.
Что чаще всего ломается после переключения PHP
- устаревшие вызовы функций и библиотек, поведение которых изменилось;
- нестрогий код, который раньше проглатывал неверные типы данных;
- старые модули Marketplace и самописные решения;
- обработчики событий, работающие только в редких сценариях;
- cron-скрипты, использующие другой бинарник PHP;
- расширения PHP, которые были установлены в старой версии, но отсутствуют в новой.
Почему тест главной страницы недостаточен
После переключения версия может выглядеть рабочей: главная открывается, меню загружается, ошибок на экране нет. Но проблема обнаружится только при оформлении заказа, импорте из 1С, авторизации, генерации файла, отправке почты или выполнении фонового задания.
Поэтому нужен сценарный тест: публичная часть, административная часть, формы, поиск, каталог, корзина, интеграции, cron, почта и все нестандартные функции проекта.
Проверьте окружение PHP отдельно
Сравните старую и новую конфигурацию: memory_limit, max_execution_time, upload_max_filesize, post_max_size, OPcache и набор расширений. Очень часто ошибка связана не с версией языка как таковой, а с тем, что после переключения используется другой php.ini или отсутствует необходимое расширение.
php -v
php -m
php --ini
Такая проверка особенно важна для CLI. Веб-сайт может работать через PHP-FPM 8.4, а cron продолжать запускаться старым или, наоборот, более новым бинарником.
Как безопасно переключаться
- Сделайте резервную копию файлов и базы данных.
- Разверните тестовую копию проекта.
- Обновите платформу и используемые модули.
- Переключите PHP только на тестовой среде.
- Исправьте ошибки и предупреждения собственного кода.
- Пройдите функциональные сценарии и фоновые задачи.
- Подготовьте понятный способ возврата на предыдущую конфигурацию.
- Только после этого обновляйте рабочую среду.
Не скрывайте ошибки вместо их исправления
Отключить вывод предупреждений — не значит решить проблему. На рабочем сайте сообщения действительно не должны попадать пользователю, но они должны сохраняться в логах. Во время тестирования полезно собирать PHP-ошибки отдельно и разбирать их по источникам: ядро, модуль, шаблон или собственный код.
Хороший переход на новую версию PHP заканчивается не тогда, когда открылась главная, а когда проверены все важные сценарии и фоновые процессы проекта.
Если проект давно не обновлялся, перед сменой PHP полезно провести технический аудит. Это можно сделать в рамках услуги 1С-Битрикс: Управление сайтом или технической поддержки.