tester WP-CLI dans Local by Flywheel

Se familiariser avec WP-CLI via Local by Flywheel

Cet article a été réactualisé il y a 1 an jours. Il n'est pas nécessairement obsolète, mais gardez son ancienneté en tête lors de sa lecture.

Pour se familiariser avec les commandes WP-CLI, on peut le faire dans une installation de site WordPress qu’on a mis en place dans Local by Flywheel (LBFW)

Accéder au Docker contenant son site local en SSH

Dans l’interface LBFW

  1. Lancer le site voulu : Start site
  2. Clic droit sur le nom du site et choisir : Open Site SSH
  3. Une interface en ligne de commande s’ouvre

Dans la CLI

Où se situe le site ?

Un site dans LBFW est toujours présent dans : /app/public

Exemple d’un site sur lequel je travaille : (ls pour lister le contenu des dossiers, cd pour s’y rendre)

Shell

Voir la version de WP-CLI préinstallée dans LBFW

Au niveau de l’instance du site, utiliser la commande simplifiée qui est disponible pas besoin de faire php wp-cli.phar --info mais juste  wp --info

Shell

On a à disposition la version WP-CLI 1.4.1 , comme elle est un peu ancienne on peut la mettre à jour pour la version stable plus récente.

Faire une MAJ de la version WP-CLI

Choisir la dernière version stable : wp cli update --stable

Shell

Vérifier la nouvelle version à disposition :

Shell

On est passé à la version WP-CLI 2.0.1

Expérimenter !

Il suffit maintenant de se faire la main en consultant la documentation WP-CLI.

Petite précision à noter

Quand on développe ses sites sous LBFW, chaque site se trouve dans un container Docker. L’utilisateur du container est forcément root par défaut. Ceci implique que tous les fichiers de sites ont des permissions à 777 ( rwxrwxrwx). Les processus sont éxécutés en tant que root et sans avoir besoin de spécifier de mot de passe. Il n’y a pas de user.

Pour autant les commandes WP-Cli fonctionnent très bien sans l’affichage de l’alerte : « Error: YIKES! It looks like you’re running this as root. »

Pourquoi WP-Cli nous affiche normalement une alerte quand on l’éxécute en tant que root ? Tout simplement à cause des permissions trop élevées. Si on utilise WP-Cli dans ces conditions tout ce qui sera généré, que ce soit les plugins, thèmes etc … auront tous les privilèges. Dans un container Docker c’est un fonctionnement normal. Sur un serveur d’hébergement c’est forcément une faille de sécurité majeure. Si du code malveillant est présent dans l’instance de WordPress, et qu’on modifie les fichiers en tant que root, on rendra un fichier malicieux potentiellement présent éxécutable  …

Message complet de l’alerte WP-Cli :

Error: YIKES! It looks like you're running this as root. You probably meant to run this as the user that your WordPress install exists under.

If you REALLY mean to run this as root, we won't stop you, but just bear in mind that any code on this site will then have full control of your server, making it quite DANGEROUS.

If you'd like to continue as root, please run this again, adding this flag:  --allow-root

If you'd like to run it as the user that this site is under, you can run the following to become the respective user:

    sudo -u USER -i -- wp <command>

Dans un container LBFW un alias est d’emblée ajouté au niveau de /root/.bashrc. Si vous l’éditez vous aurez un contenu tel que celui ci :

Shell

Avec LBFW, les commandes wp sont toutes lancées en autorisant root, CQFD.