С 1 декабря 2022 года Битрикс начал сигнализировать пользователям о потребности обновить препроцессор в связи с прекращением поддержки своих продуктов. Уведомление отображается в разделе обновления платформы. Отказ приведет к приостановке обновлений вашего сайта, это может негативно отразиться на его развитии.
Важно заметить, что обновляться нужно правильно:
- Перед обновлением важно помнить о необходимости создания резервной копии сайта(ов) средствами хостинг провайдера;
- Проводить обновление и отладку сначала на тестовом сервере (песочница);
- Запросить у хостинг провайдера - создание резервной копии всего сервера (при наличии возможности создания “снимков”).
Поддержка будет ограничена с 1.02.2023 года
Уведомление содержит следующий текст: С 01.02.2023 будет ограничена поддержка наших продуктов на PHP версии ниже 8.0. Рекомендуемая версия PHP - 8.1 и выше. Вы используете версию PHP 7.4.33. Пожалуйста, запланируйте обновление PHP или обратитесь в службу технической поддержки вашего хостинга.
Уведомление об ошибке
Если уведомление на красном фоне, с заголовком ошибка, значит некоторые компоненты на вашем сайте уже лишены обновления.
Что делать и куда бежать?
Бежать никуда не придется, ниже представим два варианта решения ситуации, как нашими силами, так и самостоятельно. А если информации недостаточно, позвоните или напишите нам, разберем на вашем примере, наверняка это будет бесплатно.
Немного рекламы
Простота обновления зависит от варианта размещения сайта и сложности его разработки, а если Вы заказывали сайт у нас, то мы уже подготовили чек-лист для его обновления, просто сообщите нам. В любом другом случае у нас обширный опыт в разработке и после диагностики мы сообщим гарантированные сроки обновления.
Диагностика проводится бесплатно, а последующее обновление, после определения сложности, за отдельную плату.
Наши специалисты готовы взяться за решение задачи, стоимость работы в среднем от 5 000 рублей.
Стоимость может быть и ниже, к каждой задаче у нас индивидуальный подход, а для согласования деталей позвоните нам на номер +74953748879.
Как обновить версию PHP
Процедура обновления php пакетов затрагивает работу всех модулей сайта, поэтому все работы проводятся только вне рабочего времени, когда посетителей на сайте - минимальное количество.
Далее мы приведем примеры обновления на хостинге который всем рекомендуем, на случай, если захотите попробовать самостоятельно.
Обновление PHP на виртуальном хостинге Бегет
Хостинг от Бегет - это готовое решение для размещения интернет-проектов без необходимости администрировать сервер. Бегет - это хостинг для людей! Для тех кому нужны стабильно работающие сайты. Лозунг “Дарим людям удовольствие от работы с хостингом”, считаем полностью оправданным - за 8 лет работы с ними все наши сложности решались моментально, техническая поддержка на высоте!
Панель управления, а в нашем случае нужен раздел управления сайтами, поможет с лёгкостью сменить версию.
Переходите по ссылке cp.beget.com/sites и напротив своего сайта нажимаете шестеренку, это настройки.
Далее просто меняете версию, дождётесь применения настроек, процесс занимает не более минуты и проверяйте работу сайта, а потом переходите к обновлению платформы Битрикс. Уведомление о потребности обновить версию, в следующий раз, прилетит через пару-тройку лет.
Как обновить пакеты PHP на BitrixVM
В случае, когда у вас арендован выделенный сервер (VPS), вы можете обратиться к обновлению пакетов напрямую - через SSH консоль и меню BitrixVM.
- Manage servers it the pool (пункт 1);
- Update php and MySQL (пункт 8);
- Выбрать нужную версию php.
Порядок действий в конфигурационном меню (под root пользователем):
Смена версии PHP через ISP панель
Для переключения режима работы PHP, пройдите по пути "WWW" → "WWW-домены" и кликните 2 раза на имя необходимого домена.
В открывшемся окне выбираем версию php и нажимаем “ок”
Самостоятельно обновили версию PHP, но сайт сломался?
Ошибка №1: Статический методЕсли после обновления перестал загружаться сайт, значит надо его доработать. Вы встретились с ошибкой совместимости синтаксиса версий препроцессора.
[TypeError]
call_user_func_array(): Argument #1 ($callback) must be a valid callback, non-static method COpenstatCounter::OnBeforeProlog() cannot be called statically (0)
#0: call_user_func_array(array, array)
#1: ExecuteModuleEventEx(array)
#2: require_once(string)
#3: require_once(string)
#4: require_once(string)
#5: require(string)
#6: include_once(string)
#7: include_once(string)
Необходимо найти класс COpenstatCounter, и метод OnBeforeProlog, и сделайте его статичным.
Ошибка №2: Неработающий модуль отправки почты SMTPЧтобы решить проблему в файле var/www/html/vyatsu_new/bitrix/modules/wsrubi.smtp/classes/general/IdnaConvert.php
Исправьте (если не изменяли ранее файл).
строку 421 на $decoded[] = ord($encoded[$k]);
строку 435 на $digit = $this->_decode_digit($encoded[$enco_idx++]);
строку 958 на $output[$out_len] += ord($input[$i]) << (8 * (3 - ($i % 4) ) );
строку 829 на $v = ord($input{$k});
Причина - "Удалена поддержка устаревших фигурных скобок для доступа к смещению.", отмена вот подтверждение https://www.php.net/manual/ru/migration80.incompatible.php
Ошибка №3: Адаптация шаблона АСПРО под обновление версии php 8.x
TypeError]
call_user_func_array(): Argument #1 ($callback) must be a valid callback, non-static method COptimus::ShowPanel() cannot be called statically (0)
/var/www/bx41608/data/www/lash67.ru/bitrix/modules/main/classes/general/module.php:480
#0: ExecuteModuleEventEx(array)
/var/www/bx41608/data/www/lash67.ru/bitrix/modules/main/include.php:456
#1: require_once(string)
/var/www/bx41608/data/www/lash67.ru/bitrix/modules/main/include/prolog_admin_before.php:34
#2: require_once(string)
/var/www/bx41608/data/www/lash67.ru/bitrix/modules/main/admin/settings.php:16
#3: require_once(string)
/var/www/bx41608/data/www/lash67.ru/bitrix/admin/settings.php:2
Необходимо дождаться обновление шаблона и обновить решение АСПРО
Ошибка №4: [Ux11] Ошибка описания модуля "name.module". Не установлено соединение с сервером обновлений. [Ux11] Ошибка описания модуля "name.module".
шибка может появиться после повышения версии PHP до 8.0 и выше. Сайт при этом работает, но установить или обновить другие решения нельзя, пока сохраняется ошибка.
Решение проблемы:
Исправление в общем случае будет таким: в файле /bitrix/modules/<имя.модуля>/install/index.php код:
function <имя.модуля>()
заменить на:
function __construct()
Ошибка №5: При выполнении скрипта возникла ошибка. Включить расширенный вывод ошибок можно в файле настроек .settings.php. Решение проблемы:
Подключиться по FTP/SFTP или зайти в панель хостинга, включить вывод ошибок в файле /bitrix/.settings.php:
'debug' => true,
После чего на сайте будет выведен текст ошибки:
Ошибка №6: [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)...
[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
Из текста ошибки сразу не узнать директорию модуля, но данный метод COMP\BXE\EventHandlers::AdminContextMenuShow() принадлежит стороннему модулю.
Решение проблемы:
Исправление в общем случае будет таким: в коде AdminContextMenuShow() нужно правильно объявить статическую функцию:
function AdminContextMenuShow()
Дописать перед началом функции public static::
public static function AdminContextMenuShow()