8 (495) 118-29-56
Хостинг Портфолио Кейсы продвижения
+7 (495) 118-29-56 Многоканальный телефон

1С Битрикс: переход с PHP 7.4 на PHP 8

28.02.2023

В административном интерфейсе коробочных версий продуктов «1С-Битрикс» вы могли заметить такое уведомление:

С 01.02.2023 будет ограничена поддержка наших продуктов на PHP версии ниже 8.0. Рекомендуемая версии PHP – 8.1 или выше. Вы используете версию PHP 7.4.33. Пожалуйста, запланируйте обновление PHP или обратитесь в техническую поддержку вашего хостинга.

Почему важно обновить PHP

Версия PHP 7.х объявлена устаревшей и больше не поддерживается, для неё не выпускаются исправления функциональных ошибок и ошибок безопасности. Использование версий PHP ниже 8 крайне не рекомендовано.

Вы не сможете установить обновления коробочных версий продуктов «1С-Битрикс» для исправления ошибок и получения нового функционала, пока не обновите PHP до минимальной версии 8.0 или рекомендованной 8.1 в своем серверном окружении.

Запланируйте обновление PHP до минимальной версии 8.0 или до рекомендуемой PHP 8.1 в самое ближайшее время.


Как обновить PHP

Обновление версии PHP необходимо произвести поэтапно. Для этого обратитесь к вашему системному администратору или в техподдержку вашего хостинга.

  1. Обязательно создайте резервную копию вашей установки. Это может быть как резервная копия средствами продукта, так и полностью всего сервера, например виртуальной машины VMBitrix.

  2. Обновите ядро и все модули продукта до последних доступных версий в разделе Настройки > Marketplace > Обновление платформы.

    битрикс обновление на php8
  3. Обновите все сторонние решения из Маркетплейса до последних доступных версий в разделе Настройки > Marketplace > Обновление решений.

    php8 битрикс
  4. Обновите версию PHP до минимальной 8.0 или рекомендованной 8.1 на своем сервере.

    Если вы используете виртуальную машину VMBitrix, то обновить PHP можно через меню VMBitrix: 1. Manage servers in the pool - 8. Update PHP and MySQL. Подробнее читайте в отдельном курсе.
  5. Еще раз проверьте и установите все доступные обновления платформы и решений из Маркетплейса.

Куда обращаться в случае ошибок при обновлении версии PHP до 8.х

  • Если после обновлений PHP появятся ошибки в работе стандартных модулей продуктов «1С-Битрикс», то обратитесь в нашу службу поддержки или в 1С Битрикс.

  • По ошибкам в сторонних модулях из Маркетплейса обращайтесь к разработчикам модуля или в нашу службу поддержки


Примеры частых ошибок и их решения

Возможные причины ошибок после обновления до PHP 8.х:

  • До перехода на PHP 8.х не было обновлено ядро и все модули продукта до последних доступных версий в разделе Настройки > Marketplace > Обновление платформы.
  • До перехода на PHP 8.х не были уставлены обновления сторонних решений (они в названии имеют точку) на странице Marketplace > Обновление решений.
  • Разработчик не обновил модуль для поддержки PHP 8.

Основные действия по исправлению ошибок после обновления PHP до 8.х:

  • Вернуться на предыдущую версию PHP 7.x, когда все работало, обновить компоненты системы и сторонние модули, а затем повторно обновить версию PHP до 8.х.
  • Если предыдущие действия не исправили ошибки, то обратиться к разработчику модуля – смотрите раздел выше
  • Временно отключить модуль с ошибкой, переместив его из директории /bitrix/modules.
  • Удалить стороннее решение с ошибкой.

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

[Ux11] Ошибка описания модуля "name.module". Не установлено соединение с сервером обновлений. [Ux11] Ошибка описания модуля "name.module".

Ошибка может появиться после повышения версии PHP до 8.0 и выше. Сайт при этом работает, но установить или обновить другие решения нельзя, пока сохраняется ошибка.

Решение проблемы:

Исправление в общем случае будет таким: в файле /bitrix/modules/<имя.модуля>/install/index.php код:

function <имя.модуля>()
заменить на:
function __construct()


При выполнении скрипта возникла ошибка. Включить расширенный вывод ошибок можно в файле настроек .settings.php.

Решение проблемы:

Подключиться по FTP/SFTP или зайти в панель хостинга, включить вывод ошибок в файле /bitrix/.settings.php:

'debug' => true,

После чего на сайте будет выведен текст ошибки:

Пример ошибки
Non-static method Super\Functions\CSuperModRep::checkBack() cannot be called statically (0)
/home/bitrix/modules/super.mod/lib/functions/CSuperModRep.php:52
#0: Super\Functions\CSuperModRep::checkRepActive()
/home/bitrix/modules/super.mod/classes/general/CModEvents.php:1621
#1: CModEvents::OnPageStartHandler()
/home/bitrix/modules/main/classes/general/module.php:480
#2: ExecuteModuleEventEx(array)
/home/bitrix/modules/main/include.php:163
#3: require_once(string)
/home/bitrix/modules/main/include/prolog_before.php:14
#4: require_once(string)
/home/bitrix/modules/main/include/prolog.php:10
#5: require_once(string)
/home/bitrix/header.php:1
#6: require(string)
/home/index.php:1

В примере видно, что ошибку отдает сторонний метод CSuperModRep::checkBack() решения super.mod.

Исправление в общем случае будет таким: в коде checkBack() нужно правильно объявить статическую функцию:

function checkBack()
заменить на:
public static function checkBack()

PHP Fatal error: $GLOBALS can only be modified using the $GLOBALS[$name] = $value syntax in /www/bitrix/modules/main/tools.php

Данная ошибка может появиться после повышения версии PHP до 8.x в случае, если не были установлены все доступные обновления платформы на версии PHP 7.x.

Решение проблемы:

Эта ошибка была исправлена в обновлении главного модуля main 22.100.0.

Поэтому необходимо понизить версию PHP до 7.x, произвести обновление продукта и модулей до последней доступной версии. И только потом повысить версию PHP до 8.х.

[TypeError] call_user_func_array(): Argument #1 ($callback) must be a valid callback, non-static method COMP\BXE\EventHandlers::AdminContextMenuShow() cannot be called statically (0)...

Эта ошибка может появиться после повышения версии PHP до 8, но уже не очень очевидна:

Пример ошибки
[TypeError]
call_user_func_array(): Argument #1 ($callback) must be a valid callback, non-static method COMP\BXE\EventHandlers::AdminContextMenuShow() cannot be called statically (0)
/var/www//bitrix/modules/main/classes/general/module.php:480
#0: ExecuteModuleEventEx
/var/www/bitrix/modules/main/interface/admin_ui_list.php:1983
#1: CAdminUiContextMenu->Show
/var/www/bitrix/modules/main/interface/admin_ui_list.php:1168
#2: CAdminUiList->ShowContext
/var/www/bitrix/modules/main/interface/admin_ui_list.php:630
#3: CAdminUiList->DisplayFilter
/var/www/bitrix/modules/iblock/admin/iblock_element_admin.php:5217
#4: include(string)
/var/www/bitrix/admin/cat_product_admin.php:3

Из текста ошибки сразу не узнать директорию модуля, но данный метод COMP\BXE\EventHandlers::AdminContextMenuShow() принадлежит стороннему модулю.

Решение проблемы:

Исправление в общем случае будет таким: в коде AdminContextMenuShow() нужно правильно объявить статическую функцию:

function AdminContextMenuShow()
заменить на:
public static function AdminContextMenuShow()

Белый экран после повышения версии PHP до 8.х, а на PHP 7.4 все работает

Такая ошибка может быть из-за того, что в настройках PHP установлен параметр short_open_tag = Off.

Решение проблемы:

  • Нужно задать в конфигурационном файле PHP: short_open_tag = On.
  • Проверить логи веб-сервера на предмет ошибок и устранить их.
  • Также можно просмотреть ошибки на странице сайта с белым экраном: нажать правую кнопку мыши и выбрать Просмотр кода страницы, пролистать страницу вниз и проверить имеются ли ошибки на ней.

Возврат к списку


Более 150 Запущенных проектов

150 +

Запущенных проектов

В год мы запускаем более 150 сайтов и магазинов.

Более 50 Продвинутых сайтов

50 +

Продвинутых сайтов

Ежегодно мы продвигаем более 50 сайтов.

Более 80 Рекомендаций

80 +

Рекомендаций

Ежегодно более 80 клиентов приходят по рекомендации.

Более 14 Лет работаем

14 +

Лет работаем

Мы работаем в области создания и продвижения сайтов с 2008 года

Наши популярные услуги


Мы специализируемся на платформах

Свайп

Акции и спецпредложения Смотреть все

Надежная поддержка клиентов в
мобильном приложении