L'interface en ligne de commande (CLI)

Si vous disposez d'un accès terminal au serveur hébergeant votre site, vous pouvez utiliser la CLI de Joomla pour effectuer des tâches courantes sans avoir besoin d'utiliser des identifiants de connexion utilisateur Joomla. Même sans accès terminal, comme c'est le cas sur certains hébergements mutualisés, vous pouvez exécuter des commandes CLI à l'aide de tâches cron. Les commandes CLI sont souvent plus rapides ou plus pratiques que les équivalents réalisés via l'interface d'Administration de Joomla (ou de cPanel). La sauvegarde du site et le passage du site en ligne/hors ligne sont des exemples où vous pourriez préférer utiliser la CLI.

Le cœur de Joomla propose environ 30 commandes utiles et vous pouvez en ajouter d'autres grâce à des extensions supplémentaires. Par exemple, vous pourriez récupérer des données externes telles que des données de géolocalisation ou de taux de change pour un composant personnalisé.

Utiliser la CLI

La CLI s'utilise en invoquant l'exécutable php en ligne de commande. Celui-ci est souvent différent de celui utilisé par un serveur web tel qu'Apache. Si vous utilisez une tâche cron, vous devrez peut-être fournir le chemin complet vers l'exécutable php, comme ceci :

/usr/local/bin/php /home/username/public_html/[optional subfolder]/cli/joomla.php

Sinon, lorsque vous utilisez la ligne de commande du terminal, changez de répertoire pour accéder au répertoire cli de Joomla et commencez par exécuter la commande sans paramètres :

cd /home/username/public_html/[optional subfolder]/cli
php joomla.php

List of commands

Et essayez quelques commandes d'aide pour vous familiariser avec ce à quoi vous attendre :

php joomla.php help
php joomla.php list
php joomla.php help cache:clean
php joomla.php help config:get

Chacune des descriptions d'aide et des chaînes d'utilisation est codée en dur dans les fichiers de la bibliothèque Console ou dans des plugins tiers.

Essayez quelques commandes d'action simples :

php joomla.php config:get debug
php joomla.php cache:clean
php joomla.php site:down
php joomla.php site:up

Paramètres

Si vous appelez des commandes depuis une tâche cron, vous ne souhaitez peut-être pas voir de sortie :

php joomla.php -q cache:clean

Notez que les options peuvent utiliser un espace ou un signe = mais les variables doivent utiliser un signe = :

php joomla.php session:gc --application administrator
php joomla.php session:gc --application=administrator

php joomla.php config:set debug=true

Commandes

Une brève explication de chaque commande principale.

Cache

Supprimer les entrées expirées du cache système :

php joomla.php cache:clean --help
php joomla.php cache:clean

Output of cache clean

php joomla.php cache:clean expired

Output of cache clean expired

Config

Obtenir ou définir une variable de configuration, une des variables de configuration.php ou un groupe de variables. Les groupes valides sont db, session, mail,

php joomla.php config:get debug --help
php joomla.php config:get debug

Output of config get debug

php joomla.php config:set debug=true

Output of config set debug

php joomla.php config:get --group session

Output of config get group session

Core

Vérifier les mises à jour ou mettre à jour Joomla.

php joomla.php core:check-updates --help
php joomla.php core:check-updates

Output of core check updates

php joomla.php core:update --help
php joomla.php core:update

Output of cor update

Base de données

Exporter ou importer la base de données. Vous pouvez exporter ou importer toutes les tables ou une table sélectionnée. N'utilisez pas cette fonctionnalité pour importer toutes les tables d'un site multilingue. Il existe un problème qui pourrait empêcher la Recherche avancée de fonctionner complètement.

php joomla.php database:export --help
php joomla.php database:export --table f4rc2_banners --folder /home/username/tmp/mydb (one table)
php joomla.php database:export --folder /home/username/tmp/mydb (all tables)

php joomla.php database:import --help
php joomla.php database:import --table /home/username/tmp/mydb/f4rc2_banners (one table)
[ERROR] The /home/username/tmp/mydb/f4rc2_banners.xml file does not exist.
php joomla.php database:import --folder /home/username/tmp/mydb (all tables in this folder)

Extension

Lister, découvrir, installer ou supprimer des extensions.

php joomla.php extension:list --help
php joomla.php extension:list
php joomla.php extension:list --type component
php joomla.php extension:list --type file
php joomla.php extension:list --type language
php joomla.php extension:list --type library
php joomla.php extension:list --type module
php joomla.php extension:list --type package
php joomla.php extension:list --type plugin
php joomla.php extension:list --type template

php joomla.php extension:discover --help
php joomla.php extension:discover
php joomla.php extension:discover:list
php joomla.php extension:discover:install --eid=

php joomla.php extension:install --help
php joomla.php extension:install --path=
php joomla.php extension:install --url=

php joomla.php extension:remove --help
php joomla.php extension:remove

Finder

Purge et reconstruit l'index (les filtres de recherche sont préservés).

php joomla.php finder:index --help
php joomla.php finder:index
php joomla.php finder:index purge

Output of finder index purge

Planificateur

Lister, changer l'état ou exécuter des tâches planifiées.

php joomla.php scheduler:list --help
php joomla.php scheduler:list

php joomla.php scheduler:state --help
php joomla.php scheduler:state (interactive prompt for task id)

php joomla.php scheduler:run --help
php joomla.php scheduler:run --id ID
php joomla.php scheduler:run --all

Session

Effectue le nettoyage des sessions (garbage collection).

php joomla.php session:gc --help
php joomla.php session:gc
php joomla.php session:gc --application administrator

php joomla.php session:metadata:gc --help
php joomla.php session:metadata:gc

Site

Met le site hors ligne ou en ligne.

php joomla.php site:down --help
php joomla.php site:down

php joomla.php site:up --help
php joomla.php site:up

Mise à jour

Vérifie les mises à jour d'extensions en attente. Supprime les anciens fichiers qui auraient dû être supprimés lors d'une mise à jour de Joomla

php joomla.php update:extensions:check --help
php joomla.php update:extensions:check

php joomla.php update:joomla:remove-old-files --help
php joomla.php update:joomla:remove-old-files

Output of update joomla remove old files

Utilisateur

Lister et gérer les utilisateurs.

php joomla.php user:list --help
php joomla.php user:list

php joomla.php user:add --help
php joomla.php user:add --username cinderella --name Cinderella --email cinders@localhost --usergroup Manager (invite à saisir le mot de passe)
php joomla.php user:add (invite à saisir les données)

Output of user add with prompts

php joomla.php user:addtogroup --help
php joomla.php user:addtogroup (invite à saisir les données)
php joomla.php user:addtogroup --usernam=cinderella --group=Manager

php joomla.php user:removefromgroup --help
php joomla.php user:removefromgroup (invite à saisir les données)
php joomla.php user:removefromgroup --usernam=cinderella --group=Manager

php joomla.php user:reset-password --help
php joomla.php user:reset-password (invite à saisir les données)
php joomla.php user:reset-password --username=cinderella (invite à saisir le mot de passe)

php joomla.php user:delete --help
php joomla.php user:delete (invite à saisir l'identifiant)
php joomla.php user:delete --username=cinderella (invite à confirmer - y pour confirmer)