Главная > Joomla > Ошибка в Joomla: Infinite loop detected in JError

Ошибка в Joomla: Infinite loop detected in JError

Иногда возникает довольно таки необычная ошибка в joomla: Infinite loop detected in JError как правило возникает в том случае если что-то неправильно указано в конфигурации Joomla (файл configuration.php в корне сайта).

В первую очередь проверьте следующие свойства (переменные) в конфигурации:

 public $dbtype = 'mysqli'; // если ваш сервер не поддерживает mysqli, попробуйте 'mysql'
 public $host = '[some host]'; // адрес хоста (уточняйте у своего хостинга)
 public $user = '[some database user]'; // имя пользователя для подключения к БД (уточняйте у своего хостинга)
 public $password = '[some password]';  // пароль пользователя для подключения к БД (уточняйте у своего хостинга)
 public $db = '[some database]'; // имя БД
 public $dbprefix = '[someprefix_]'; // префикс БД
 public $log_path = '/logs';
 public $tmp_path = '/tmp';

Что бы получить подробную информацию об ошибке, отредактируйте файл на сервере «/libraries/joomla/error/error.php»

 public static function throwError(&$exception)
 {
     static $thrown = false;

 // If thrown is hit again, we've come back to JError in the middle of throwing another JError, so die!
    if ($thrown) {
       // echo debug_print_backtrace();
       jexit(JText::_('JLIB_ERROR_INFINITE_LOOP'));
    }

Замените

// echo debug_print_backtrace();

на

 print"<pre>";
 echo debug_print_backtrace();
 print"</pre>";

После этого Joomla покажет более детальное описание ошибки, которые могли бы дать подсказки, о том как исправить настройки в configuration.php. Не забудьте после исправления ошибки выключить подробные отчеты об ошибках, закомментировав данную строчку.

Проверка соединения с БД скриптом

Статус соединения с сервером БД и наличие базы, указанной в настройках configuration.php можно проверить с помощью следующего php-скрипта:

<?php
header('Content-Type: text/html; charset=utf-8');

if (file_exists('configuration.php')) {
	require_once 'configuration.php';
	$config = new JConfig();
} else {
	die('Файл конфигурации не найден!');
}
$link = mysql_connect($config->host, $config->user, $config->password) or die('Соединться с базой не удлось. Ошибка - '.mysql_error());
$db_list = mysql_list_dbs($link);
while ($row = mysql_fetch_object($db_list)) {
   if ($row->Database === $config->db) {
   		$find_db = true;
   		break;
   } else {
   		$find_db = false;
   }
}
if ($find_db) {
	die('OK');
} else {
	die('База данных "'.$config->db.'" не найдена!');
}

?>

Создайте в корне сайта файл например connect.php с содержимым, указанным выше, далее в адресной строке браузера наберите адрес — «http://домен/connect.php»
При удачном соединении с БД появится надпись — «ОК». При ошибке выведется соответствующее сообщение.

Хотите купить игрушки недорого? В магазине toys-galaxy.ru вас ждет огромный выбор детских игрушек по доступным ценам.


Комментарии:

Об авторе: admin