
Обновление Битрикс до 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 8.2
- 01
Безопасность: интерпретатор получает исправления уязвимостей, а сайт проще пройти аудит и требования хостинга.
- 02
Производительность: PHP 8 экономнее расходует память и быстрее выполняет код, что снижает нагрузку на сервер.
- 03
Совместимость: новые модули, библиотеки и интеграции не требуют обходных решений и костылей.
- 04
Строгость языка: улучшенная типизация и предупреждения об устаревшем коде помогают раньше находить скрытые ошибки.
- 05
Подготовка к следующим версиям: избавившись от устаревших конструкций сейчас, вы упростите переход на PHP 8.3 и выше.
С чего начать: подготовка и аудит
Обновление PHP на Битриксе — не одна кнопка в панели хостинга, а небольшой проект. Начинать нужно с инвентаризации: какая версия PHP стоит сейчас, какая редакция и версия главного модуля установлены, какие сторонние модули и решения из Маркетплейса подключены, сколько кастомного кода лежит в папке /local и в файле /bitrix/php_interface/init.php.
Отдельно проверьте, не используются ли на сайте закодированные модули. Если модуль защищён ionCube, для PHP 8.2 нужен совместимый загрузчик и версия модуля, перекодированная под эту ветку. Без этого файлы просто не запустятся. Если разработчик модуля больше не поддерживает продукт, заранее продумайте замену.
И последнее перед стартом: полный бэкап. Сохраните файлы сайта и дамп базы данных, а затем убедитесь, что архив действительно разворачивается. Бэкап, который ни разу не восстанавливали, — это только предположение, что он работает.
Пошаговый план обновления Битрикс до PHP 8.2
- 01
Зафиксируйте исходное состояние: версия PHP, версия главного модуля, список установленных модулей, значения php.ini. Сделайте полную резервную копию файлов и базы данных через раздел «Резервное копирование» в административной части и проверьте, что архив восстанавливается.
- 02
Обновите платформу и все модули Битрикс до актуальных версий в разделе «Обновление платформы», пока сайт ещё работает на прежнем PHP. Обновляйте последовательно и проверяйте работу сайта после каждого пакета обновлений.
- 03
Запустите «Проверку системы» в настройках продукта и устраните замечания по окружению: расширения PHP, параметры php.ini, права на файлы, настройки базы данных.
- 04
Разверните копию сайта на тестовом поддомене с отдельной базой данных и выбранной версией PHP 8.2. Закройте тестовую версию от индексации в Яндексе и Google, например паролем или директивой в robots.txt, иначе возникнут дубли.
- 05
Проверьте собственный код в /local, init.php и сторонних модулях инструментами статического анализа: PHP_CodeSniffer с набором правил PHPCompatibility, PHPStan или Rector. Они находят устаревшие конструкции до запуска сайта.
- 06
На тестовой копии включите отображение и логирование всех ошибок (error_reporting E_ALL, режим отладки в разделе exception_handling файла .settings.php) и пройдите ключевые сценарии: регистрация, каталог, корзина, заказ, оплата, формы, обмен с 1С.
- 07
Исправьте найденные проблемы, повторите тест и только затем переключите версию PHP на боевом сайте. Делайте это в период минимального трафика: через панель хостинга или меню BitrixEnv. После переключения очистите кеш Битрикс и OPcache.
- 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, но это именно временная мера.
Было и стало: исправление динамического свойства
class OrderHandler
{
public function run()
{
$this->items = [];
}
}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 сразу на боевом сайте без бэкапа и тестовой копии.
- Обновлять PHP до того, как обновлены платформа и модули Битрикс.
- Оставлять включённым вывод ошибок (display_errors) на проде после проверки.
- Игнорировать предупреждения Deprecated, считая, что раз сайт открывается, всё в порядке.
- Не проверять обмен с 1С, платёжные системы и почтовые события.
Как правильно
- 01
Сделать проверенный бэкап и развернуть тестовую копию с PHP 8.2.
- 02
Сначала обновить ядро и модули на прежней версии PHP, затем менять интерпретатор.
- 03
Логировать ошибки в файл, а отображение на страницах на проде отключить.
- 04
Разобрать все предупреждения в логе и исправить код, пока они не стали ошибками.
- 05
Пройти по списку критичных сценариев: заказ, оплата, формы, обмен, агенты.
После переключения: мониторинг и контроль
Переключение версии PHP — это ещё не финал. Первые дни после запуска нужно внимательно следить за поведением сайта. Смотрите логи ошибок PHP и веб-сервера, ошибки Битрикса, время ответа сервера, нагрузку на процессор и память.
Проверьте SEO-показатели. В Яндекс Вебмастере и Google Search Console следите за ошибками сервера (коды 5xx), доступностью страниц, сообщениями о проблемах индексации. В Яндекс Метрике и Google Analytics сравните трафик, показатель отказов и конверсии до и после перехода: резкое падение целевых действий часто указывает на сломанную форму или этап оформления заказа, который не заметили на тесте.
Отдельно протестируйте то, что не видно на страницах: выполнение агентов и заданий cron, отправку почтовых уведомлений, обмен данными с 1С, выгрузки в Яндекс Маркет и на маркетплейсы, работу вебхуков платёжных систем. Эти процессы запускаются без участия пользователя, поэтому ошибки в них обнаруживаются позже всего.
Чек-лист проверки сайта после перехода на PHP 8.2
Итоги: как безопасно обновить Битрикс до PHP 8.2
- 01
Сначала обновите платформу Битрикс и все модули на текущей версии PHP.
- 02
Проверьте кастомный код и сторонние модули инструментами совместимости.
- 03
Протестируйте сайт на копии с PHP 8.2 и включённым логированием ошибок.
- 04
Переключайте версию в период низкого трафика и держите план отката.
- 05
Следите за ошибками и показателями в Вебмастере, Search Console, Метрике и Analytics.
Своевременное обновление PHP — это не разовая задача, а часть регулярного обслуживания сайта. Чем меньше накопленного устаревшего кода и чем чаще обновляется платформа, тем дешевле и спокойнее проходят такие переходы. Если в проекте много собственной разработки, обмен с 1С и интеграции с платёжными системами, разумнее доверить аудит и перенос специалистам: это сэкономит время и защитит продажи от простоев.
Часто задаваемые вопросы
Да, актуальные версии главного модуля и стандартных модулей работают на PHP 8.2. Но сначала нужно обновить платформу и все модули до последних версий, а точные минимальные требования сверить с документацией вашей редакции. Старые версии ядра и устаревшие сторонние решения могут работать некорректно.
Сначала обновляется платформа Битрикс и модули, пока сайт работает на прежней версии PHP. Только после этого, на тестовой копии, переключается PHP. Обратный порядок чаще всего приводит к ошибкам и белому экрану.
Ядро Битрикс обычно готово к PHP 8.2, а проблемы возникают в кастомном коде в папке /local, в init.php и в сторонних модулях. Типичные симптомы: предупреждения Deprecated про динамические свойства, ошибки в старых обработчиках, неверная работа с регистром кириллицы в windows-1251. Тест на копии сайта выявляет их до выхода на боевой сервер.
Для типового сайта на стандартных компонентах — от нескольких часов до одного-двух дней вместе с тестированием. Для интернет-магазина с обменом 1С, платёжными системами и большим объёмом кастомного кода — от нескольких дней до пары недель. Основное время уходит на проверку и доработку кода, а не на само переключение.
Нужен бэкап файлов и базы данных и возможность быстро переключить версию PHP обратно в панели хостинга или BitrixEnv. Поэтому переключение лучше выполнять в период минимального трафика и сохранять рабочую конфигурацию предыдущей версии.
Обновим ваш сайт на Битрикс до PHP 8.2 без простоев
Проведём аудит кода и модулей, протестируем на копии и безопасно переключим версию PHP
Спасибо за заявку!
Мы свяжемся с вами в ближайшее время.
Совместимость проверяем до переключения версии



