Как поднять версию PHP для сайта на 1С-Битрикс
Пошаговый план
Шаг 1. Поднять копию проекта (тестовый стенд)
Никогда не обновляйте PHP «на живую».
Необходимо поднять копию проекта:
- Копия файлов
- Копия базы данных
- Окружение максимально близкое к боевому (nginx / Apache, PHP-FPM)
Все работы выполняются сначала на копии и только потом — на продакшене.
Шаг 2. Включить максимальный уровень логирования ошибок
На тестовом окружении:
error_reporting(E_ALL);
display_errors = On;
log_errors = On;
Дополнительно включить режим отладки Битрикс:
- Открыть файл
/bitrix/.settings.php - Найти секцию
exception_handling - Установить значение
debug = true
Типовые проблемы:
- На PHP 8 падают старые компоненты (особенно
component.phpс массивами) - Ломаются конструкции
each(),create_function, старые вызовыmysql_* - Многие кастомные классы не совместимы с исключениями PHP 8
Шаг 3. Проверить совместимость версии Bitrix с новой версией PHP и обновиться
1С-Битрикс официально публикует таблицу совместимости.
Ориентиры:
- PHP 7.4 — поддерживается большинством старых версий
- PHP 8.0 / 8.1 — поддержка появилась в новом ядре + D7
- PHP 8.2+ — требуется последняя редакция ядра
Действия:
- Проверить, обновлено ли ядро 1С-Битрикс до последней версии
- Обновить все модули, включая
MainиFileman - Проверить сторонние модули — многие старые не работают на PHP 8
После этого поднять версию PHP и ещё раз обновить Битрикс и модули. Если ошибки не позволяют добраться до обновления — их придётся исправлять на уровне кода.
При использовании Composer необходимо обновить зависимости до продолжения работ.
Шаг 4. Пройтись по всему кастомному коду
Проверить:
/local/components//local/php_interface/- Кастомные модули
- Интеграции
- Скрипты импорта / экспорта
- CRON-задачи
Чаще всего ошибки возникают из-за:
- некорректной типизации
- передачи
nullвместо строк - использования устаревших функций
- warnings, которые в PHP 8 превращаются в fatal
Шаг 5. Проверить работу стандартного функционала
Подключить тестировщика и пройтись по чек-листу:
- Авторизация / регистрация
- Оформление заказа (для e-commerce)
- Фильтры каталога
- Поиск
- Личный кабинет
- Формы обратной связи
- REST API и внешние интеграции
- Админка Bitrix (часто ломаются разделы)
Шаг 6. Проверить CRON и интеграции
Критично для e-commerce и промышленных проектов.
- Обмены с 1С
- XML / CSV-импорты
- Выгрузки в маркетплейсы
- Синхронизацию цен и остатков
- Интеграции с ERP, WMS, CRM
Шаг 7. Проверить шаблоны и компоненты из /bitrix/templates/
Шаблоны часто содержат старые вызовы, не совместимые с PHP 8.
Проверить:
- Подключение файлов через
require_once - Вызовы функций в шаблонах
- Старые компоненты в режиме 1.0
- Передачу массивов в компоненты
Шаг 8. Протестировать производительность
После обновления PHP сайт почти всегда работает быстрее.
Проверить:
- Время генерации страницы
- Нагрузку на CPU
- Работу кеша
- Количество запросов к базе
Шаг 9. Перед выкладкой — повторная проверка боевого окружения
Убедиться, что:
- нет сторонних ограничений на сервере
- обновлены расширения PHP (intl, mbstring, opcache, gd, zip)
- обновлена версия MySQL
- корректно настроен PHP-FPM
Шаг 10. Обновление на бою
Последовательность действий:
- Сделать полный бэкап файлов и базы данных, при возможности — снапшот
- Перевести сайт в режим технических работ
- Переключить PHP на новую версию, обновить зависимости Composer
- Раскатить заранее подготовленные правки кода из системы контроля версий
- Очистить и «прогреть» кэш
- Проверить ключевые сценарии
- Снять режим технических работ
При корректной подготовке downtime составляет от 3 до 10 минут.
Что должно получиться в итоге
После успешного обновления PHP сайт получает:
- прирост производительности на 20–40%
- улучшенную безопасность
- снижение нагрузки на сервер
- корректную работу модулей Битрикса
- возможность дальнейших обновлений
- стабильную интеграцию с современными сервисами
- устранение старых технических ошибок
По сути — сайт становится быстрее, стабильнее и безопаснее без изменения логики.