Как всегда и бывает в подобных ситуациях, поиск в сети не дал никаких результатов. Только витиеватые советы запускать какие-то самописные скрипты, в том числе 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 может обновляться некорректно: не удаляются старые версии файлов. Увы, это приводит к тому, что старые файлы могут подгружаться во время работы сайта. На данный момент проблема решается на уровне переместить/копировать директорию.
Комментарии
Написал Святослав
Опубликовано в: Joomla 3.8 выдаёт ошибку Call to undefined method JApplicationSite::isClient()Написал Сергей
Опубликовано в: Joomla 3.8 выдаёт ошибку Call to undefined method JApplicationSite::isClient()Написал Макс
Опубликовано в: Joomla 3.8 выдаёт ошибку Call to undefined method JApplicationSite::isClient()Написал Владимир Драч
Опубликовано в: Запуск Joomla под NginxНаписал Владимир Драч
Опубликовано в: Joomla 3.8 выдаёт ошибку Call to undefined method JApplicationSite::isClient()