How to Backup Drupal? Overview of the Backup and Migrate Module

Comment sauvegarder Drupal ? Aperçu du module Backup and Migrate

Lors de la création de sites Web, il est souvent nécessaire de sauvegarder rapidement les données qui ne se trouvent pas dans votre référentiel de code. Dans le cas de Drupal, il est possible de générer des copies via le module « Backup and Migrate ».

Ce module offre des options pour les débutants comme pour les utilisateurs avancés. Dans cet article, je vais présenter ses fonctionnalités en détail.

Dates

Le module a été publié à la fin de 2007 pour Drupal 5. Il a depuis été mis à jour de manière extensive. La branche 8.x-3.x est apparue en 2015, avec Drupal 8, cependant elle n'avait pas de version stable. Il a fallu encore trois ans pour que la version stable 8.x-4.0 voie le jour.

Popularité du module

La popularité du module est confirmée par le nombre d'installations - selon les statistiques officielles, il est utilisé par plus de 220 mille pages, dont environ 40 mille basées sur Drupal 8.

backup-migrate-stats

Créateurs du module

Quatre développeurs sont responsables de la maintenance du module :

Il y a 822 commits dans le référentiel de code, créés par plus de 70 personnes.

À quoi sert le module ?

Backup and Migrate est un outil avancé pour créer des copies de sauvegarde. Il fonctionne sur la base de données, ainsi que sur les fichiers publics et privés. Il s'intègre à Drupal CRON, assurant ainsi la possibilité de faire des sauvegardes régulières vers différentes destinations.

Déballage

Le module est disponible sur https://www.drupal.org/project/backup_migrate. Vous pouvez l'installer à partir d'un fichier .zip ou exécuter la commande composer require drupal/backup_migrate dans la console.

Vous pouvez trouver le panneau d'administration des paramètres dans le menu Configuration → Développement → Backup and Migrate.

Utilisation du module

Le module a été conçu tant pour les débutants que pour les utilisateurs avancés. Les premiers n'ont pas besoin de se plonger dans la configuration de l'exportation des données, ils ont juste besoin d'utiliser l'option de sauvegarde rapide :

backup-migrate-quick

Cliquer sur "Sauvegarder maintenant" téléchargera la base de données (ou les fichiers publics/privés sélectionnés dans le champ "Source de sauvegarde"). De plus, la sauvegarde de la base de données sera dépourvue d'entrées de cache et de journaux, elle prendra donc beaucoup moins d'espace.

D'autres paramètres sont disponibles dans l'onglet "Avancé". Je les décrirai plus tard dans l'article.

Sources de sauvegarde

En cliquant sur Paramètres → Sources, vous accéderez à la liste des sources de sauvegarde disponibles.

backup-migrate-sources

Par défaut, les sources peuvent être :

  • bases de données,
  • fichiers publics,
  • fichiers privés,
  • code de page entier avec une base de données.

Cet ensemble peut être légèrement étendu avec des bases de données MySQL externes et tous les répertoires sur le serveur. Cela peut être fait en utilisant l'option "Ajouter une source de sauvegarde".

Il est possible de définir vos propres sources via l'API du module "Backup and Migrate".

Destinations de sauvegarde

Une destination de sauvegarde est l'endroit où elle doit être mise. Cela peut être, par exemple, un répertoire serveur ou un navigateur web. Les destinations disponibles sont listées dans Paramètres → Destinations.

backup-migrate-destinations

Comme pour les sources, vous pouvez définir vos propres destinations via le bouton "Ajouter une destination de sauvegarde" et un hook correspondant. À la fin de l'article, je présente certains modules d'ajout de destinations comme SFTP Server et S3 Cloud.

Chiffrement

Rappelez-vous que les sauvegardes contiennent des données sensibles et que l'accès à celles-ci doit être strictement limité. Drupal est l'un des CMS les plus sécurisés disponibles, il vaut donc la peine d'utiliser son système de fichiers privé. De plus, la possibilité de chiffrer les fichiers avec les sauvegardes est très pratique. Pour l'utiliser, ajoutez la bibliothèque Defuse au projet en utilisant la commande :

composer require defuse/php-encryption

Après avoir vidé le cache, l'option "Chiffrer le fichier" apparaîtra dans le panneau de configuration du module avec le champ pour entrer un mot de passe. Il sera utilisé pour chiffrer les archives générées.

Sauvegarde avancée

J'ai déjà expliqué comment créer une sauvegarde rapide. Il est temps pour sa version légèrement plus avancée, que vous pouvez trouver dans l'onglet "Backup" → "Advanced Backup".

Voici un aperçu rapide des options disponibles :

  • Source - utilisé pour sélectionner une source prédéfinie.
  • Fichier de sauvegarde - vous permet de configurer le nom et le format du fichier de sauvegarde.
  • Chiffrement de sauvegarde - active le chiffrement de l'archive.
  • Mettre le site hors ligne - désactive le site lors de la création de sa sauvegarde.
  • Exclure les tables de la base de données - vous permet d'exclure des tables sélectionnées dans la base de données (ou seulement leur contenu) de la sauvegarde.
  • Exclure les fichiers - utilisé pour exclure des fichiers sélectionnés lors de la création d'une copie de répertoire.
  • Destination - vous permet de sélectionner la destination de la sauvegarde.

Si vous souhaitez enregistrer un tel ensemble d'options avancées pour l'avenir, jetez un coup d'œil aux profils dans l'onglet "Paramètres" → "Profils de paramètres".

Liste de sauvegarde

Toutes les sauvegardes sur le serveur sont listées dans la liste "Sauvegardes Enregistrées".

list

Fait intéressant, cette liste fonctionne également lors de l'enregistrement des sauvegardes sur les serveurs SFTP et S3.

Restauration de sauvegarde

Option moins fréquemment nécessaire, mais néanmoins extrêmement intéressante, est de restaurer le site Web à partir d'une sauvegarde. À cette fin, vous pouvez utiliser l'une des copies de la liste présentée ci-dessus ou télécharger n'importe quel fichier via le formulaire.

Planification

La dernière fonctionnalité importante du module Backup and Migrate est la possibilité de créer des plannings de sauvegarde.

backup-migrate-schedule

Ici, vous avez tout ce dont vous avez besoin pour construire un mécanisme de sauvegarde efficace. Ces actions sont réalisées à l'aide des fonctionnalités CRON de Drupal. Par conséquent, aucune configuration supplémentaire du serveur n'est nécessaire.

Hooks et intégrations

Backup and Migrate offre un hook de base hook_backup_migrate_service_object_alter(), vous permettant de changer pratiquement tout le moteur du module. C'est ici que des plugins et filtres supplémentaires sont définis. Vous pouvez définir les éléments suivants :

  • Sources de sauvegarde - par défaut, il s'agit de la base de données, des fichiers publics/privés et de l'ensemble du site Web avec le code source.
  • Destinations de sauvegarde - telles que le stockage en cloud ou le stockage en répertoire local.
  • Filtres modifiant les archives générées - par exemple le chiffrement.

Sur la base du mécanisme ci-dessus, de nombreux modules auxiliaires offrant une intégration avec des fournisseurs externes d'espace disque ont été créés. Malheureusement, la plupart d'entre eux fonctionnent uniquement sous le contrôle de Drupal 7. Ceux-ci incluent :

Résumé

Face aux nouvelles technologies, le module Backup and Migrate est parfois considéré comme redondant. Cependant, nous l'utilisons dans notre agence Drupal car il offre le moyen le plus simple de télécharger une base de données et des fichiers à partir d'un site Web basé sur Drupal. Il est facile à configurer et fonctionne presque immédiatement.

Dans le cas de sites Web plus petits, le module peut être utile comme complément à une sauvegarde standard. Surtout lorsque le code est sur un serveur partagé où vous n'avez pas le contrôle total du système.

As part of Drupal support, we maintain existing websites and expand them with new functionalities