Menu

Joomla 3.8 выдаёт ошибку Call to undefined method JApplicationSite::isClient()

При клонировании Joomla 3.8.8 или 3.8.10 появилась ошибка:

Joomla Fatal error: Call to undefined method JApplicationSite::isClient() in /var/www/html/ имя_сайта /plugins/system/logout/logout.php on line 48

Для разных версий может быть ошибка в строке 44, 48, 49 или других. Это не суть важно.

Самое удивительное в этой ситуации, что исходный сайт работал и работает, а клон отказывается запускаться!

Как всегда и бывает в подобных ситуациях, поиск в сети не дал никаких результатов. Только витиеватые советы запускать какие-то самописные скрипты, в том числе online (расположенные на чужом сервере)! Просто за гранью абсурда.

Неужели опять спасать себя самому?

Первые подозрения пали на конфигурацию хостинга и на версию PHP. Поэтому на разных VDS были испробованы все разумные варианты: PHP 5.6.35, PHP 5.6.36, PHP 7.0.10, PHP 7.2.6. Но это никак не повлияло на результат.

Пришлось разбираться уже досконально. В результате детального анализа появилась гипотеза, что Джумла подгружает некоторые файлы ядра "не оттуда". Например, factory.php был подключен из  libraries/joomla в то время как должен был бы из libraries/src. Редактирование на скорую руку показало, что таких файлов больше трёх!.. Дальше я копаться не стал.

В результате было решено вручную заменить файлы ядра Джумлы, которые располагаются в директории /libraries. Пришлось переименовать старую /libraries в /libraries.old. Затем с официального сайта был скачан полный архив с актуальной версией Joomla в формате zip, и вот уже из него скопирована /libraries. О, да... Так заработало!

Победа!

Выводы

С версии 3.7.5 движок Joomla может обновляться некорректно: не удаляются старые версии файлов. Увы, это приводит к тому, что старые файлы могут подгружаться во время работы сайта. На данный момент проблема решается на уровне переместить/копировать директорию.

5 комментарии

  • Валерий

    написал Валерий

    Воскресенье, 02 Сентябрь 2018 16:16

    Помогло!
    Благодарю.

    Пожаловаться
  • Владимир Драч

    написал Владимир Драч

    Вторник, 25 Декабрь 2018 00:00

    Валерий, спасибо за отзыв!

    Пожаловаться
  • Макс

    написал Макс

    Пятница, 04 Январь 2019 11:09

    Спасибо, тоже помогло! Система обновлений в Joomla реализована не лучшим образом. Всегда делаю бэкап перед обновлением. Каждый раз с опаской жму "Обновить" и жду, что что-то вылезет и пойдет не так :)

    Пожаловаться
  • Сергей

    написал Сергей

    Суббота, 19 Январь 2019 22:40

    Спасибо!
    Помогло. Быстро и эффективно. :)

    Пожаловаться
  • Святослав

    написал Святослав

    Вторник, 03 Август 2021 02:33

    Спасибо помогло. Но ВАЖНЫЙ НЮАНС! Промаялся целый день, суть именно в том, чтобы полностью заменить папку libraries, т.к. от старой версии в ней остаются файлы, которые коверкают работу движка (ClassLoader.php , composer_autoload.php и т.д.) , если заливать поверх или устанавливать обновления, они остаются, и - видимо - где-то в коде подключаются.

    Пожаловаться
Авторизуйтесь, чтобы получить возможность оставлять комментарии
Go to top