WP-cli est un outil en ligne de commande quoi vous permet d’installer et de garder votre site WordPress à jour.
Dans cet article, je vais juste traiter des mises à jour de WordPress, comme mon site est déjà installé, je n’ai pas validé la procédure d’installation, mais si vous êtes intéressés, voici le lien dans la langue de Shakespeare.
Installation de WP-cli
WP-cli est disponible sous la forme d’un fichier PHP archive (.phar), vous pouvez le télécharger avec la commande wget
wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
Vous devez rendre ce fichier exécutable
chmod +x wp-cli.phar
Et pour des raison de simplicité, vous pouvez déplacer ce fichier dans le path en profitant pour le renommer « wp »
sudo mv wp-cli.phar /usr/local/bin/wp
Finalement, vous pouvez vérifier que ces opérations se sont bien passées avec la commande suivante:
wp --info
Pour voir les différentes commandes disponibles, vous pouvez utiliser
wp help
si vous exécutez cette commande en tant que root, vous devriez voir ce message sur votre terminal:
Ce message vous invite simplement à préciser le user, c’est particulièrement important lors des opérations de mises à jour afin que les fichiers gardent les bonnes autorisations. Dans notre cas la commande devient:
sudo -u wp-user wp help
WP-cli – Mise à jour
Afin de mettre à jour votre site WordPress avec WP-cli, il vous suffira de lancer quelques commandes depuis votre terminal.
Vous pouvez même automatiser ces commandes avec un « cron » job.
Vous devez vous rendre dans la répertoire d’installation de votre site WordPress et lancer les commandes en précisant le user utilisé lors de l’installation de ce site. Dans mon cas ce user est « wp-user »
Mise à jour de WordPress Core
sudo -u wp-user wp core update
sudo -u wp-user wp core update-db
Dans mon cas, le site est déjà à jour:
Si vous rencontrez un message d’erreur, rendez-vous ici
Mise à jour des plugins
Vous pouvez commencer par vérifier les plugins installés avec la commande:
sudo -u wp-user wp plugin list
vous pouvez mettre à jour un plugin en particulier en précisant le nom, par exemple pour le plugin jetpack:
sudo -u wp-user wp plugin update jetpack
Dans cette example le plugin est déjà à jour,
vous pouvez également décider de mettre à jour tous les plugins
sudo -u wp-user wp plugin update --all
Dans cet exemple, le plugin w3-total-cache est mis à jour
Mise à jour des thèmes
Pour les thèmes, c’est le même principe, vous pouvez lister les thèmes avec
sudo -u wp-user wp theme list
et pour la mise à jour vous avez la commande individuelle
sudo -u wp-user wp theme update iconic-one
ou pour tous les thèmes:
sudo -u wp-user wp theme update --all
Dans cet exemple, le thème est déjà à jour, le thème perso n’est évidemment pas impacté.
Mise à jour des traductions
Vous disposez également des commandes afin de mettre à jour les « translations » du core, des plugins et des thèmes:
sudo -u wp-user wp language core update
sudo -u wp-user wp language plugin update --all
sudo -u wp-user wp language theme update --all
Messages d’erreurs
Lorsque vous exécutez la commande,
il se peut que vous rencontriez le message d’erreur suivant:
PHP Notice: Undefined index: HTTP_HOST in phar:///usr/local/bin/wp/vendor/wp-cli/wp-cli/php/WP_CLI/Runner.php(1153) : eval()'d code on line 10
Neither <b>/etc/wordpress/config-.php</b> nor <b>/etc/wordpress/config-.php</b> could be found. <br/> Ensure one of them exists, is readable by the webserver and contains the right password/username
Il y a différentes façons de régler ce problème,
- créer une variable d’environment (export HTTP_HOST=’blog.malandra.be’)
- passer l’url lors de la commande (–url=blog.malandra.be)
- créer un fichier wp-cli.yml
- mettre à jour le fichier config.php
- ..
pour ma part j’ai choisi de créer le fichier wp-cli.yml dans lequel j’ai inséré l’url du site
cba@malandra:~$ cd /etc/wordpress
cba@malandra:/etc/wordpress$ nano wp-cli.yml
Insérer dans ce fichier votre url, dans mon cas « blog.malandra.be »
url: <votre url>
Sauver et relancer la commande
cba@malandra:/var/www/blog.malandra.be$ sudo -u wp-user wp plugin update --all
Success: Plugin already updated.