Mettre à jour WordPress facilement en ligne de commande
Sommaire
Pourquoi mettre à jour WordPress ?
WordPress est un CMS mondialement connu et utilisé, ce qui en fait une cible de choix pour les hackers. En effet, de nombreuses failles sont découvertes chaque année sur WordPress, ce qui n’est pas forcément un mal car cela indique que le code est souvent revu et amélioré. Ainsi, lorsqu’un correctif est publié, que ce soit pour WordPress lui-même ou pour l’un de vos plugins, il est primordial d’effectuer la mise à jour en question. Cet article s’attrait donc à vous en détailler la marche à suivre.
Prérequis
Dans tous mes billets, je m’efforce de vous proposez des solutions élégantes et le plus propre possible, ce qui vous permet d’utiliser mes tutoriels sur des environnements de production sans aucun souci.
Avant toute chose, on crée des répertoires qui accueilleront les sources du nouveau WordPress et les backups de la base de données et des fichiers de votre site actuel :
mkdir -p /tmp/upgrades/{livrable,backup}
La suite de ce billet suppose que la racine du site WordPress à mettre à jour est /var/www/monsite/ et que votre base de données est stockée dans MySQL.
#Etape 1 – Sauvegarde (Backup)
On commence par sauvegarder la base de données (BDD), et pour ce faire, il faut connaître son nom. Soit vous le connaissez, auquel cas vous pouvez directement passer à la commande mysqldump un peu plus bas, soit vous ne le connaissez pas, auquel cas voici la marche à suivre pour retrouver le nom de votre base de données :
grep DB_NAME /var/www/monsite/wp-config.php
Le résultat de cette commande ressemblera alors à ceci :
define('DB_NAME', 'masuperbase');
Ici, le nom de la BDD est “masuperbase“. On peut donc lancer la sauvegarde de cette base :
mysqldump masuperbase | gzip > /tmp/upgrades/backup/masuperbase-$(date "+%Y%m%d-%Hh%M").sql.gz
On archive ensuite les fichiers du site actuel :
tar -czf /tmp/upgrades/backup/fichiers-$(date "+%Y%m%d-%Hh%M").tgz /var/www/monsite/
#Etape 2 – Mise à jour (Upgrade)
Téléchargez les sources de la nouvelle version de WordPress :
wget -O /tmp/upgrades/livrable/latest.zip https://wordpress.org/latest.zip cd /tmp/upgrades/livrable/ && unzip latest.zip && cp -av wordpress/* /var/www/monsite/
Après cette étape, une mise à jour de la BDD peut être requise. Dans tous les cas, il suffit de vous rendre sur la page upgrade.php de votre site (ex : http://www.monsite.com/wp-admin/upgrade.php) et de suivre les instructions.
#Etape 3 – Test
Après chaque mise à jour, il est important de vérifier que votre site fonctionne pleinement et que la mise à jour n’a pas “cassé” quelque chose qui fonctionnait jusqu’alors correctement. Baladez-vous donc sur votre site (en front office et en back office), allez dans quelques pages, testez les fonctionnalités que vous êtes habitué à utiliser…
Si tout semble correct alors c’est fini, vous avez mis à jour WordPress correctement. Si par contre vous rencontrez des erreurs PHP/SQL ou que vous constatez une régression (par exemple une fonctionnalité dont vous aviez besoin qui n’est plus présente ou encore qui ne fonctionne plus), il va falloir revenir en arrière.
#En cas de pépin : retour arrière (Rollback)
Comme dit plus haut, il arrive qu’une mise à jour de WordPress entraîne des problèmes, souvent dus à des incompatibilités de versions avec des plugins installés au préalable par vos soins. Si tel est votre cas, notez les erreurs et problèmes rencontrés puis exécutez la procédure suivante :
cd && rm -rf /var/www/monsite/* cd /var/www/monsite/ tar -xzf /tmp/upgrades/backups/fichiers-*.tgz
Si la base de données a également subi une mise à niveau, il faudra également effectuer un retour arrière sur cette dernière. ATTENTION : tout article/commentaire/page et de manière générale toute modification apportée entre la mise à jour problématique et maintenant sera PERDUE. Ne faites donc ce qui suit qu’en connaissance de cause :
mysql -e "DROP DATABASE masuperbase; CREATE DATABASE masuperbase;" zcat /tmp/upgrades/backups/masuperbase-*.sql.gz | mysql masuperbase
#Etape finale – Nettoyage et (re)sécurisation
Si tout s’est bien passé et que les tests sont concluants, on peut supprimer le livrable et l’archive des anciens fichiers (éventuellement après quelques jours de test) :
cd && rm -rf /tmp/upgrades/
Lorsque vous mettez à jour WordPress ou l’un de ses plugins, il est important de vérifier que les droits positionnés sur les fichiers et répertoires de l’arborescence web de votre site sont toujours corrects. J’écrirai d’ici peu un article détaillant la sécurisation de WordPress mais entre temps référez-vous à la page officielle de WordPress à ce sujet.
En espérant que cet article en aura aidé plus d’un 🙂