Jean ROCHARD
Je partage ma passion de Wordpress dans des articles techniques sur les plugins, thèmes, nouveautés geek et optimisation SEO "on-site".
Jean ROCHARD

@jean_rochard

Chez Terre Digitale, on mange du Wordpress dès le petit-dej'.
Petit guide pour mettre en place les Facebook Instant Articles à partir de vos posts Wordpress : https://t.co/lSbzdM6z9j - 7 mois ago

Il est souvent question de « faire un backup » de son site WordPress ; c’est à dire de faire une copie de sauvegarde de celui ci pour pouvoir remettre en ligne ( opération de « restore » ) une version stable en cas de problème technique (mise à jour ou installation instable, attaque du site, mauvaise manipulation…). Cela est utile aussi lorsque l’on veut changer son site d’hébergement ou même changer de nom de domaine. Voyons aujourd’hui comment procéder et comment automatiser cette tâche de l’ombre indispensable (pendant que vous dormez).

lune

Que faut-il sauvegarder ?

Les 2 éléments fondamentaux à sauvegarder sont les fichiers du site WordPress et la base de données. Parmi les fichiers, certains ne sont pas intéressants à sauvegarder et on les exclura du processus. Par exemple :

  • les fichiers générés par un plugin de cache
  • les éventuelles anciennes sauvegardes stockées directement sur l’hébergement
  • le répertoire wp-content/upgrade (utilisé pour les mises à jour de WordPress)
  • les répertoires spécifiques utilisés  par un outil de contrôle de version (.svn, .git)

Dans l’optique de réduire le volume de données sauvegardées, on peut également ne pas inclure la partie « WordPress core » (répertoires wp-admin et wp-includes) puisqu’on pourra toujours re-télécharger ces éléments à partir de https://fr.wordpress.org/. Il peut être aussi intéressant procéder à un petit ménage technique de temps en temps pour encore alléger son site.

Lorsque l’on veut privilégier la sécurité, on peut exclure les fichiers de configuration (comme wp-config.php, .htaccess, .htpasswd) et les conserver à part de ses backups quotidien.

Où stocker ses sauvegardes ?

Les outils de backup créent une archive compressée (fichier zip ou tar.gz) pour chaque sauvegarde mais cette archive prendra vite un espace d’environ 50 Mo pour un petit site de quelques pages (cela dépend du thème utilisé, des images mises en ligne…). Une sauvegarde quotidienne et sur les 30 derniers jours de ce type de site prendra 1,5 Go de stockage.

De plus, il faut trouver un endroit sûr et qui lui aussi sera sauvegardé (pour être précis, votre ordinateur n’est PAS un lieu sûr car tout peut lui arriver…). Votre hébergement n’est pas un lieu sûr non plus puisqu’il pourrait être détruit ou endommagé lors d’une attaque de votre site.

Vous pouvez donc utiliser un service cloud comme Dropbox ou Google Drive pour stocker vos backups ; c’est ce qui sera le plus pratique si vous choisissez bien sûr de ne pas payer un service spécifique de gestion de backup (voir ci dessous).

Les plus paranoïaques iront aussi jusqu’à dupliquer le lieu de stockage des backups.

Panel de solutions de backup

Les solutions pour faire un backup de son site sont nombreuses et en voici quelques unes. Ce qui vous fera en choisir une plutôt qu’une autre est surtout le degré d’importance de votre site pour votre activité. Pouvez vous prendre le risque d’une indisponibilité de quelques heures ? Si la réponse est non, je vous conseille d’investir dans un service qui vous aidera à faire le restore de votre site ; sinon choisissez le plus pratique pour vous.

Je vous conseille également d’utiliser 2 méthodes différentes pour avoir un plan B en cas de défaillance de la première.

1) A la main

On peut effectivement procéder manuellement par connexion FTP et en faisant un export de sa base de données avec phpMyAdmin (voir la doc chez Gandi par exemple pour cela). Dans ce cas, vous rapatriez vos données sur votre ordinateur et votre backup n’est ni compressé, ni en sécurité. C’est une solution fastidieuse et à éviter.

2) Utiliser les services de son hébergeur

La plupart des hébergeurs vous proposent un service de backup de votre serveur (solution de serveur virtuel) ou de votre répertoire (solution mutualisée). L’activer est une bonne chose sachant que sans paramétrage spécifique, votre base de données ne sera (à priori) pas incluse dans l’opération.

Chez gandi, la documentation pour faire un snapshot de votre simple host est ici. C’est simple à mettre en place mais le « dump » (sauvegarde) de la base demandera une compétence technique pour être paramétré. Ce service vous sera facturé quelques euros supplémentaires par mois.

Certains hébergeurs spécialisés WordPress (comme wpengine) proposent même leur propre solution intégrée de backup / restore et cela vous évitera toute installation complémentaire. Bien sûr cela à un coût également…

3) Utiliser une solution de contrôle de version

Là c’est très « geek » et réservé aux développeurs, mais utiliser Git fonctionne bien et permet de faire un restore très vite. Vous pouvez consulter cet article si le sujet vous intéresse.

4) Utiliser un manager de sites

Lorsque vous gérez plusieurs sites, il existe des solutions pour les gérer à distance et dans une interface unique. Ces solutions vous permettent souvent de gérer les backups / restore  de vos sites. MainWP vous offira par exemple ce service à travers une extension avec le plugin UpdraftPlus (voir ci dessous).

5) Payer un service en ligne spécialisé

Les services en ligne qui vont s’occuper de faire un backup de votre site sont nombreux et souvent de très bon niveau. Il vous en coûtera vite une centaine d’euros par an. Leur avantage est de vous fournir un service clé en main et des solutions automatisées pour le restore (ce qui n’est pas négligeable !). Bien sûr, ils stockent vos données pour vous. Voici une petite liste des services les plus reconnus :

6) Utiliser un plugin sur son site

C’est la solution que nous allons détailler ici : installer un plugin. Il en existe de nombreux et les plus connus sont Updraftplus et BackWpUp. Dans les 2 cas, ces plugins vous offrent un service minimum gratuit (et souvent suffisant pour des « petits » besoins) et une version pro payante pour accéder à plus de services.

Par exemple, BackWPUp vous propose un transfert automatique vers DropBox gratuitement mais vous devrez payer pour un transfert vers Google Drive. UpdrapftPlus vous offrira ce service gratuitement mais à contrario vous fera payer pour choisir l’heure de sauvegarde…

Dans la même veine, UpdraftPlus propose un service de clonage / migration dans sa version Pro, ce que ne propose pas BackWpUp. Le « restore assisté » est intégré dans UpdraftPlus mais dans sa version gratuite, ce plugin sauvegardera le contenu de wp-content (en 5 fichiers zip) et ne sauvegardera pas la partie « core » de WordPress ni les fichiers à la racine comme wp-config.php, robots.txt ou .htaccess. Ce qui veut dire que vous devrez bien sauvegarder vous même ces fichiers. C’est d’ailleurs principalement pour cette raison que je retiens plutôt BackWpUp pour les sites de mes clients même si le restore ne peut être automatique.

Nous verrons d’ailleurs en fin d’article comment effectuer un tel restore manuel.

Installation et paramétrage de BackWpUp avec Dropbox

Le plugin BackWPUp se trouve ici. Une fois installé, il faudra ajouter une nouvelle opération (menu BackWpUp -> Ajouter une nouvelle opération) de backup et la paramétrer.

Pour cela, cochez bien les cases « fichiers » et « base de données » ; ainsi que « sauvegarde vers dropbox » :

backwpup_1

Sauvegardez et allez sur l’onglet « programmation » et cochez « avec le cron wordpress » et paramétrez la fréquence et l’heure (lancez ce type d’opération la nuit ou en tout cas à un moment où la charge de votre serveur est faible) :

backwpup_2

Les onglets « base de données », « fichiers » et « extensions » peuvent être paramétrés de façon plus pointue mais le backup fonctionnera bien avec les paramétrages par défaut. Les exclusions spécifiques seront gérées dans « fichiers » . Le dernier onglet « dropbox » est lui le dernier à paramétrer :

backwpup_3

Il va vous falloir un code d’autorisation Dropbox en cliquant sur le bouton prévu pour cela :

backwpup_dropbox

Autorisez ensuite l’accès et copiez / collez le code obtenu dans le champ correspondant. Un répertoire BackWPUp sera créé dans votre Dropbox et les backups viendront s’y stocker dans le sous-répertoire correspondant au site (paramétrage possible du nom de ce sous-répertoire, voir écran ci dessus). Vous pouvez enfin paramétrer le nombre de sauvegardes à historiser. Lancez l’opération manuellement pour la première fois et vérifiez que tout se passe bien.

Installation et paramétrage de UpdraftPlus avec Google Drive

Une autre option est donc d’installer UpdrafPlus. Pour faire vos sauvegardes sur un Google Drive, voici comment le paramétrer en vidéo (exemple pris sur le projet izoleco) :

Pour connecter UpdraftPlus à une Dropbox, le processus est un mix entre ce qui est présenté dans la vidéo et ce qui est présenté pour BackWpUp un peu plus haut. Rien de bien sorcier ; ça se configure très vite !

Opération de restore manuel

Dernier point de cet article : faire un restore de son site. Même si le plugin UpdrafPlus propose ce service de façon automatisée, il vaut mieux savoir l’effectuer à la main, ne serait ce que dans l’éventualité où votre WordPress serait complètement inaccessible…

Voici comment procéder au restore manuel dans le cas de BackWpUp :

  • nettoyer votre hébergement et votre base de données (tout supprimer peut être le plus simple)
  • changer et renforcer les mots de passe dans le fichier wp-config.php si le restore fait suite à une attaque. Regénérer aussi des clés de sécurité.
  • récupérer le backup sur votre espace de stockage (dropbox ou google drive)
  • le décompresser sur votre ordinateur (avec 7-zip par exemple)
  • recréer l’utilisateur et la base de données si besoin (comme pour une installation) et en cohérence avec le fichier wp-config.php
  • importer le fichier .sql ou .sql.gz de base de données (souvent situé à la racine du répertoire de backup)
  • ouvrir un accès FTP à l’hébergement et remonter les fichiers dans la même arborescence qu’auparavant
  • et tester !

Voici comment procéder au restore manuel dans le cas de UpdraftPlus :

  • nettoyer votre hébergement et votre base de données (tout supprimer peut être le plus simple)
  • changer et renforcer les mots de passe dans le fichier wp-config.php si le restore fait suite à une attaque. Regénérer aussi des clés de sécurité.
  • récupérer les fichiers de backup sur votre espace de stockage (dropbox ou google drive)
  • les décompresser sur votre ordinateur (avec 7-zip par exemple)
  • recréer l’utilisateur et la base de données si besoin (comme pour une installation) et en cohérence avec le fichier wp-config.php
  • importer le fichier .sql ou .sql.gz de base de données (souvent situé à la racine du répertoire de backup)
  • ouvrir un accès FTP , re-télécharger WordPress et le remonter sur l’hébergement (ne pas lancer l’installateur). Ceci peut être fait aussi par SSH avec une commande WP-CLI (pour les amateurs !).
  • remonter les fichiers de backup par FTP dans wp-content
  • tester !

Une alternative au FTP est de récupérer vos backups par SSH sur votre dropbox  en utilisant l’API Dropbox. Vous trouverez ici un très bon article avec un script pour faire cela.