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

Как обновить PHP в Битрикс: пошаговая инструкция

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

Как обновить PHP на сайте 1С-Битрикс

Чтобы обновить PHP в Битрикс, сделайте полный бэкап, обновите платформу и модули, проверьте код на тестовой копии и переключите версию PHP в панели хостинга или меню виртуальной машины. Затем проверьте ключевые сценарии сайта.

Главное правило: версию PHP меняют не первой, а после подготовки. Бэкап, обновление ядра, аудит кода и тест на копии защищают от простоя и потери заказов.

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

Зачем обновлять PHP и какую версию выбрать

Язык PHP развивается по понятному циклу: каждая ветка какое-то время получает исправления ошибок, затем только патчи безопасности, а потом поддержка прекращается. Ветки PHP 7.x давно вышли из активной поддержки. Если ваш сайт всё ещё работает на них, он остаётся без свежих исправлений уязвимостей, а хостинг-провайдеры постепенно убирают такие версии из панели.

Для Битрикса это важно ещё и по другой причине. Разработчики платформы подтягивают системные требования вместе с развитием языка. Новые версии главного модуля и модулей из Маркетплейса рассчитаны на современные ветки PHP. В итоге сайт на старой версии может не получить очередное обновление или получит его с предупреждением в «Проверке системы».

Какую версию выбирать, зависит от редакции и версии ядра. Ориентир — раздел требований в документации 1С-Битрикс и отчёт «Проверка системы» в вашей админке. Для актуальных релизов рекомендуется PHP 8.1 и выше. Не гонитесь за самой новой веткой: сначала убедитесь, что с ней работают ваши сторонние модули и кастомный код.

Что даёт переход на современную версию PHP

  1. 01

    Закрытые уязвимости: ветка получает исправления безопасности от разработчиков языка

  2. 02

    Совместимость с актуальными обновлениями платформы и модулей Маркетплейса

  3. 03

    Более высокая скорость выполнения PHP-кода, особенно на каталогах и в корзине

  4. 04

    Меньше скрытых ошибок благодаря более строгой работе с типами и предупреждениями

  5. 05

    Поддержка со стороны хостингов: старые версии рано или поздно отключают

  6. 06

    Спокойный апгрейд в будущем: от 8.1 до 8.3 путь короче, чем от 7.4 до 8.x

01 / было

PHP 7.4 и старше

  • Нет патчей безопасности от разработчиков языка
  • Новые версии модулей могут не устанавливаться
  • Хостинг может отключить версию без вашего участия
  • Скорость выполнения ниже, чем у современных веток
02 / стало

PHP 8.1 и новее

  • Актуальные исправления безопасности
  • Совместимость с текущими релизами Битрикс
  • Заметный прирост скорости ответа сервера
  • Предсказуемый путь обновления на годы вперёд

С чего начать: проверка системы и обновление платформы

Первое действие — выяснить, на чём вы сейчас работаете. Зайдите в админку: Настройки → Инструменты → Проверка системы. Отчёт покажет версию PHP, состояние расширений, параметры php.ini и замечания по окружению. Сохраните скриншот или текст отчёта: он пригодится для сравнения «до и после».

Второй шаг — версия самого Битрикса. Откройте раздел обновления платформы (Настройки → Обновление платформы) и установите все доступные обновления главного модуля и остальных модулей. Старое ядро может не поддерживать новую ветку PHP, а система обновлений на слишком свежем PHP способна вести себя непредсказуемо. Если сайт сильно отстаёт, обновляйте платформу поэтапно, делая бэкап перед каждым крупным шагом.

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

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

  1. 01

    Проверьте текущее состояние. Откройте «Проверку системы», зафиксируйте версию PHP, версию главного модуля и список предупреждений. Отдельно проверьте версию PHP в консоли сервера командой php -v: агенты и cron работают через неё и могут использовать другую версию.

  2. 02

    Сделайте полный бэкап. Выгрузите файлы сайта и дамп базы данных. Это можно сделать штатным инструментом Битрикса (Настройки → Инструменты → Резервное копирование) или средствами хостинга. Убедитесь, что архив скачан и открывается.

  3. 03

    Обновите платформу и модули. Установите все доступные обновления ядра, а также обновите решения из Маркетплейса. Если разработчик модуля не выпустил версию под новый PHP, ищите замену заранее.

  4. 04

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

  5. 05

    Переключите PHP на копии и найдите ошибки. Включите вывод ошибок только на тестовой копии (параметр exception_handling в файле .settings.php) и пройдите по сайту. Исправьте устаревший синтаксис и функции, удалённые из новой версии языка.

  6. 06

    Настройте php.ini и расширения. Сравните параметры старой и новой версии: лимит памяти, max_input_vars, opcache, часовой пояс. Убедитесь, что установлены нужные расширения, в том числе mbstring, gd, curl и модуль для закодированных решений, если они у вас есть.

  7. 07

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

  8. 08

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

Где именно менять версию PHP

Способ переключения зависит от того, где «живёт» ваш сайт. Универсальной кнопки нет: на виртуальном хостинге это пара кликов в панели, на виртуальной машине Битрикса — работа через консольное меню, а на собственном сервере — установка пакетов и правка конфигурации веб-сервера.

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

ОкружениеГде менять версиюНа что обратить внимание
BitrixVM / BitrixEnvМеню управления виртуальной машиной в консоли сервераСначала обновите саму виртуальную машину до актуальной версии
Виртуальный хостингПанель хостинга: раздел настроек сайта или PHPНабор версий ограничен тарифом, переключение обычно занимает минуты
VPS или VDS с панелью (ISPmanager, Plesk)Настройки PHP для конкретного домена в панелиМожно держать разные версии PHP для разных сайтов
Сервер без панели (Nginx или Apache и PHP-FPM)Пакеты PHP-FPM и конфигурация виртуального хостаРасширения и php.ini придётся настраивать вручную

Как спланировать окно работ

Даже если переключение занимает две минуты, к нему стоит готовиться заранее. Для интернет-магазина и сайта с заявками простой — это потерянные деньги, поэтому выбирайте ночь или будний день с минимальным трафиком. Данные по часам посещаемости есть в Яндекс Метрике и Google Analytics.

Предупредите команду: контент-менеджеров, маркетологов, подрядчиков по интеграциям. На время работ стоит приостановить массовые импорты из 1С и запуск рекламных кампаний в Яндекс Директе и Google Ads, чтобы не платить за клики на недоступный сайт.

t − 7 дн

Аудит

Проверка версии ядра, модулей и кастомного кода

t − 2 дн

Тестовая копия

Прогон сайта на новой версии PHP, правка ошибок

t − 1 ч

Свежий бэкап

Файлы и база, проверка, что архив открывается

t

Переключение

Смена версии, сброс кеша и opcache

t + 1 ч

Проверка

Заказ, формы, админка, агенты, логи

t + 24 ч

Мониторинг

Ошибки 5xx, скорость, отчёты вебмастеров

Какие настройки php.ini нужны Битриксу

После смены версии PHP конфигурация часто «обнуляется»: новая ветка получает свой php.ini или пул PHP-FPM с настройками по умолчанию. Из-за этого сайт, который прекрасно работал вчера, сегодня ругается на нехватку памяти или теряет часть полей форм.

Сверьте следующие параметры с рекомендациями из «Проверки системы» и документации:

- memory_limit — достаточный лимит памяти для административной части и импортов (обычно не меньше 256–512 МБ для магазина); - max_input_vars — большое значение, иначе не сохранятся формы с множеством полей, например, свойства товаров; - opcache — включён и настроен, с достаточным числом кешируемых файлов и объёмом памяти; - date.timezone — задан явно, чтобы даты в заказах и агентах не «плыли»; - upload_max_filesize и post_max_size — достаточны для загрузки изображений и файлов; - расширения — mbstring, gd, curl, json, xml, zip и другие из списка требований Битрикс.

Учтите, что в PHP 8 удалены некоторые устаревшие директивы, например mbstring.func_overload. Если вы переносите старый конфиг «как есть», лишние параметры могут вызывать предупреждения. Для сайтов в кодировке windows-1251 тестовый прогон нужно делать особенно тщательно.

Типичные ошибки при смене версии PHP

Большинство аварий после обновления PHP связаны не с самой версией, а с отсутствием подготовки.

Как делают неправильно

  • Меняют версию сразу на боевом сайте без бэкапа
  • Не обновляют ядро Битрикса и модули перед переключением
  • Забывают про консольный PHP, из-за чего агенты и cron работают на старой версии
  • Переносят старый php.ini без проверки параметров
  • Оставляют включённый вывод ошибок на боевом сайте

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

  1. 01

    Делать бэкап и тестировать всё на копии сайта

  2. 02

    Сначала обновлять платформу и сторонние решения

  3. 03

    Проверять версию PHP и в браузере, и в консоли (php -v)

  4. 04

    Сверять настройки с «Проверкой системы» и документацией

  5. 05

    Писать ошибки в лог и держать план отката под рукой

Что чаще всего ломается в коде

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

В PHP 8 удалены или изменены многие конструкции, которые раньше «прощались». Например, исчезли функции `each()` и `create_function()`, обращение к символам строки через фигурные скобки, а ряд предупреждений стал исключениями. В ветке 8.1 внутренние функции начали предупреждать о передаче `null` в параметры, которые его не принимают. В 8.2 объявлено устаревшим создание динамических свойств у объектов. На практике это выглядит как «белый экран», ошибка 500 или поток предупреждений в логе.

Отдельная тема — модули, закодированные ionCube или аналогичными инструментами. Загрузчик должен соответствовать версии PHP, а сам модуль — поддерживать её. Если разработчик решения не выпускает обновления, потребуется замена или доработка.

Чтобы найти проблемы заранее, проверьте синтаксис файлов командой `php -l` на новой версии, прогоните сайт по основным разделам на тестовой копии и изучите лог ошибок. Это дешевле, чем разбирать последствия на боевом сервере.

чек-лист после переключения

Что проверить в первые 60 минут

  • 01Главная, каталог и карточка товара открываются без ошибок
  • 02Вход в админку и редактирование элемента в /bitrix/admin/
  • 03Корзина, оформление заказа и оплата в тестовом режиме
  • 04Формы обратной связи и отправка почтовых событий
  • 05Агенты и cron: консольный php -v показывает нужную версию
  • 06Поиск, умный фильтр и обмен с 1С
  • 07Кеш Битрикса и opcache сброшены
  • 08В логах PHP и веб-сервера нет новых ошибок

После обновления: мониторинг и SEO

Когда сайт переключён и базовые сценарии проверены, не закрывайте задачу сразу. В течение суток-двух следите за серверными ошибками: смотрите отчёты о доступности и ошибках индексирования в Яндекс Вебмастере и Google Search Console, а также данные о скорости и отказах в Яндекс Метрике и Google Analytics.

Если среди страниц появились ответы 5xx, значит, где-то остался несовместимый код, который не попался при тестировании. Исправьте его как можно быстрее: поисковые роботы Яндекса и Google при частых ошибках могут реже заходить на сайт. При стабильной работе обновление PHP на позиции негативно не влияет, а прирост скорости способен положительно сказаться на поведенческих показателях.

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

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

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

    Проверьте версию PHP и ядра в разделе «Проверка системы»

  2. 02

    Обновите платформу и сторонние модули до переключения

  3. 03

    Сделайте бэкап и протестируйте новую версию на копии сайта

  4. 04

    Сверьте php.ini и расширения с требованиями Битрикс

  5. 05

    После переключения проверьте ключевые сценарии и отслеживайте ошибки в Вебмастере и Search Console

Если на сайте много кастомного кода, устаревшее ядро или закодированные модули, лучше поручить работу специалистам. Это сэкономит время и защитит бизнес от простоя. Хороший результат — сайт, который работает быстрее, безопаснее и спокойно получает обновления от разработчиков платформы.

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

Доверьте обновление PHP на Битрикс специалистам без простоя сайта

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

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

Сначала тест, потом боевой сайт

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

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

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

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

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

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

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

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

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

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

Контакты

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