Joomla CLI - это способ подключения к сайту на Joomla и выполнения ряда задач в командной строке терминала, по SSH либо в панели управления хостингом.
Интерфейс командной строки (CLI) – это программный механизм, используемый для взаимодействия с операционной системой с помощью клавиатуры. Посредством CLI можно вводить текстовые команды для настройки, навигации или запуска программ на любом сервере или компьютерной системе. Все операционные системы, включая Linux, macOS и Windows, имеют CLI для ускорения системного взаимодействия.
Стандартный формат подключения к CLI Joomla начинается с команды, которую вы, находясь в корневой директории сайта, введете в консоли таким образом, получив в ответ немалый перечень поддерживаемых команд:
php cli/joomla.php
Пробуем. Например:
Отлично. Ну, а теперь все-таки очистка кэша. Которую мы намерены автоматически запускать один раз в сутки.
Если вы используете виртуальный хостинг (shared hosting), а не VPS/VDS, попробуйте найти вкладку cron в панели управления.
Устанавливаем crontabs, либо убеждаемся, что уже установлен. Включаем, добавляем в автостарт (для RHEl, Centos):
sudo dnf install crontabs
sudo systemctl enable crond.service
sudo systemctl restart crond.service
sudo systemctl status crond
И - добавляем в cron первое задание. Что там у нас, очистка кэша? - в скобках; если вы ненавидите Vim примерно так, как ненавижу его я, воспользуйтесь выбором редактора:
EDITOR=mcedit crontab -e
Вводим эту строчку, не забыв далее перейти на следующую линию нажатием Enter, чтобы не получить ошибку; при необходимости добавляем sudo:
0 0 * * * php /var/www/<YOUR_SITE>/cli/joomla.php cache:clean
И - на этом все: устаревший кэш будет удаляться каждую полночь по времени вашего сервера. Напомню на всякий случай, если часы сервера тикают по UTC - запланированная таким образом очистка кэша будет произведена в три часа ночи по Москве.
Или так, два раза в сутки:
0 0,12 * * * php /var/www/<YOUR_SITE>/cli/joomla.php cache:clean
Проверяем:
tail -n 50 /var/log/cron
Проверяем, что задание для cron было введено правильно, с корректным синтаксисом.
Для текущего пользователя:
crontab -l
Для любого пользователя:
sudo crontab -u username -l
Проверка файла crontab:
crontab -l | crontab -
А кстати, сервис cron вообще у нас запущен, работает?
systemctl status crond
Проверка логов:
journalctl -u crond
С фильтрацией по времени:
journalctl -u crond --since "10 minutes ago"
По конкретной команде или пользователю:
journalctl -u crond | grep username

Комментарии в блоге