Новости Joomla

Загадочный параметр $live_site в configuration.php Joomla

Загадочный параметр $live_site в configuration.php Joomla

Давным-давно, когда Joomla ещё была маленькой, в неё внедрили параметр $live_site. В ней хранился домен текущего сайта на случай, если Joomla не могла его определить из-за неверной настройки сервера. Нужно это было для разных SEO-компонентов, для использования редиректов и т.д.

Со временем для работы собственно сайта этот параметр перестал быть нужным. Уже в начале 2010-х стали встречаться рекомендации оставлять этот параметр пустым, дабы оный не привёл к лишним проблемам и путанице. Тем более, в web-админке нет места, где его можно указать или посмотреть его значение. Только в configuration.php, а туда смотрят не часто.

Однако, параметр всё же остался в ядре Joomla. Зачем он нужен? А нужен он в 2-х случаях:

  • для работы класса Joomla\CMS\Uri\Uri, который часто используется в коде Joomla для работы методов
    Uri::root() и
    Uri::base(), а значит может влиять и на работу в том числе ajax-скриптов.
  • для работы Joomla в CLI - командной строке сервера. В случае если вы используете в вашем CLI-плагине методы опять-таки класса Uri, то CLI ничего не знает о текущем домене, так как запускается вне web-сервера.

Поэтому домен нужно указывать принудительно. Либо с помощью параметра командной строки

--live-site, например,
—live-site=https://site.ru/. Со слешем на конце, иначе в CLI адрес сайта станет
https://site.rujoomla.php.Либо в параметре
$live_site в файле configuration.php, так как
CliApplication берёт настройку оттуда, если параметр команды не указан или пуст.

⚠️ Иначе в качестве хоста и url класса Uri будет установлено https://joomla.invalid/set/by/console/application. В самом же коде команды получить параметр

$live_site можно из объекта приложения

<?php protected function doExecute(InputInterface $input, OutputInterface $output): int { //... $live_site = $this->getApplication()->get('live_site'); //... }

и исходя из этого строить дальнейшую логику.

0 Пользователей и 1 Гость просматривают эту тему.
  • 0 Ответов
  • 80844 Просмотров
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Довольно часто у  пользователей после переноса сайта с локалки на сервер возникают ошибки вида:

Цитировать
Warning: require_once(/var/www/vhosts/site.ru/httpdocs/includes/version.php) [function.require-once]: failed to open stream: Operation not permitted in /var/www/vhosts/site.ru/httpdocs/includes/joomla.php on line 71

Fatal error: require_once() [function.require]: Failed opening required '/var/www/vhosts/site.ru/httpdoc/includes/version.php' (include_path='.:') in /var/www/vhosts/site.ru/httpdocs/includes/joomla.php on line 71

или

Цитировать
Warning: require_once() [function.require-once]: Unable to access /includes/version.php in /home2/wm6520/public_html/includes/joomla.php on line 71

Warning: require_once(/includes/version.php) [function.require-once]: failed to open stream: No such file or directory in /home2/wm6520/public_html/includes/joomla.php on line 71

Fatal error: require_once() [function.require]: Failed opening required '/includes/version.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home2/wm6520/public_html/includes/joomla.php on line 71

Что в принципе тоже самое по сути...

Итак, что означает эта ошибка? Она означает то, что Joomla не может подключить файл version.php. Как правило первое что делают пользователи, это проверяют, а есть ли такой файл в папке includes. Конечно файл там такой есть, но ошибка все равно продолжает появляться.

Проблема заключается в том, что очень часто, перенеся сайт с локального сервера на хостинг, пользователи забывают поправить значения переменных $mosConfig_live_site (адрес сайта) и $mosConfig_absolute_path (абсолютный путь к корневой директории сайта). В результате, в файле includes/joomla.php в 71 строки и происходит ошибка, при подключении первого же файла:

require_once( $mosConfig_absolute_path '/includes/version.php' );

Так как переменная $mosConfig_absolute_path не проинициализирована, файл ищется относительно текущей для скрипта директории (а она и так уже includes) и не находится.

К чему все это? К тому, что после переноса сайта с локального компьютера на сервер, или между серверами надо не забывать обновлять значения переменных $mosConfig_live_site и $mosConfig_absolute_path!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Что означает ошибка Failed opening required 'includes/joomla.php'?

Автор smart

Ответов: 0
Просмотров: 114920
Последний ответ 03.07.2008, 12:04:06
от smart
Ошибка MySQL: "Got error 134 from storage engine..."

Автор smart

Ответов: 0
Просмотров: 36077
Последний ответ 11.07.2007, 13:22:22
от smart
Что означает ошибка: "Only variables can be passed by reference in ..."

Автор smart

Ответов: 0
Просмотров: 53099
Последний ответ 16.06.2007, 12:27:54
от smart
Что означает ошибка "Not unique table/alias..."

Автор smart

Ответов: 0
Просмотров: 33226
Последний ответ 30.05.2007, 17:03:48
от smart
ОШИБКА: В установочном пакете невозможно найти XML-файл установки

Автор Aleshka

Ответов: 1
Просмотров: 6715
Последний ответ 05.04.2007, 16:44:32
от smart