Что делать с ошибкой SQLSTATE[HY000] [2002] No such file or directory (2002) intec.core? Часто задаваемые вопросы
В новом обновлении файлы Битрикса конфликтуют со старыми версиями нашего решением.
Чтобы это исправить, мы доработали модуль Intec.Core.
Для восстановления работы сайта нужно:
- Пройти по пути /bitrix/modules/intec.core/classes/
- Открыть файл Core.php
- Заменить его содержимое на код, представленный ниже
- Сохранить файл.
<?php
namespace intec;
require(__DIR__ . '/CoreBase.php');
use intec\core\CoreBase;
use intec\core\di\Container;
use intec\core\helpers\Encoding;
class Core extends CoreBase
{
}
spl_autoload_register(['intec\Core', 'autoload'], true, true);
Core::$classes = require(__DIR__.'/classes.php');
Core::$container = new Container();
// global $DB;
$settingsDB = include($_SERVER["DOCUMENT_ROOT"]."/bitrix/.settings.php");
$settingsDB = $settingsDB["connections"]["value"]["default"];
$DBHostParts = explode(':', $settingsDB["host"]);
$DBHostAddress = $DBHostParts[0];
$DBHostPort = isset($DBHostParts[1]) ? $DBHostParts[1] : null;
(new core\base\Application([
'id' => 'intec.core',
'basePath' => $_SERVER['DOCUMENT_ROOT'],
'charset' => Encoding::resolve(SITE_CHARSET),
'components' => [
'db' => [
'dsn' => 'mysql:host='.$DBHostAddress.';dbname='.$settingsDB["database"].(!empty($DBHostPort) ? ';port='.$DBHostPort : null),
'username' => $settingsDB["login"],
'password' => $settingsDB["password"],
'charset' => Encoding::resolve(SITE_CHARSET, Encoding::TYPE_DATABASE)
]
]
]));
unset($DBHostParts);
unset($DBHostAddress);
unset($DBHostPort);
Core::setAlias('@root/linked', dirname(dirname(dirname(dirname(__DIR__)))));
Core::setAlias('@bitrix', '@root'.BX_ROOT);
Core::setAlias('@upload', '@root/upload');
Core::setAlias('@modules', '@bitrix/modules');
Core::setAlias('@resources', '@bitrix/resources');
Core::setAlias('@templates', '@bitrix/templates');
Core::setAlias('@themes', '@bitrix/themes');
Core::setAlias('@intec/core/module', dirname(__DIR__));
Core::setAlias('@intec/core/libraries', '@intec/core/module/libraries');
Core::setAlias('@intec/core/resources', '@resources/'.Core::$app->id);
require(__DIR__.'/web.php');
Наши решения