WP-CLI sur hébergement Infomaniak

Installer WP-CLI sur un hébergement mutualisé Infomaniak

Cet article a été réactualisé il y a 5 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.

  1. créer un fichier .profile s’il n’existe pas   touch ~/.profile
  2. éditer le ficher .profile  nano ~/.profile
  3. 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
    1. Pour sortir faire CTRL + X
    2. Pour valider, taper Y
    3. Valider le nom du fichier avec Entree
  4. 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 .profile
    source ~/.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

  1. éditer le ficher .profile nano ~/.profile
  2. Vous êtes dans l’éditeur nano : ajouter le code suivant à l’intérieur du fichier
    source ~/bin/wp-completion.bash
    1. Pour sortir faire CTRL + X
    2. Pour valider, taper Y
    3. Valider le nom du fichier avec Entree
  3. 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