С 01.02.2023 будет ограничена поддержка наших продуктов на PHP версии ниже 8.0. Рекомендуемая версия PHP - 8.1 и выше. Вы используете версию PHP 7.4.33. Пожалуйста, запланируйте обновление PHP или обратитесь в службу технической поддержки вашего хостинга.
Это значит, что вам нужно поднять версию PHP на вашем сервере минимум до 8.0 (а лучше 8.1 и выше, т.к. в них исправлено много ошибок первой версии php8) к первому февраля, иначе вы не сможете устанавливать дальше обновления для вашего сайта.
Как поднять версию PHP
1) На облачном хостинге
Вам нужно обновить виртуальную машину VM Bitrix и тогда в ней появится возможность увеличить версию PHP.Снял для вас подробное видео с обновлением сервера и переходом на PHP 8:
2) На виртуальном хостинге
Если у вас виртуальный хостинг, это вы можете сделать в панели управления им. Если там нет доступной версии выше php 7.4, обратитесь в поддержку вашего хостинга.Вот пример панели управления хостинга ActiveCloud:
Что может пойти не так и как поправить ошибки сайта
Первая проблема:
[Ux11] Ошибка описания модуля "название_модуля". Не установлено соединение с сервером обновлений.В таком случае сайт работает, но нельзя установить обновления.
Решение проблемы:
Исправление в общем случае будет таким: в файле /bitrix/modules/<имя.модуля>/install/index.php
код:
function <имя.модуля>()заменить на:
function __construct()
Вторая проблема:
После перехода на PHP 8 белый экран. На PHP 7.4 все работает.В таком случае:
- Проверить параметр PHP short_open_tag, он должен быть включен (On). На VM Bitrix такой проблемы возникать не должно;
- Проверить логи веб-сервера, поправить найденные ошибки;
Третья проблема:
PHP Fatal error: $GLOBALS can only be modified using the $GLOBALS[$name] = $value syntax in /www/bitrix/modules/main/tools.php
Значит что до перехода на PHP 8 вы не установили все доступные обновления платформы на версии PHP 7.
Решение проблемы:
Начиная с версии главного модуля main 22.100.0
. ошибка отсутствует.
Четвертая проблема:
[TypeError] call_user_func_array(): Argument #1 ($callback) must be a valid callback, non-static methodЧаще всего такая ошибка может возникнуть в сторонних модулях, которые не адаптированы под PHP8.
Нужно определить в каком модуле проблема (в ошибке будут указаны пути, по ним можно определить).
Дальше в коде модуля нужно правильно объявить статическую функцию. Например:
function DeleteVirus()заменить на:
public static function DeleteVirus()
Пятая проблема
При выполнении скрипта возникла ошибка. Включить расширенный вывод ошибок можно в файле настроек .settings.php.Чтобы увидеть точную ошибку, вам нужно подключиться к серверу по FTP/SFTP и включить вывод ошибок в файле
/bitrix/.settings.php
вот таким образом: 'debug' => true,
После чего на сайте вы уже сможете увидеть конкретную ошибку.