Déployer WordPress en 2020

En ce moment je travaille sur un projet WordPress avec ma pote Maylis et je me dis que c’est l’occasion de présenter un outil pour WordPress que je ne vois pas assez : Wordmove.

Wordmove c’est quoi ? C’est un CLI écrit en Ruby pour du déploiement WordPress multi-stage (staging / production). Ouah ça a l’air bien dit comme ça, y a multi-stage dans la description ça fait sérieux, mais en vrai c’est quoi ? C’est un outil en ligne de commande qui permet de synchroniser une installation WordPress locale avec une installation distante et ça marche même dans l’autre sens ! Mais c’est plus qu’un bête mirroring de fichier et de DB, c’est aussi de l'édition d’export SQL à la volée pour que toutes les URLs matchent entres les différents environnements (je sais pas si vous le saviez mais WordPress a quelques URLs en BDD 😽).

Comment on s’en sert nous ? On s’en sert pour synchroniser nos deux environnements locaux pour commencer (parce que oui WordPress c’est aussi TOUT en base donc faut bien partager tout ça). Pour synchroniser c’est assez simple, on se sert de la BDD de notre serveur de staging qui est mise à jour par l’un de nous deux et l’autre récupère les données et tout ça en deux commandes :

# On envoie la base locale sur le staging
wordmove push -d -e staging
# On récupère la base de staging en local
wordmove pull -d -e staging

Bon c’est pas très scalable tout ça mais pour nous deux ça fait carrément le job.

On s’en sert aussi bien évidemment pour déployer le site sur les différents environnements et par la suite pour synchroniser notre environnement local avec la production, ce qui peut être fort pratique pour du debug ou de la reprise de dev.

Voilà voilà, ça a l’air bien hein ? Bon faut savoir qu’en plus de Ruby, Wordmove a quelques dépendances :

  • rsync pour mirrorer les fichiers et dossiers
  • mysqldump pour dumper la base de données
  • mysql pour charger la base de données
  • wp-cli pour interagir avec WordPress en ligne de commande

Alors deux solutions pour utiliser Wordmove dès aujourd’hui, sois un petit gem install wordmove et c’est réglé (si toutes les autres dépendances sont satisfaites 😋) ou alors on utilise un conteneur Docker (il y a déjà une image ici) et dans ce cas là je vous invite à patienter quelques semaines. Le temps qu’on finisse ce projet et qu’on mette à jour notre WordPress starter.

David Authier

David Authier
Développeur freelance