Joomla 4: мощь CLI приложений

Эта статья - дополненный (комментариями и скриншотами) перевод статьи июньского номера Joomla Community Magazine за 2022 год, автор - Brendan Hedges. Перевод ранее был опубликован на Хабре. Далее повествование автора.

В Joomla 4 из коробки поставляется новый, улучшенный CLI (интерфейс командной строки), который входит в состав в ядра. Теперь вы можете выполнять задачи технического обслуживания, даже не заходя на свой веб-сайт. Давайте выясним, как это сделать.

"Одна Joomla для всех" - это громкое заявление! Но это действительно так. С одной стороны, Joomla - это удобная CMS с интуитивно понятной панелью администратора даже для начинающих пользователей. И в то же время Joomla - это мощное CMS-приложение [под капотом - полноценный PHP-фреймворк - Т.С.], которое обладает множеством функций для продвинутых пользователей. Таким образом, Joomla идеально подходит для всех веб-приложений: от простых 5-страничных сайтов-визиток до сложных и высоконагруженных интернет-магазинов. [Кстати, по теме: История взлёта и падения новостного сайта от 10 тысяч до 1 млн уников в сутки и обратно и при чём тут Joomla! - Т.С.]

На самом деле, если вы просмотрите JED (каталог расширений Joomla), Вы найдёте там расширения, позволяющие сделать практически всё, что бы Вы ни захотели создать. Если для вашего будущего веб-сайта нет расширения - не волнуйтесь. Существуют доступные расширения, которые помогут вам создать свое собственное индивидуальное расширение для Joomla.

Вы даже можете начать с нуля и использовать стандартную и хорошо структурированную платформу Joomla для создания собственного расширения. В случае успеха вы можете добавить его в JED и позволить другим пользователям использовать ваше расширение.

Это было бы круто, правда?

Одна из особенностей Joomla, в частности Joomla 4, дающая такие возможности - это новый улучшенный [по сравнению с Joomla 3 - Т.С.] CLI (интерфейс командной строки), поставляемый в ядре Joomla 4.

Давайте посмотрим на CLI и узнаем для чего его можно использовать.

С годами технологии совершенствуются, Joomla позволяет выполнять определенные задачи все легче и проще, даже не заходя в админку сайта. Недавно мы говорили о планировщике задач Joomla [Joomla Community Magazine: Get to know the new Joomla! Task Scheduler - текст на английском языке - Т.С.], который позволяет настраивать задания Cron для повторяющихся задач из самой Joomla. Существует также Joomla API, который можно использовать для управления Joomla с удаленного источника / веб-сайта. Существует также интерфейс командной строки Joomla.

Joomla CLI - это способ подключения к вашему сайту на Joomla и выполнения задач с удаленного терминала, например, по SSH с панели управления хостингом вашего веб-сайта.

Это особенно удобно и экономит время, если вы запускаете несколько сайтов с одного аккаунта хостинга.

Давайте начнем со знакомства с интерфейсом командной строки.

Что такое CLI?

Интерфейс командной строки (CLI) - это текстовый пользовательский интерфейс (UI), который используется для запуска программного обеспечения, управления компьютерными файлами и взаимодействия с компьютером /сервером. Интерфейс командной строки позволяет пользователю отвечать на визуальные подсказки, вводя отдельные команды в интерфейсе, а затем получать ответы таким же образом. Командная строка Windows - это интерфейс, с которым вы уже знакомы.

Консоль командной строки в Windows

Пользователи реагируют на визуальные подсказки, вводя команду в указанной строке и получая ответ от операционной системы. Это программное обеспечение выдает подсказку, пользователи отвечают, а затем приложение последовательно реагирует на команды. Благодаря этому взаимодействию команд и ответов пользователь может выдавать набор команд, которые выполняются системой или приложением, таким как Joomla.

Доступные подсказки и команды зависят от вашей операционной системы и конкретного интерфейса командной строки, но могут быть сотни, если не тысячи, различных исполняемых команд. Многие команды одинаковы для разных платформ, и вы вполне можете быть знакомы с некоторыми из них. Однако есть некоторые команды, которые специфичны для конкретного интерфейса командной строки и используемого вами приложения.

Возможно, вы уже знакомы с различными приложениями, в которых можно использовать интерфейс командной строки. Распространенные приложения включают в себя "Терминал" на компьютерах Mac, в Windows он известен как "командная строка", а на вашем веб-сервере в панели управления его называют как SSH.

Ввод текстовых команд для управления вашим приложением на первый взгляд может показаться сложным, однако этим частенько пользуются в Linux и других операционных системах на базе Unix. Этим навыком стоит овладеть, если вы хотите стать разработчиком сайтов. Как только вы познакомитесь с терминологией использования CLI, вы обнаружите и другие варианты использования, с которыми столкнетесь по мере оттачивания своих навыков.

Например, использование Node.js для создания веб-приложения в среде разработки (такой как Jet Brains Webstorm) или выполнение команд в облаках Amazone с использованием программ терминала в духе PuTTY или SSH.

Однако существуют доступные "оболочки" с графическим интерфейсом, которые считаются более простыми в использовании новичками. Хотя, строго говоря, термин "оболочка" обычно используется для описания интерпретатора командной строки. Оболочкой может быть любая программа, содержащая пользовательский интерфейс, включая полностью графически ориентированные программы.

Где находится CLI Joomla?

В отличие от многих других расширений Joomla, которые вы можете найти в панели администратора Вашего сайта Joomla, CLI Joomla является частью ядра. Таким образом, нет никаких настроек, с которыми нужно возиться, он просто есть и тихо работает в фоновом режиме вашего веб-сайта Joomla.

Как использовать CLI Joomla?

Сначала о главном. Прежде чем вы сможете получить доступ к интерфейсу Joomla CLI, вам нужно будет создать способ прямого подключения к хосту вашего веб-сайта без фактического входа в Joomla или Cpanel вашего хоста.

Cpanel рекомендует использовать настольное приложение под названием "PuTTY", если вы запускаете Windows на своем компьютере, хотя, если вы используете Windows 10 или более позднюю версию, у него есть собственный SSH-клиент Windows, к которому вы можете получить доступ из командной строки.

Чтобы получить доступ к командной строке, откройте диалоговое окно "Выполнить", нажав клавишу Windows + r. Затем в диалоговом окне Выполнить введите cmd и нажмите кнопку ОК, чтобы открыть окно командной строки.

Если вы используете Linux или используете Mac, вполне возможно, что у вас уже установлено программное обеспечение для прямого подключения к серверу вашего веб-сайта. На основе этой статьи я предположу, что вы используете Windows, как и я.

Каждый способ доступа к серверу вашего веб-сайта похож, но вам придется сначала настроить SSH-доступ на панели управления вашего веб-хостинга, прежде чем вы сможете подключиться к CLI Joomla.

В этой статье я буду использовать "PuTTY", поскольку нахожусь на компьютере с Windows 8, и есть несколько проблем, которые мне пришлось решить на этом пути, поэтому я поделюсь некоторыми из них с вами, чтобы сэкономить вам время на настройке SSH-доступа к серверу вашего веб-сайта.

Поэтому перейдите на страницу загрузки "PuTTY" и при необходимости установите "PuTTY" на свой компьютер.

страница загрузки PuTTY
Страница загрузки "PuTTY

Следующий шаг - активировать SSH на Cpanel вашего веб-хостинга или другой панели управления веб-хостингом, например, Plesk. Мы будем придерживаться Cpanel, поскольку она самая популярная.

Настройте свои ключи доступа SSH

Чтобы использовать SSH, вам нужно настроить пару открытых/закрытых ключей в Cpanel и управлять ими. На первый взгляд инструкции кажутся сложными, но на самом деле они довольно просты. На веб-сайте A2 Hosting есть хорошая статья с большим количеством информации для различных операционных систем. Инструкции могут немного отличаться от хоста к хосту, поэтому я бы посоветовал вам изучить это для вашего конкретного случая использования.

Активация SSH в CPanel
Активация SSH в CPanel

Также стоит помнить, что вам придется загрузить свой закрытый ключ на свой компьютер, поэтому помните, куда вы его положили. Если вы используете собственный SSH-клиент в Mac / Linux или Windows 10, вам следует сохранить файл ключа в:

  • Mac/Linux: каталог /home/username/.ssh. (Замените имя пользователя своим собственным именем пользователя.)
  • Windows 10: каталог \Users\username.ssh (замените имя пользователя на свое собственное имя пользователя.)

Это делается для того, чтобы ваша терминал знал, где найти ваш ключ. Если вы используете "PuTTY", то просто помните, где он был загружен, так как вам нужно будет указать его в настройках "PuTTY".

Настройте PuTTY для доступа к серверу

1. Если вы уже установили "PuTTY", найдите значок на рабочем столе и откройте программу. Если нет, установите его прямо сейчас. Значок на рабочем столе для открытия PuTTY выглядит следующим образом:

Иконка PuTTY на рабочем столе
Иконка PuTTY на рабочем столе

Настроить PuTTY для доступа к вашему серверу несложно, вам нужно ввести всего 3 вещи. Они могут незначительно отличаться в зависимости от хостинга вашего веб-сайта, поэтому вам придется проверить это для ваших собственных обстоятельств. В моем случае мне нужно сделать следующее:

1. Ввести имя пользователя для моей учетной записи хостинга вместе с доменом, к которому я хочу получить доступ. Это должно быть указано в поле "Имя хоста (или IP-адрес)" на вкладке категории "Сеанс". 

Настройка PuTTY

2. Затем в поле ‘Порт’ введите номер порта вашего SSH-соединения. Значение по умолчанию равно 22, но многие хосты меняют это значение, чтобы повысить безопасность соединения. Мой номер 7822.

Настройка PuTTY

3. Теперь вам нужно открыть новую вкладку в дереве настроек слева, прокрутите вниз до "SSH", затем откройте ‘Auth’. В нижней части вкладки перейдите в папку, в которую вы сохранили загруженный закрытый ключ SSH, выделите его и нажмите "Открыть’.

Настройка PuTTY путь к приватному ключу
Настройка PuTTY. Путь к закрытому ключу.

4.  Вернитесь на вкладку "Сеанс" и в поле "Сохраненные сеансы" добавьте к нему запоминающееся имя. Затем нажмите кнопку ‘Сохранить’. 

Настройка PuTTY: сохранение настроек
Настройка PuTTY: сохранение настроек

5. Теперь вы готовы подключиться к SSH-клиенту вашего веб-хостинга с помощью "PuTTY". Вы можете либо дважды щелкнуть по своему сохраненному запоминающемуся имени, либо нажать кнопку Открыть. 

Настройка PuTTY: список конфигураций
Настройка PuTTY: список конфигураций

Если все прошло по плану, теперь вы должны увидеть окно терминала PuTTY. Это должно выглядеть примерно так:

Терминал PuTTY
Терминал PuTTY

С этого момента окно терминала должно выглядеть одинаково, независимо от используемой операционной системы или SSH-клиента. Команды, которые вы будете выполнять, также будут одинаковыми. Далее мы будем просто говорить ‘терминал’.

Следующим шагом будет ввод пароля, который вы создали при настройке открытых/закрытых ключей в Cpanel. Если вы не сделаете этого в течение установленного периода времени, сервер вашего веб-сайта закроет соединение с вашим терминалом, и вы получите сообщение об ошибке, подобное этому:

Ошибка SSH PuTTY: remote side unexpectedly cloesed netwok connection
Ошибка SSH PuTTY: remote side unexpectedly cloesed netwok connection

Вот одна из особенностей использования терминала для подключения к серверу вашего веб-сайта. При вводе вашего пароля ничего не отображается! Ни звездочек, ни черточек, ничего. Я также заметил, что я также не могу скопировать и вставить свой пароль в окно терминала (хотя это может быть специфично для "PuTTY’).

Я сторонник сверхдлинных надежных паролей, но это может быть исключением из правил! Хотя я бы все же посоветовал вам следовать рекомендациям вашей Cpanel относительно надежности созданного пароля. Как упоминалось в предыдущих статьях, пароль john123 недостаточно хорош. В зависимости от ваших SSH-ключей, операционной системы и экземпляра Cpanel Вам может потребоваться ввести пароль только для первоначального подключения. Но последующие сеансы не будут запрашивать ваш пароль. Это может касаться вас, а может и не касаться.

Использование вашего терминала для доступа к интерфейсу Joomla

Итак, продолжаем, вводим свой пароль, затем нажимаем "Enter" на клавиатуре.

Терминал PuTTY: использование с Joomla

Если все прошло хорошо, вы должны увидеть новую строку информации, которая выглядит следующим образом:


username@123host [~] #

Это корневой каталог для файлов вашего веб-сайта. В зависимости от вашего хостинга, сайт, скорее всего, будет находиться в вашей папке ‘public_html’.

Если вы установили Joomla в другую папку на сервере, Вам нужно будет перейти в неё. Это также верно и для тех случаев, когда Вы используете более одного экземпляра Joomla на одном и том же аккаунте хостинга.

Пришло время смахнуть пыль с вашего старого руководства по DOS!

В моем случае мой домен designwebs.co.uk находится в папке, которая находится снаружи моей папки public_html, например:

 Файловая структура сервера, папка public_html

Если вы помните команды DOS, вы можете просто ввести cd [имя вашей папки здесь], поэтому в моем случае команда cd будет выглядеть как cd desighwebs.co.uk там, где курсор мигает в окне вашего терминала. CD - это краткая команда, которая просто означает “Change Directory”.

Теперь я нахожусь в правильном каталоге для работы с Joomla CLI. Если вы хотите проверить, что находитесь в том же каталоге, что и Joomla, вы можете просто ввести команду ‘dir’ (сокращенно от 'directory') в командной строке, и увидите список уже более знакомых файлов и папок Joomla в этом каталоге. Вот так:

Файловая структура Joomla 4 в CLI интерфейсе PuTTY
Файловая структура Joomla 4 в CLI интерфейсе PuTTY

Начнем пользоваться Joomla CLI

Кажется, потребовалось много времени, чтобы добраться до этого момента, но это не должно занять слишком много времени, как только вы освоите использование окна вашего терминала или SSH-клиента, такого как ‘PuTTY’. Весь смысл интерфейса командной строки Joomla заключается в ускорении выполнения задач, особенно тех, которые связаны с ожиданием их завершения. Резервное копирование вашего веб-сайта - хороший пример использования CLI Joomla. Мы вернемся к этому позже.

Итак, давайте сделаем наше первое обращение в CLI Joomla и убедимся, что мы подключены и все работает так, как предполагается.

Стандартный формат подключения к CLI Joomla начинается с:

php cli/joomla.php

Хотя, если вы войдете в каталог cli (команда cd my-website-folder-name/cli), вместо того, чтобы работать из корневого каталога Joomla, вы можете использовать: 

php joomla.php

Обновленная документация Joomla по CLI содержит больше информации о задачах, которые вы можете выполнить с помощью командной строки в Joomla. Хорошей задачей для проверки нашего подключения было бы выяснить, на какой версии Joomla работает веб-сайт. Итак, в командной строке введите:

php cli/joomla.php core:check-updates

и нажмите "Enter".

Проверка версии Joomla через CLI в PuTTY
Проверка версии Joomla через CLI в PuTTY

Примечание по PuTTY:

Если вы копируете команду Joomla CLI с помощью функции копировать/вставить, всё, что вам нужно сделать, чтобы вставить ее в терминал PuTTY, - это один клик правой кнопкой мыши по курсору.

Если всё подключено и работает, терминал Вас обрадует сообщением с подробным описанием версии Joomla, на которой работает ваш сайт.

Результат проверки версии Joomla через CLI 
Результат проверки версии Joomla через CLI

Формат CLI команд Joomla

При вводе команды в терминал для доступа к CLI Joomla используется определённый формат, который может состоять из 2 или более частей, в зависимости от того, что вы хотите сделать, и сколько информации вам требуется вернуть.

Каждый разработчик компонентов Joomla может предлагать различные уровни управления и извлечения данных для своего программного обеспечения на основе CLI Joomla. Одним из первых пользователей этой функциональности Joomla является Akeeba, поэтому, используя Akeeba Backup в качестве примера, вы можете ознакомиться практически со всеми функциями со своего терминала.

Следующая команда CLI запрашивает данные резервной копии, хранящиеся для конкретной резервной копии:

php cli/joomla.php akeeba:backup:info 1 --format=json

Давайте разложим по полочкам, что это всё означает:

php cli/joomla.php URL-адрес, необходимый для запуска CLI Joomla
akeeba уникальное имя команды
backup Конкретное программное обеспечение
info action - действие, которое нужно выполнить.
1 аргумент для команды (если нужен)
--format=json одна или несколько опций для команды. В данном случае выходные данные нашей команды CLI будут в формате Json.

Обязательно обратите внимание на пробелы и двоеточия в команде, чтобы она работала должным образом.

 Пример запуска команды Akeeba Backup в Joomla 4 через CLI
Пример запуска команды Akeeba Backup в Joomla 4 через CLI

Команды CLI Joomla следуют аналогичному принципу аргументов и опций, но поскольку они являются "базовыми" командами, они немного проще.

На данный момент команды CLI Joomla делятся на 11 категорий:

  • Кэш (cache),
  • Основные настройки (config)
  • Ядро (core),
  • База данных (database),
  • Расширения (extension),
  • Поиск (умный поиск, finder),
  • Планировщик задач (Scheduler),
  • Сессия пользователя (Session),
  • Сайт (Site),
  • Обновление (Update)
  • Пользователь (User)

Каждая из них имеет свои собственные функции: 

php cli/joomla.php core:check-updates # Проверяет обновления Joomla

php cli/joomla.php site:down # Переведет сайт в режим оффлайн

Добавление опций к параметрам команды CLI поможет получить более подробные результаты. Например, если вы хотите узнать, какие расширения установлены на Вашем сайте, Вам следует использовать команду:  

php cli/joomla.php extension:list
 Результат выполнения CLI команды cli/joomla.php extension:list
Результат выполнения CLI команды cli/joomla.php extension:list

Но, если вы хотите найти только определенные расширения определенного типа, например, установленные языки, Вы можете добавить в ту же команду опцию --type=language:  

php cli/joomla.php extension:list --type=language

Эта команда вернет следующую информацию: 

Результат выполнения CLI команды cli/joomla.php extension:list --type=language
Результат выполнения CLI команды cli/joomla.php extension:list --type=language

Совет: если ввести в терминал php cli/joomla.php , то Вы получите список всех команд и описаний Joomla CLI.

Получить список всех доступных CLI команд Joomla с помощью php cli/joomla.php
Получить список всех доступных CLI команд Joomla с помощью php cli/joomla.php

Перейдём к практике

Мы собираемся выполнить 4 основные задачи по техническому обслуживанию, которые вы должны регулярно выполнять на нашем веб-сайте Joomla. Все это из терминала, без входа в панель администратора Joomla. Мы собираемся использовать 4 простые команды CLI для выполнения этих задач.

Во-первых, нам нужно собрать команды, которые мы будем использовать. Вы можете найти текущие команды Joomla CLI в приведенной ниже шпаргалке. Поскольку Akeeba Backup является наиболее широко используемым расширением для резервного копирования Joomla, мы будем использовать его для создания резервной копии.

Нужные нам CLI команды:

  • php cli/joomla.php update:extensions:check
  • php cli/joomla.php akeeba:backup:take
  • php cli/joomla.php extension:discover:install
  • php cli/joomla.php cache:clean

Если вы еще этого не сделали, войдите в выбранный вами терминал и убедитесь, что вы находитесь в корневом каталоге Joomla.

Задача первая: Проверить наличие обновлений расширений

Введите php cli/joomla.php update:extensions:check в своём терминале.

 Проверить наличие обновлений расширений через CLI в Joomla 4
Проверить наличие обновлений расширений через CLI в Joomla 4

В моем случае обновления не были доступны для установки. Сообщение об успешном завершении отображается зеленым цветом. Отмечу, что моё время, затраченное на выполнение этой команды, составило менее 3 секунд.

Задача вторая: создание бэкапа

Теперь пришло время сделать резервную копию с помощью Akeeba Backup. Введите php cli/joomla.php akeeba:backup:take в своём терминале.

Создание бэкапа Akeeba Backup через CLI
Создание бэкапа Akeeba Backup через CLI

Очевидно, что создание резервной копии сайта занимает немного больше времени. Во время процесса резервного копирования ход выполнения подробно описывается в окне терминала во многом так же, как вы видите в бэкэнде администратора Joomla.

Успешное выполнение резервного копирования отображается зеленым цветом. Из временных меток вы можете видеть, что для завершения потребовалось всего 1 минута 10 секунд. Что довольно неплохо.

Задача третья: установка обновлений расширений

Пришло время обновить наши расширения. Введите php cli/joomla.php extension:discover:install в терминале.

Установка обновлений расширений Joomla 4 через CLI через команду cli/joomla.php extension:discover:install
Установка обновлений расширений Joomla 4 через CLI через команду cli/joomla.php extension:discover:install

В моем случае все уже обновлено, так что устанавливать нечего. В этом случае CLI может дать советы о том, что Вы могли бы сделать ещё. Мне CLI Joomla предложил попробовать запустить extension:discover. Это работает так же, как запуск опции "Установка расширений → поиск" в панели администратора.

Задача четвёртая: очистка кэша Joomla

Наконец, попробуем очистить кэш Joomla. Введите php cli/joomla.php cache:clean в своём терминале.

Очистка кэша Joomla 4 с помощью CLI команды php cli/joomla.php cache:clean
Очистка кэша Joomla 4 с помощью CLI команды php cli/joomla.php cache:clean

Как только кэш будет очищен, вы снова увидите зеленое сообщение об успешном завершении.

Сообщения об ошибках

Если вы допустите опечатку при вводе команды или введете неизвестную команду, вы получите сообщение об ошибке, выделенное красным цветом. Сообщение будет содержать небольшую полезную информацию, которая поможет вам разобраться в том, что пошло не так. Вы можете увидеть на изображении ниже, что там написано:

  • Command “cache:clea” is not defined
  • The command “cache:clea” does not exist

Конечно, команда "cache:clea", не существует в Joomla CLI, поэтому она не выполнена и интерфейс Joomla выдает ошибку.

Как выглядят ошибки в CLI интерфейсе Joomla 4
Как выглядят ошибки в CLI интерфейсе Joomla 4

Проверка Akeeba Backup в панели администратора

Не всегда бывает возможно проверить, действительно ли была запущена команда CLI, без некоторого копания в файлах и настройках Joomla. Но некоторые расширения упрощают это. В панели администратора Joomla в компоненте Akeeba Backup есть панель "Статистика резервного копирования" с правой стороны. Здесь можно увидеть, что последнее резервное копирование было инициировано из командной строки. В нем также содержится подробная информация о сделанной резервной копии и времени, в течение которого она была сделана.

 Akeeba Backup в Joomla 4
Akeeba Backup в Joomla 4

 

Каковы преимущества использования CLI Joomla?

В этой статье, как и во многих других статьях Joomla Community Magazine, описана лишь малая часть того, что происходит "под капотом" Joomla. Как и во многих других статьях, мы лишь ‘приоткрыли занавес’ для этой обновленной функции Joomla 4.

Я думаю, что самое большое преимущество знакомства с интерфейсом CLI Joomla заключается в том, насколько быстро можно выполнять самые необходимые задачи. От начала до конца четыре задачи, описанные выше, заняли около 2 минут, и это включало в себя запуск терминала "Putty", подключение к моему серверу через SSH, ручной ввод пароля для входа и копирование / вставку каждой из четырех команд по очереди.

Если вы умножите выполнение одних и тех же задач на несколько веб-сайтов, это сэкономит много времени.

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

Представьте, сколько времени потребуется, чтобы вручную войти в систему администратора Joomla и запустить Akeeba Backup индивидуально для 100 различных веб-сайтов в вашем портфолио?

В этом весь смысл приложения командной строки. Оно очень способствует бесконечной настройке. В сочетании с чем-то вроде Ansible его можно даже использовать для выполнения команд через парк, состоящий из сотен серверов, на которых работают тысячи сайтов.

Инструменты командной строки работают вместе, чтобы дать вам сверхспособности.

Nicholas, Akeeba Ltd

Лично я, теперь, когда я настроил "PuTTY", я собираюсь добавить SSH-доступ ко всем своим веб-сайтам и запускать эти обновления, резервные копии и очистку кэша каждый раз, когда я получаю одно из тех писем с обновлениями "Это отправлено с вашего сайта", которые засоряют мой почтовый ящик. Я думаю, что изначально стоит потратить время на создание ключей доступа SSH и настройку терминала. Я могу даже потратить время на написание пакетной команды для пакетной работы с моими сайтами!

Шпаргалка Joomla CLI

php cli/joomla.php # + команда из списка ниже

Cache 

cache:clean - Очистка элементов кэша с истекшим сроком действия

Config 

config:get - Отображение текущих параметров конфигурации

config:set - Установка параметров конфигурации

Core 

core:check-updates - Проверка обновлений Joomla

core:update - Обновление Joomla

Database 

database:export - экспорт базы данных

database:import - импорт базы данных

Extension 

extension:discover - поиск расширений для установки

extension:discover:install - установка найденных расширений

extension:discover:list - список найденных для установки расширений

extension:install - установка расширения из указанного URL или пути

extension:list - список установленных расширений

extension:remove - удаление расширения

Finder

finder:index - очистка индекса и запуск переиндексации умного поиска

Scheduler

Примечание от переводчика: в Joomla 4.1 появился встроенный планировщик заданий. Функционал для создания задач расширяется с помощью плагинов. Об этом рассказывается в моей статье Создание WebCron плагина для Joomla 4 (Task Scheduler Plugin). Из панели администратора есть возможность включить выполнение задач по URL (посещение URL с ключом) или с использованием WebCron - при активности пользователей на сайте и в админке. Однако, в этом случае задачи запускает и выполняет web-сервер, у которого в большинстве случаев есть ограничение на время выполнения скрипта в 60 секундВозможность запустить задания Планировщика задач Joomla через CLI позволяет использовать на сайте любые "тяжелые" задачи, которые не будут нагружать веб-сервер. Постановка CLI-приложения с запуском задачи на CRON открывает широчайшие возможности при создания сайтов на Joomla 4. Серверный CRON настраивается по частоте запуска самой частой задачи один раз. Все остальные настройки выполняются уже из админки Joomla.

scheduler:list - список поставленных на выполнение задач

 Joomla 4 CLI - scheduler:list список поставленных на выполнение задач
Joomla 4 CLI - scheduler:list список поставленных на выполнение задач

  scheduler:run - запуск одной или нескольких задач 

Joomla 4 CLI scheduler:run - запуск одной или нескольких задач 
 Пример постановки запуска задач Планировщика Joomla 4 на cron - crontab -e. В этом примере CRON обращается раз в минуту. Частота запуска задач полностью настраивается через админку Joomla.

scheduler:state - включение, выключение или удаление запущенных задач.

Session 

session:gc - запуск garbage collection сессии

session:metadata:gc - запуск session metadata garbage collect

Site

site:down - переводит сайт в оффлайн режим

site:up - включает сайт обратно

Update

update:extensions:check - проверка расширений, ожидающих обновления

update:joomla:remove-old-files - удаление старых системных файлов

User

user:add - добавляет пользователя

user:addtogroup - добавляет пользователя в группу

user:delete - удаляет пользователя

user:list - список всех пользователей

user:removefromgroup - удаление пользователя из группы

user:reset-password - изменение пароля пользователя

Akeeba Backup CLI

akeeba:backup:alternate - создание бэкапа с помощью функции из фронтенда (Take a backup with Akeeba Backup's frontend backup feature)

akeeba:backup:alternate_check - проверка наличия бэкапов с ошибкой с помощью функции из фронтенда (Check for failed Akeeba Backup backups with its front-end feature)

akeeba:backup:check - проверка неудачных попыток создания бэкапов

akeeba:backup:delete - удаляет запись о бэкапе, сделанную Akeeba Backup, или только ее файлы.

akeeba:backup:download - возвращает архив бэкапа.

akeeba:backup:fetch - скачивает бэкап из удаленного хранилища обратно на сервер

akeeba:backup:info - отображает инфомрацию о бэкапе Akeeba

akeeba:backup:list - отображает список бэкапов Akeeba

akeeba:backup:modify - изменяет бэкап

akeeba:backup:take - создает бэкап

akeeba:backup:upload - повторная попытка загрузить бэкап на удаленное хранилище

akeeba:filter:delete - удаляет значение фильтра

akeeba:filter:exclude - устанавливает исключающее условие в фильтре

akeeba:filter:include-database - добавляет дополнительную базу данных для включения в бэкап

akeeba:filter:include-directory - добавляет директорию за пределами сайта для включение в бэкап

akeeba:filter:list - список значений фильтров

akeeba:log:get - извлечение файла логов

akeeba:log:list - список файлов логов Akeeba Backup

akeeba:migrate - запуск миграции настроек со старых версий Akeeba Backup

akeeba:option:get - получение значения опции из конфига профиля Akeeba Backup

akeeba:option:list - отображает параметры конфигурации профиля Akeeba backup, включая названия

akeeba:option:set - устанавливает значение опции в конфиг профиля Akeeba Backup

akeeba:profile:copy - создаёт копию профиля Akeeba Backup

akeeba:profile:create - создаёт профиль Akeeba Backup

akeeba:profile:delete - удаляет профиль Akeeba Backup

akeeba:profile:export - экспорт профиля Akeeba Backup в JSON строку

akeeba:profile:import - импорт профиля Akeeba Backup из JSON

akeeba:profile:list - список профилей резервного копирования

akeeba:profile:modify - изменение профиля резервного копирования

akeeba:profile:reset - сброс профиля

akeeba:sysconfig:get - получение значения из глобального конфига Akeeba Backup (на уровне всего компонента)

akeeba:sysconfig:list - список опций глобального конфига Akeeba Backup (на уровне всего компонента)

akeeba:sysconfig:set - установка значений в глобальный конфиг Akeeba Backup

Дополнительные ресурсы

Толкачев Сергей Юрьевич
Толкачев Сергей Юрьевич

Joomla-разработчик. Контрибьютер ядра Joomla. Один из ведущих Telegram-канала русскоязычного Joomla-сообщества JoomlaFeed, один из модераторов чата русскоязычного Joomla-сообщества. Мои расширения в официальном маркетплейсе расширений Joomla - Joomla Extensions Directory. Имею публикации в официальном журнале международного Joomla-сообщества - Joomla Community Magazine.

Муж. Отец 3 детей.

Россия, Саратов.

Расширения Joomla WebTolk

90 Всего расширений
11 Категорий
401 Выпущено версий
397232 Всего скачиваний
Корзина
Корзина пуста