02.07.2022
Многим клиентам 1С Битрикс начали приходить письма что "Необходимо обновить вашу версию продукта 1С-Битрикс", многие решились делать обновления самостоятельно запросив до этого у нас счет на продление 1С Битрикс. В итоге почти 99% клиентов начали массово писать что не могут обновить платформу, так как (цитируем дословно): "Там пишет ошибка, обновить версию PHP [скриншот 1] мы написали на хостинг нам поменяли версию на 7.4 а сайт выдает ошибку [скриншот 2] и сайт не работает." Мы приступили срочно разбираться к решению проблемы.
Мы откатили PHP снова на 5.6 и заходим в админку, там у нас были ошибки по консоли которые легко правятся и на это даже не будем таратить время чтобы прикладывать скриншоты и что делать, там все просто и с инструкцией. Далее на странице обновления мы видим вот такое такое сообщение:
[скриншот 1]
Ага... Ясно понятно)))) а при переключении с PHP с 5.6 на PHP 7.4 вылезают ошибки
[скриншот 2]
Почему так?
Все оказалось просто, как известно, используемое в продукте 1С Битрикс расширение mysql объявлено устаревшим в PHP 5.5.0. Поэтому в новом ядре было сразу предусмотрено использование актуального расширения mysqli. Но в одном из этапов разработки Компания 1С решила совместить старое и новое ядро в один жизненный цикл. Так как старое ядро не умело работать с mysqli, то и в новом его не получалось использовать.
И вот в обновлении ядра 14.5.2 добавлена полная поддержка mysqli. Включать mysqli нужно отдельно для старого и нового ядра:
Откройте файл dbconn.php через FTP
\bitrix\php_interface\dbconn.php
вставьте
define("BX_USE_MYSQLI", true); в конце перед "?>"
далее
\bitrix\.settings.php
и заменяем старый на новый
'connections' =>
array (
'value' =>
array (
'default' =>
array (
'className' => '\\Bitrix\\Main\\DB\\MysqliConnection',
'host' => 'localhost',
'database' => 'sitemanager', /* тут указываем вашу базу данных)*/
'login' => 'root', /* тут указываем вашего пользователя базы данных) */
'password' => '*****', /* ну и пароль от базы данных)*/
),
),
),
Внимание, в php должно быть установлено расширение mysqli, дополнительные проверки на наличие расширения не производятся! Так же как они не делались для mysql. Кроме того, в этом обновлении улучшилась совместимость с php 5.5 (исправлены регулярные выражения с модификатором "e").