Cet article a été réactualisé il y a 6 ans jours. Il n'est pas nécessairement obsolète, mais gardez son ancienneté en tête lors de sa lecture.
Utiliser WP-CLI c’est vraiment se faciliter la vie question maintenance de site, entre autres choses … A mon sens c’est un outil indispensable à avoir sur ses installations WordPress.
NB : Avant de se lancer dans l’installation de WP-CLI sur son hébergement, je vous recommande de faire vos premières expérimentations de l’outil sur un environnement de développement en local. Vous devez vous sentir à l’aise avec les commandes à exécuter, il n’y a pas de bouton retour en arrière si on fait une mauvaise manip ! WP-CLI est intégré dans LocalbyFlywheel : essayez le d’abord dans cet environnement ! Pour voir comment vous pouvez suivre ce mémo : Se familiariser avec WP-CLI via Local by Flywheel
Ceci étant dit, l’installation de WP-CLI sur un hébergement mutualisé n’est pas forcément évidente de premier abord, même en suivant le guide d’installation WP-CLI. Tout simplement parce que sur un mutualisé on n’est pas à la racine du serveur mais sur son espace personnel.
Certains hébergeurs intègrent l’outil directement dans leur offre, mais ce n’est pas le cas chez Infomaniak, et je n’ai pas trouvé d’informations sur le sujet dans leur FAQ.
Mais c’est possible de le faire.
Prérequis : Avoir un accès sécurisé au shell de son hébergement. Vous pouvez consulter ce mémo : « Accéder à un hébergement Infomaniak en SSH »
L’installation
Etape 1 : Installer WP-CLI
Se placer sur son hébergement, à la racine de son espace personnel symbolisé par un tilde entre le « : » et le « $ » :~$
. Je l’écris volontairement (en bleu) dans les portions de code ci après, uniquement pour bien clarifier où on se situe pour effectuer les commandes. Ce n’est pas forcément une évidence quand on débute. Par contre, ne copier que les commandes seules pour les utiliser chez vous 🙂
Autre précision, pour connaitre le chemin complet de votre espace d’hébergement taper la commande pwd
. Elle permet d’afficher le chemin absolu du dossier dans lequel vous vous trouvez, et vous ressortira quelquechose qui devrait ressembler à ceci :
/home/clients/[votreidentifiantclient]
Mettez cette info de côté, on en aura besoin pour la suite.
Récupérer le fichier wp-cli.phar
Utiliser la commande curl
qui permet de récupérer un fichier depuis une url
:~$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
Vérifier que le fichier est bien présent
:~$ ls -l
Si tout s’est bien déroulé, vous devez voir un nouveau fichier nommé wp-cli.phar.
Tester WP-CLI
A ce stade, vous pouvez d’ores et déjà utiliser WP-CLI, toute les commandes à lancer devront alors commencer par php wp-cli.phar
A noter la présence de php en début de commande. C’est parce qu’on utilise ici php en ligne de commande.
:~$ php wp-cli.phar --info
Vous obtiendrez des infos relatives à l’environnement dans lequel wp-cli est installé.
Etape 2 : mettre en place la commande simplifiée « wp »
Pour pouvoir utiliser WP-CLI avec une commande simplifiée wp
au lieu de php wp-cli.phar
, il va falloir faire plusieurs choses :
Attribuer des droits d’éxécution au fichier wp-cli.phar
:~$ chmod +x wp-cli.phar
Se créer un dossier bin
Comme on est sur un serveur mutualisé, contrairement à ce qui est expliqué dans le tutoriel d’installation wp-cli, on n’a pas accès au dossier /usr/local/bin/ mais on peut très bien se créer un dossier /bin à la racine de son espace personnel pour pouvoir bénéficier de la commande simplifiée. Par convention de nommage de répertoires sous Linux (voir le lien Wikipedia FHS ) un répertoire bin contient des fichiers éxécutables.
:~$ mkdir ~/bin
A noter ici la présence de ~/
avant bin, j’aurais tout aussi bien pu m’en passer, je suis déjà placée dans ce dossier. Je le mets ici pour avoir l’occasion d’en parler. En spécifiant ~/
avant le nom du dossier à créer, je m’assure en fait qu’il sera bien placé à partir de cet endroit.
Déplacer le fichier wp-cli.phar vers bin et le renommer
On déplace wp-cli.phar dans ce dossier bin en le renommant wp par la même occasion avec la commande mv
.
Attention pour ce déplacement il vous faut bien le chemin complet de votre espace, d’où la présence de ~ au début du chemin du dossier
:~$ mv wp-cli.phar ~/bin/wp
On aurait pu écrire aussi l’équivalent
:~$ mv wp-cli.phar /home/clients/[votreidentifiantclient]/bin/wp
NB : Remplacer la partie entre crochet par votre identifiant
Aller vérifier que tout s’est bien déroulé
aller dans bin et afficher son contenu pour voir le fichier nommé wp
:~$ cd bin :~/bin$ ls -l
Rendre l’exécutable accessible
pour que l’exécutable wp soit accessible, on a besoin d’un fichier qui va donner des directives à suivre quand on se loguera dans la console du serveur d’hébergement. Ce fichier c’est .profile (Il n’existe pas par défaut sur votre installation). Ce fichier va nous permettre de dire qu’il faut ajouter notre dossier bin au PATH.
- créer un fichier .profile s’il n’existe pas
touch ~/.profile
- éditer le ficher .profile
nano ~/.profile
- vous êtes dans l’éditeur nano : ajouter à l’intérieur du fichier le chemin vers votre dossier bin fraîchement créé. NB : Remplacer la partie entre crochet par votre identifiant.
export PATH=$PATH:/home/clients/[votreidentifiantclient]/bin
- Pour sortir faire CTRL + X
- Pour valider, taper Y
- Valider le nom du fichier avec Entree
- Si vous voulez que le changement prenne effet dès la modification, il faut utiliser la commande
source
pour que la session recharge le fichier .profilesource ~/.profile
Retester l’utilisation de wp-cli avec la commande « wp »
:~$ wp --info
Vous devez obtenir le même résultat que tout à l’heure avec la commande longue
Etape 3 : Ajouter l’auto-complétion
Un outil pratique pour peu qu’on ne se souvienne plus du nom d’une commande wp-cli. Il suffira d’en taper la ou les premières lettres puis 2xTab pour que soient proposées les commandes qui pourraient correspondre.
Charger le fichier wp-completion.bash avec wget ou curl. Voir le projet sur Github wp-cli/utils/wp-completion.bash
:~$ wget https://raw.githubusercontent.com/wp-cli/wp-cli/master/utils/wp-completion.bash
Le déplacer dans le dossier /bin qu’on a créé tout à l’heure.
:~$ mv wp-completion.bash ~/bin
l’ajouter au niveau de .profile comme source
- éditer le ficher .profile
nano ~/.profile
- Vous êtes dans l’éditeur nano : ajouter le code suivant à l’intérieur du fichier
source ~/bin/wp-completion.bash
- Pour sortir faire CTRL + X
- Pour valider, taper Y
- Valider le nom du fichier avec Entree
- Faire en sorte que le changement prenne effet après cette modification:
source ~/.profile
Tester pour voir si l’autocompletion fonctionne
:~$ wp c
TabTab : Vous aurez alors des commandes possibles commençant par la lettre c qui vous seront proposées : cache cap cli comment config core cron
:~/web/monwordpress$ wp post
TabTab : Vous obtiendrez les « sous commandes » possibles pour wp post : create delete edit generate get list meta term update
Petit résumé
A ce stade on a ajouté quoi sur notre hébergement ?
Ajout d’un répertoire bin. Nous n’avons pas accès à celui présent à la racine du serveur /usr/bin puisque nous sommes sur un mutualisé. Un répertoire bin contient des programmes exécutables susceptibles d’être utilisés par tous les utilisateurs de la machine. Ici on en crée un pour soi pour son espace d’hébergement.
Notre répertoire bin contient :
- wp-cli.phar rendu exécutable et renommé en wp
- l’autocomplétion wp-completion.bash
Chez Infomaniak, c’est le fichier .profile, situé dans le répertoire personnel, qui va contenir les commandes à exécuter à l’ouverture d’une session (un accès en SSH à l’hébergement).
Nous avons donc un fichier .profile qui contient des directives :
- l’ajout au PATH du dossier bin
- la prise en compte du script bash pour l’autocompletion
Ajouter des packages
Les commandes de base proposées par WP-CLI peuvent être être étendues par la communauté.
Vous pouvez les installer avec la commande wp package install truc/muche
Par contre à ce stade, je suis bloquée sur Infomaniak, je ne parviens pas à installer les packages, un problème de php.ini dont le allow_url_open est sur 0, que je passe à true mais ça ne me règle pas mon problème. J’y reviendrai donc quand je saurai pour ajouter les infos ici !
Vous n’avez plus qu’à l’utiliser !
WP-CLI est opérationnel sur votre hébergement Infomaniak.
Toutes les commandes pour l’utiliser sont répertoriées sur https://developer.wordpress.org/cli/commands/
En lisant la documentation https://make.wordpress.org/cli/handbook/ vous constaterez que cet outil a des applications vastes et variées, que vous pouvez l’étendre par vos propres commandes, qu’il peut être utilisé très simplement comme de façon très élaborée.
Cas où on utilisera un .bashrc plutôt que .profile
Ici nous avons rendu l’éxécutable wp-cli accessible via la commande wp
en ajoutant une directive dans le fichier .profile qui permet l’ajout de notre fichier bin au PATH. La commande wp
est donc utilisable dès que l’on se loggue à la console du serveur d’hébergement.
Hors il peut arriver que l’on ait besoin de faire en sorte que cette commande wp
fonctionne aussi sans être logué à la console du serveur. => Cas de mise en place d’une tâche wp-cli qu’on lance en local via une recette dans un fichier Makefile. Comme on ouvre une console en SSH dans laquelle on ne se loggue pas, le fichier .profile ne sera pas lu, et donc la commande wp
ne sera pas reconnue. Pour y remédier, il faut reprendre ce qui a été mis en place précédemment dans .profile pour le mettre dans un fichier .bashrc qu’on ajoutera de la même façon.
Un autre très bon hébergeur, O2switch préconise dailleurs l’édition du .bashrc pour ajouter wp-cli sur leur serveur. Voir ce lien : installation de wp-cli sur O2switch