При развертывании резервной копии сайта на Bitrix у себя на хостинге увидел ошибку:
Fatal error: Call to undefined function Bitrix\Main\DB\mysql_connect() in ... on line 40
Как оказалось, на предыдущем хостинге использовался PHP 5.x, а на моем PHP 7.0, а mysql_connect "... устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL."
В Bitrix нужно включить использование mysqli_connect следующим способом (подсказал знающий человек, сам бы долго разбирался)
- В конце файла
\bitrix\php_interface\dbconn.php
, перед?>
, нужно добавь строкуdefine("BX_USE_MYSQLI", true);
- В файле
\bitrix\.settings.php
, в настройках'connections' =>
array (
'value' =>
array (
'default' =>
array (
'className' => '\\Bitrix\\Main\\DB\\MysqlConnection',
'host' => 'localhost',
'database' => 'dbName',
'login' => 'root',
'password' => '123456',
),
),
),
Заменить на'className' => '\\Bitrix\\Main\\DB\\MysqliConnection',
Все заработало, Bitrix "завелся")
Проблема описана еще в 2014 году на форуме Bitrix, и может возникнуть на старых проектах, в обновлении ядра 14.5.2 добавлена полная поддержка mysqli. Включать mysqli нужно отдельно для старого и нового ядра.