Обновление Битрикс до PHP 8.2: пошаговая инструкция
Круглое сито на подставке с горсткой белых шариков, сквозь одну ячейку вниз падает зелёный шарик

Обновление Битрикс до PHP 8.2: пошаговая инструкция

Чтобы обновить Битрикс до PHP 8.2, сначала обновите ядро и модули, проверьте код на совместимость, протестируйте на копии и только потом переключите версию.

Обновление Битрикс до PHP 8.2: как перейти без сбоев

Чтобы перевести сайт на 1С-Битрикс на PHP 8.2, сначала обновите платформу и модули, затем проверьте собственный код на совместимость, протестируйте всё на копии сайта и только после этого переключите версию PHP на боевом сервере.

Порядок действий важнее скорости: бэкап, обновление ядра, проверка кода, тест на копии, переключение, мониторинг.

PHP 7.4 уже не получает исправлений безопасности, а поддержка PHP 8.0 тоже закончилась. Для сайта на Битрикс это не абстрактная проблема: устаревшая версия языка означает уязвимости, несовместимость с новыми модулями и рост требований со стороны хостинг-провайдеров. В статье разберём, как подготовиться к переходу, что именно меняется в PHP 8.2, какие места в проектах на Битрикс ломаются чаще всего и как проверить сайт после обновления.

Зачем переходить на PHP 8.2

Главная причина — безопасность. Версии PHP, снятые с поддержки, не получают патчей: если в интерпретаторе найдут уязвимость, закрывать её никто не будет. Для интернет-магазина с персональными данными покупателей и онлайн-оплатой это прямой риск, а для корпоративного сайта — риск взлома и блокировки хостером или антивирусными сервисами.

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

Третья причина — скорость работы. PHP 8 заметно эффективнее седьмой ветки по потреблению памяти и времени выполнения. Насколько именно ускорится ваш сайт, зависит от проекта: для тяжёлого каталога с фильтрацией выигрыш обычно ощутим, для небольшого сайта-визитки он почти незаметен. Скорость важна и для поисковых систем: Яндекс и Google учитывают быстродействие страниц и опыт пользователя при ранжировании.

Где находится PHP 8.2 в жизненном цикле версий

php 7.4
28 ноября 2022
Поддержка завершена. Исправления безопасности не выпускаются.
php 8.0
26 ноября 2023
Поддержка завершена. Использовать на новых и действующих проектах не рекомендуется.
php 8.1
31 декабря 2025
Дата окончания исправлений безопасности. Версия на финише срока поддержки.
php 8.2
31 декабря 2026
Исправления безопасности до этой даты. Оптимальная цель для обновления.

Что даёт переход на PHP 8.2

  1. 01

    Безопасность: интерпретатор получает исправления уязвимостей, а сайт проще пройти аудит и требования хостинга.

  2. 02

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

  3. 03

    Совместимость: новые модули, библиотеки и интеграции не требуют обходных решений и костылей.

  4. 04

    Строгость языка: улучшенная типизация и предупреждения об устаревшем коде помогают раньше находить скрытые ошибки.

  5. 05

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

С чего начать: подготовка и аудит

Обновление PHP на Битриксе — не одна кнопка в панели хостинга, а небольшой проект. Начинать нужно с инвентаризации: какая версия PHP стоит сейчас, какая редакция и версия главного модуля установлены, какие сторонние модули и решения из Маркетплейса подключены, сколько кастомного кода лежит в папке /local и в файле /bitrix/php_interface/init.php.

Отдельно проверьте, не используются ли на сайте закодированные модули. Если модуль защищён ionCube, для PHP 8.2 нужен совместимый загрузчик и версия модуля, перекодированная под эту ветку. Без этого файлы просто не запустятся. Если разработчик модуля больше не поддерживает продукт, заранее продумайте замену.

И последнее перед стартом: полный бэкап. Сохраните файлы сайта и дамп базы данных, а затем убедитесь, что архив действительно разворачивается. Бэкап, который ни разу не восстанавливали, — это только предположение, что он работает.

Пошаговый план обновления Битрикс до PHP 8.2

  1. 01

    Зафиксируйте исходное состояние: версия PHP, версия главного модуля, список установленных модулей, значения php.ini. Сделайте полную резервную копию файлов и базы данных через раздел «Резервное копирование» в административной части и проверьте, что архив восстанавливается.

  2. 02

    Обновите платформу и все модули Битрикс до актуальных версий в разделе «Обновление платформы», пока сайт ещё работает на прежнем PHP. Обновляйте последовательно и проверяйте работу сайта после каждого пакета обновлений.

  3. 03

    Запустите «Проверку системы» в настройках продукта и устраните замечания по окружению: расширения PHP, параметры php.ini, права на файлы, настройки базы данных.

  4. 04

    Разверните копию сайта на тестовом поддомене с отдельной базой данных и выбранной версией PHP 8.2. Закройте тестовую версию от индексации в Яндексе и Google, например паролем или директивой в robots.txt, иначе возникнут дубли.

  5. 05

    Проверьте собственный код в /local, init.php и сторонних модулях инструментами статического анализа: PHP_CodeSniffer с набором правил PHPCompatibility, PHPStan или Rector. Они находят устаревшие конструкции до запуска сайта.

  6. 06

    На тестовой копии включите отображение и логирование всех ошибок (error_reporting E_ALL, режим отладки в разделе exception_handling файла .settings.php) и пройдите ключевые сценарии: регистрация, каталог, корзина, заказ, оплата, формы, обмен с 1С.

  7. 07

    Исправьте найденные проблемы, повторите тест и только затем переключите версию PHP на боевом сайте. Делайте это в период минимального трафика: через панель хостинга или меню BitrixEnv. После переключения очистите кеш Битрикс и OPcache.

  8. 08

    В течение одной-двух недель наблюдайте за сайтом: логи ошибок, доступность, скорость ответа, отчёты в Яндекс Вебмастере и Google Search Console. Держите готовый план отката на предыдущую версию PHP.

Что именно меняется в PHP 8.2

Ядро Битрикс адаптируется под новые версии PHP силами разработчика платформы, поэтому основная масса проблем возникает не в нём, а в проектном коде. Это свои компоненты, шаблоны, обработчики событий, агенты, скрипты импорта и модули сторонних разработчиков, написанные много лет назад.

PHP 8.2 не ломает совместимость так радикально, как переход с седьмой ветки на восьмую, но вводит ряд устареваний и изменений поведения. Большая часть из них проявляется как предупреждения Deprecated: сайт продолжает работать, но лог растёт, а на странице могут появляться служебные сообщения. Ниже — самые частые изменения и то, как они проявляются на сайтах на Битриксе.

Изменение в PHP 8.2Как проявляется на сайтеЧто делать
Динамические свойства объектов объявлены устаревшимиСообщения «Creation of dynamic property» в логах и на страницахОбъявить свойство в классе или добавить атрибут #[\AllowDynamicProperties]
Интерполяция строк вида ${var} объявлена устаревшейПредупреждения Deprecated в старых шаблонах и компонентахЗаменить на {$var} или обычную конкатенацию строк
Функции utf8_encode и utf8_decode объявлены устаревшимиПредупреждения в скриптах импорта и конвертации кодировокИспользовать mb_convert_encoding или iconv
strtolower, strtoupper, ucfirst больше не зависят от локалиНеверный регистр кириллицы на сайтах в кодировке windows-1251Перейти на функции mb_strtolower и mb_strtoupper либо перевести сайт в UTF-8
Часть форм callable (например, 'self::method') объявлена устаревшейПредупреждения в старых обработчиках событий и пользовательских классахПереписать вызов через замыкание (Closure) или явное указание класса

Динамические свойства: самый частый случай

Чаще всего в проектах на Битриксе встречаются динамические свойства. Старый код создаёт свойство объекта прямо по ходу работы, не объявляя его в классе. До PHP 8.1 это молча работало, в PHP 8.2 появляется предупреждение, а в будущих версиях такое поведение может стать ошибкой.

Исправление простое и при этом полезное: объявить свойства явно. Код становится понятнее, а IDE и инструменты анализа лучше его проверяют. Если переписывать класс сейчас нет возможности, например он принадлежит стороннему модулю, можно временно пометить его атрибутом AllowDynamicProperties, но это именно временная мера.

Было и стало: исправление динамического свойства

было · php 8.1 и ниже
class OrderHandler
{
    public function run()
    {
        $this->items = [];
    }
}
Свойство items не объявлено. В PHP 8.2 появится предупреждение Deprecated.
стало · php 8.2
class OrderHandler
{
    private array $items = [];

    public function run()
    {
        $this->items = [];
    }
}
Свойство объявлено явно, тип указан. Код чище и безопаснее.

Окружение: кодировка, расширения, OPcache

Код — не единственное, что нужно проверить. На стороне сервера убедитесь, что для PHP 8.2 установлены все необходимые Битриксу расширения: mbstring, gd, curl, xml, zip, mysqli (или соответствующий драйвер вашей базы), OPcache. Настройки php.ini при смене версии нередко сбрасываются на значения по умолчанию, поэтому перенесите нужные параметры вручную: лимиты памяти, время выполнения скриптов, размер загружаемых файлов, параметры OPcache и сессий.

Отдельное внимание — кодировке. Сайты на windows-1251 всё ещё встречаются, и именно там чаще всего возникают сюрпризы с регистром и сортировкой кириллицы при смене версии PHP. Если возможность есть, планируйте перевод проекта на UTF-8: это современный стандарт, который упрощает интеграции и работу с поисковыми системами. Если пока нет — обязательно проверьте все места, где используются строковые функции с кириллицей.

Учтите и особенности хостинга. На виртуальном хостинге версия PHP обычно переключается в панели для каждого сайта отдельно, а на VPS с BitrixEnv — через меню окружения. Перед переключением уточните у провайдера, поддерживается ли нужная версия и все расширения.

Частые ошибки при обновлении PHP на Битриксе

Большинство неудачных переходов связано не со сложностью PHP 8.2, а с нарушением порядка действий и отсутствием тестирования.

Как делать не нужно

  • Переключать версию PHP сразу на боевом сайте без бэкапа и тестовой копии.
  • Обновлять PHP до того, как обновлены платформа и модули Битрикс.
  • Оставлять включённым вывод ошибок (display_errors) на проде после проверки.
  • Игнорировать предупреждения Deprecated, считая, что раз сайт открывается, всё в порядке.
  • Не проверять обмен с 1С, платёжные системы и почтовые события.

Как правильно

  1. 01

    Сделать проверенный бэкап и развернуть тестовую копию с PHP 8.2.

  2. 02

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

  3. 03

    Логировать ошибки в файл, а отображение на страницах на проде отключить.

  4. 04

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

  5. 05

    Пройти по списку критичных сценариев: заказ, оплата, формы, обмен, агенты.

После переключения: мониторинг и контроль

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

Проверьте SEO-показатели. В Яндекс Вебмастере и Google Search Console следите за ошибками сервера (коды 5xx), доступностью страниц, сообщениями о проблемах индексации. В Яндекс Метрике и Google Analytics сравните трафик, показатель отказов и конверсии до и после перехода: резкое падение целевых действий часто указывает на сломанную форму или этап оформления заказа, который не заметили на тесте.

Отдельно протестируйте то, что не видно на страницах: выполнение агентов и заданий cron, отправку почтовых уведомлений, обмен данными с 1С, выгрузки в Яндекс Маркет и на маркетплейсы, работу вебхуков платёжных систем. Эти процессы запускаются без участия пользователя, поэтому ошибки в них обнаруживаются позже всего.

Чек-лист проверки сайта после перехода на PHP 8.2

01
Авторизация и личный кабинет
Вход, регистрация, восстановление пароля, редактирование профиля.
02
Каталог и умный фильтр
Выдача товаров, сортировка, фильтрация, пагинация, поиск по сайту.
03
Корзина и оформление заказа
Добавление товаров, промокоды, расчёт стоимости, создание заказа.
04
Оплата и доставка
Платёжные системы, расчёт доставки, возврат на сайт после оплаты.
05
Обмен с 1С
Выгрузка заказов, загрузка товаров, остатков и цен.
06
Формы и почтовые события
Заявки, обратный звонок, письма клиентам и менеджерам.
07
Агенты и cron
Выполнение фоновых задач, очередь писем, регулярные выгрузки.
08
SEO-контроль
Коды ответов, robots.txt, sitemap, отчёты Вебмастера и Search Console.
PHP 8.2 получает исправления безопасности до 31 декабря 2026 года. Закладывайте в план следующий этап: после стабильной работы на 8.2 проще и дешевле перейти на 8.3 и новее, так как основные проблемы устаревшего кода уже будут устранены.

Итоги: как безопасно обновить Битрикс до PHP 8.2

Переход на PHP 8.2 безопасен, если соблюдать порядок: бэкап, обновление ядра и модулей, проверка кода, тест на копии, переключение и мониторинг.
  1. 01

    Сначала обновите платформу Битрикс и все модули на текущей версии PHP.

  2. 02

    Проверьте кастомный код и сторонние модули инструментами совместимости.

  3. 03

    Протестируйте сайт на копии с PHP 8.2 и включённым логированием ошибок.

  4. 04

    Переключайте версию в период низкого трафика и держите план отката.

  5. 05

    Следите за ошибками и показателями в Вебмастере, Search Console, Метрике и Analytics.

Своевременное обновление PHP — это не разовая задача, а часть регулярного обслуживания сайта. Чем меньше накопленного устаревшего кода и чем чаще обновляется платформа, тем дешевле и спокойнее проходят такие переходы. Если в проекте много собственной разработки, обмен с 1С и интеграции с платёжными системами, разумнее доверить аудит и перенос специалистам: это сэкономит время и защитит продажи от простоев.

Часто задаваемые вопросы

Обновим ваш сайт на Битрикс до PHP 8.2 без простоев

Проведём аудит кода и модулей, протестируем на копии и безопасно переключим версию PHP

Бесплатный аудит совместимостиТест на копии сайтаБез простоя магазина

Совместимость проверяем до переключения версии

Политика конфиденциальности

При оставлении заявки на ресурсе «https://gurucontext.ru» пользователи предоставляют следующие сведения:

  • Имя
  • Контактный телефон или Telegram
  • Адрес сайта пользователя (не обязательно)

Также администрация сайта получает данные об IP-адресе посетителей, типе браузера, времени нахождения на сайте и прочие подобные сведения через сервисы статистики.

Использование информации

Вся полученная информация используется администрацией «https://gurucontext.ru» исключительно в целях связи с клиентом.

Защита персональных данных

Компания «https://gurucontext.ru» обязуется не разглашать сведения, полученные от пользователей, и хранит их в защищённом виде.

Предоставление данных третьим лицам

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

Контакты

Телефон: +7 (499) 955-47-00.
E-mail: info@gurucontext.ru.