Помилка в Joomla: Infinite loop detected in JError.

Для початку визначимося з чим маємо справу, т. Е. Що це означає. «Нескінченний цикл виявлений в JError». Виникає питання: а причому нескінченний цикл ?! Відповідь проста: Він виникає при спробі підключення до бази даних. Причина: Коли JSite (спадкоємець від JApplication) инициализируется, то він пробує почати нову. А це вимагає записи в таблицю сесії #__session. При підключення до бази даних при некоректному або відсутності параметра викликається JError :: raiseError. Налаштування за замовчуванням JError вказують, що задана за замовчуванням обробка помилок рівня це – E_ERROR, який викликає callback (відкат), який в кінцевому рахунку знову викликає запит JError :: customErrorPage (). Він намагається отримати копію глобального об’єкта з JFactory :: getApplication (), який призводить знову до того ж самому виключенню, яке буде викликатися знову і знову, викликаючи нескінченну проблему циклу. Досить заплутано, але що зробиш, з пісні слів не викинеш! 1. У більшості форумів пропонують такий варіант. Дивно, як це копіюється з одного форуму на інший форум як єдине рішення. Люди не надавайте чужі рішення, тим більше помилкові!

– Зайти на ftp в папку libraries-> joomla-> filesystem- Завантажити файл folder.php на ваш комп’ютер (не забудьте зробити резервну копію цього файли) – Відкрити файл folder.php редактором і знайти рядок $ obd = ini_get ( ‘open_basedir’) – Закоментіровать її // $ obd = ini_get ( ‘open_basedir’) – Зберегти зміни і закачати файл назад на сервер.В підсумку звичайно допомагає, всі радіють, ставлять плюси, але це чисто відношення до нашого питання не має. Обов’язково знаходиться кому не допоміг даний варіант вирішення проблеми. Отже основна причина не в етом.Лучше НЕ закомментіть, а написати $ obd = NULL з точки зору прогерія. Цей варіант тісно пов’язаний JFolder :: create: Path not in open_basedir paths Warning! – Failed to move fileЕто пов’язано з тим, що розробники навмисно заблокували можливість створення каталогів на серверах, де значення параметра ‘open_basedir’ не збігається з коренем сайта.В такому випадку взагалі нічого не виправляти в folder.php. В налаштуваннях Apache для хоста або в php.ini встановити -open_basedir «полний_путь_к_document_root :.» – де встановлена ​​Joomla і точка.Так що файл folder.php – невинний.

2. Другий варіант.

Пропозиція змінити тип configuration.php public $ dbtype = ‘mysqli’; на public $ dbtype = ‘mysql’; Деяким допомагає, але обов’язково знайдеться хтось скаже: «А в мене не працює, не допомогло».

3. Наступний варіант.

Налаштувати шляху tmp, log. public $ log_path = ‘/ home / u119234 / adsmirnyru / www / logs’; public $ tmp_path = ‘/ home / u119234 / adsmirnyru / www / tmp’; Багатьом допомагає, але знову не всім.

4. А вся біда полягає в configuration.php і тільки в ньому. Рядків багато, зупинимося тільки на деяких:

public $ dbtype = ‘mysqli’; який на локалке такий і повинен бути на хостингу public $ host = ’70 .108.70.10 ‘; поставте свій public $ user = ‘u119234’; а це ім’я користувача public $ password = ‘v34cmAaK’; пароль користувача public $ db = ‘b119234’; ім’я бази даних public $ dbprefix = ‘jos_’; увагу, це префікс таблиці, хостер завжди змінює, якщо він ставлять joomla public $ log_path = шлях до logs; public $ tmp_path = шлях до tmp; пишеться повний шлях в ” одінарнихСовет: через свій хостинг «дістаньтеся» до своєї бази даних MySQL, т. е. запустіть phpMyAdmin.Он вимагає користувача, пароля, імені бази даних. Якщо ви розкрили базу даних – відмінно. Ось ці дані проставте в рядки configuration.php. І ще перевірте, який префікс. З шляхами сподіваюся, понятно.Обично цього буває достатньо, щоб проблема зникла. Якщо перевірка «спотикається» на одному з рядків configuration.php при підключенні до бази даних – йде переривання і в «штопор», тобто в «нескінченний цикл».

У підтвердженні останнього варіанту, прийшов лист від хостера:

У новорічні свята відбувся злом деяких сайтів хостингу, який найчастіше виглядав як видалення однієї або декількох таблиць з баз даних mySQL. Аналіз показав, що зловмисник підключався до баз даних mySQL ззовні з використанням пароля вашої бази даних.

Для того, щоб забезпечити збереження ваших даних, ми вжили низку заходів, які ускладнять підключення, але ми також прийняли рішення негайно змінити пароль на mySQL базу даних для однієї або більше баз вашого облікового запису.Порушена база даних: gbuaНа жаль в цій ситуації ваш сайт ймовірно припинить роботу, так як в конфігураційних файлах вашого сайту зберігається старий пароль. Для продовження роботи необхідно подивитися поточний пароль до бази даних на сторінці «паролі на ресурси» в особистому кабінеті, і потім прописати його в конфігураційний файл вашого сайту по FTP.

Файл називається зазвичай configuration.php, settings.php, db_connect.php або як-то аналогічно.

Ссылка на основную публикацию