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 может обновляться некорректно: не удаляются старые версии файлов. Увы, это приводит к тому, что старые файлы могут подгружаться во время работы сайта. На данный момент проблема решается на уровне переместить/копировать директорию.

1 Комментарий

  • Валерий

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

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

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

Оставить комментарий

Ваше мнение очень важно для нас! Обязательно выскажите Ваши мысли, пожелания и критику! Не стесняйтесь задавать вопросы. Скорее всего, ответ появится уже через 2-3 дня. Спасибо заранее.

Другие материалы в этой категории:

Go to top