Réalisez une copie complète et vérifiable de votre site, base de données et fichiers, selon un planning, envoyez-la ailleurs que sur le serveur d’origine, et restaurez-la depuis un seul écran sécurisé. Restaurer une archive sur une autre installation est aussi la façon de déplacer votre site vers un nouveau serveur.

Fonctionne sur tout hébergement

Utilise mysqldump lorsque le serveur le permet, et bascule sur un exportateur PHP intégré lorsque exec() est désactivé, ce qui est le cas de la plupart des hébergements mutualisés.

Hors site par conception

Disque local, stockage compatible S3, FTP, SFTP et Dropbox, chacun avec un test de connexion en un clic.

Planifié et élagué

Quotidien, hebdomadaire, mensuel ou selon votre propre expression cron, avec une politique de rétention qui supprime les anciennes archives pour vous.

Restauration sécurisée

Une simulation d’abord, une sauvegarde de sécurité automatique, le mode maintenance, une réécriture d’URL et une confirmation qui demande votre mot de passe.

Cas d’utilisation

L’assurance de chaque nuit

Le cas dont tout le monde a besoin et que personne ne met en place à temps.

  • Une sauvegarde complète chaque nuit à 03:00, envoyée vers un stockage extérieur à votre serveur.
  • Les sept dernières conservées, tout ce qui a plus de trente jours supprimé automatiquement.
  • Un e-mail dès qu’une exécution échoue, pour que vous le sachiez avant d’avoir besoin de l’archive.

Avant une modification risquée

Une mise à jour, un nouvel add-on, un thème dont vous n’êtes pas sûr.

  • Lancez manuellement une sauvegarde complète depuis le panneau d’administration, attendez le badge vert, puis continuez.
  • Si la modification tourne mal, restaurez cette archive et vous revenez à votre point de départ.

Déménager vers un nouveau serveur

Une migration, c’est une sauvegarde sur une machine et une restauration sur une autre.

  • Réalisez une sauvegarde complète sur l’ancien site et téléchargez-la.
  • Installez le CMS sur le nouveau serveur, activez cet add-on, téléversez l’archive et restaurez-la.
  • L’étape de réécriture d’URL remplace l’ancienne adresse partout où elle apparaît dans la base de données.

Garder une copie à remettre

Une archive est un fichier unique : une remise à un client, une copie d’audit, un instantané de développement local.

  • Chiffrez-la avec un mot de passe avant qu’elle ne quitte le serveur.
  • Découpez-la en volumes lorsque le destinataire impose une limite de taille de fichier.

Prérequis

  • Larapen CMS v1.0.0 ou ultérieur
  • PHP 8.3+ avec les extensions zip et openssl
  • MySQL 8.0+
  • Un worker de file d’attente en fonctionnement : les sauvegardes et restaurations ne s’exécutent jamais dans une requête web
  • Une entrée cron pour le planificateur, si vous voulez des sauvegardes planifiées (voir L’entrée cron)
  • Rien de plus pour les destinations hors site : les bibliothèques S3, FTP, SFTP et Dropbox sont fournies avec l’application
exec() n’est pas requis. Si votre hébergeur le désactive, ou si mysqldump n’est pas installé, l’add-on bascule automatiquement sur son propre exportateur PHP. Vous n’avez rien à configurer : la page État du serveur indique simplement lequel est utilisé.

Installation

Étape 1 : Téléverser l’add-on

Dans le panneau d’administration, allez dans Admin → Extensions → Add-ons et cliquez sur le bouton Télécharger un add-on. Sélectionnez le fichier ZIP de l’add-on : le système le décompresse automatiquement et l’add-on apparaît dans la liste des add-ons installés.

Étape 2 : Activer l’add-on

Repérez Backup & Restore dans la liste et cliquez sur Activer. Ses tables et ses permissions sont créées automatiquement, ainsi qu’une destination Ce serveur prête à l’emploi : les archives sont déposées dans le dossier de stockage privé, en dehors de la racine web. Rien ne s’exécute de lui-même tant que vous n’avez pas créé de planning et configuré l’entrée cron.

Étape 3 : Vérifier le serveur

Ouvrez Admin → Sauvegarde → État du serveur et lisez le rapport avant de vous fier à quoi que ce soit. Voir État du serveur.

Code d’achat (clé de licence)

Backup & Restore est vendu comme un produit séparé, il possède donc son propre code d’achat (clé de licence), distinct du code d’achat de l’application principale et de celui de chaque autre add-on. Il vous est demandé lorsque vous activez Backup & Restore dans Panneau d’administration → Add-ons.

Nos produits sont vendus sur trois plateformes. La façon dont vous recevez un code d’achat dépend de l’endroit où vous avez acheté le produit.

Plateforme / Marketplace Comment obtenir le code d’achat Où le retrouver
Boutique bedigit.com
Achat sur le site (Shop)
Généré automatiquement lorsque la commande est payée, puis envoyé par e-mail, soit dans un e-mail de licence dédié, soit dans l’e-mail de confirmation de commande. Mon compte → Mes licences sur bedigit.com
Gumroad Créé dès que Gumroad nous notifie la vente, puis envoyé dans un e-mail séparé, en plus du reçu Gumroad. L’e-mail de licence, votre Bibliothèque Gumroad et Mon compte → Mes licences sur bedigit.com
Envato Market
CodeCanyon
Délivré par Envato, pas par nous, et jamais envoyé par e-mail : vous le téléchargez vous-même depuis votre compte Envato. Compte Envato → Downloads → License certificate & purchase code
Vérifiez votre dossier de spam. Pour les achats effectués sur la Boutique bedigit.com et sur Gumroad, le code d’achat est envoyé par e-mail. Les e-mails de licence automatiques sont très souvent filtrés : si le message ne se trouve pas dans votre boîte de réception, regardez dans votre dossier spam / courrier indésirable avant de contacter le support, et ajoutez notre adresse d’expédition à vos contacts ou à votre liste d’autorisation.

1. Boutique bedigit.com (achat sur le site)

  • Dès que le statut de paiement de la commande devient Payée, une clé de licence est générée automatiquement pour chaque article sous licence de la commande (une clé par unité achetée : acheter 3 unités donne 3 clés distinctes).
  • Elle est envoyée par e-mail à l’adresse utilisée pour la commande, soit dans un e-mail de licence dédié, soit dans l’e-mail de confirmation de commande. Vérifiez votre boîte de réception et votre dossier spam / courrier indésirable.
  • La clé reste disponible dans votre compte sous Mon compte → Mes licences. Les clés sont masquées dans la liste ; ouvrez la page de détail de la licence pour afficher et copier la clé complète, voir les domaines sur lesquels elle est activée, et désactiver un domaine pour libérer un emplacement d’activation.
  • La facture correspondante se trouve sous Mon compte → Mes commandes.

2. Gumroad

  • Un achat sur Gumroad produit deux e-mails distincts : le reçu Gumroad (envoyé par Gumroad, donnant accès aux fichiers) et un e-mail de clé de licence (envoyé par bedigit.com) qui contient votre code d’achat.
  • L’e-mail de clé de licence est généré dès que Gumroad nous notifie la vente, il arrive donc normalement quelques secondes après le paiement. Ici aussi, vérifiez votre boîte de réception et votre dossier spam / courrier indésirable.
  • Lorsque le produit Gumroad utilise la fonctionnalité de clés de licence propre à Gumroad, la même clé apparaît aussi dans votre reçu Gumroad et sous Bibliothèque dans votre compte Gumroad.
  • La clé est également enregistrée sur votre compte bedigit.com, sous Mon compte → Mes licences.

3. Envato Market (CodeCanyon)

  • Envato délivre lui-même le code d’achat. Nous ne l’envoyons jamais par e-mail, car nous ne le recevons pas.
  • Récupérez-le depuis votre compte Envato : Downloads → trouvez l’article → License certificate & purchase code (la version texte comme la version PDF le contiennent).
  • Il ressemble à xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
Toujours introuvable ? Ouvrez un ticket sur notre Centre d’aide en indiquant l’adresse e-mail utilisée pour l’achat et, le cas échéant, le numéro de commande ou le reçu Gumroad. Nous pouvons retrouver la clé pour vous.

Démarrage rapide

Obtenir une première archive sur le disque prend environ une minute.

  1. Allez dans Admin → Sauvegarde → État du serveur et assurez-vous que rien n’est signalé en rouge.
  2. Allez dans Admin → Sauvegarde → Sauvegardes et cliquez sur Lancer une sauvegarde.
  3. Laissez le type sur Complète, choisissez la destination Ce serveur et cliquez sur Démarrer la sauvegarde.
  4. La ligne apparaît immédiatement avec une barre de progression. Vous pouvez quitter la page : l’exécution est dans la file d’attente.
  5. Lorsque le badge devient vert, cliquez sur la ligne pour voir le journal des étapes et le contenu de l’archive.
Une sauvegarde sur le même serveur n’est pas une sauvegarde. Elle survit à une mauvaise mise à jour ; elle ne survit pas à un disque mort, à un compte compromis ou à un hébergement perdu. Ajoutez une deuxième destination située ailleurs, voir Destinations, et faites-y pointer votre planning.

État du serveur

Admin → Sauvegarde → État du serveur répond à l’avance aux questions que vous ne découvririez sinon qu’à trois heures du matin.

Vérification Signification
Espace disque libre Une sauvegarde a besoin de place pour l’archive et pour l’export de la base de données pendant sa création. Rouge signifie que la place manque.
Extension PHP zip Obligatoire. Sans elle, aucune archive ne peut être créée. Demandez à votre hébergeur de l’activer.
mysqldump Vert lorsque le binaire est accessible. L’orange est normal et sans danger : l’exportateur PHP intégré est utilisé à la place.
Temps d’exécution maximal Les workers de file d’attente l’ignorent généralement, mais une limite très basse peut interrompre une longue exécution.
Limite de mémoire Les sauvegardes traitent les fichiers en flux au lieu de les charger en mémoire, une limite modeste suffit donc normalement.
Dossier de travail accessible en écriture L’endroit où les archives sont préparées pendant leur création. Rouge signifie un problème de permissions à corriger.
Emplacement des archives Rouge si une destination stocke des archives dans le dossier public, où n’importe qui pourrait les télécharger. Corrigez-le immédiatement.
Connexion de file d’attente Orange lorsque la file d’attente est réglée sur sync, ce qui exécuterait la sauvegarde dans la requête qui l’a lancée.

La même page liste chaque type de destination et confirme que la bibliothèque correspondante est présente, avec la commande qui la rétablit si l’une d’elles manquait.

Types de sauvegarde

Type Contient À utiliser quand
Complète La base de données et les fichiers. Toujours, pour vos sauvegardes planifiées. C’est le seul type à partir duquel vous pouvez migrer.
Base de données seule Un seul export SQL. Des instantanés fréquents et peu coûteux entre deux sauvegardes complètes : votre contenu change bien plus souvent que vos fichiers.
Fichiers seuls Les dossiers et fichiers sélectionnés. Avant de remplacer un thème ou une grande médiathèque, lorsque la base de données n’est pas concernée.

Ce qui est inclus

La sélection par défaut couvre tout ce dont une installation fonctionnelle a besoin : le code de l’application, votre configuration, vos thèmes et add-ons, vos fichiers de langue et vos médias téléversés. Vous pouvez la modifier sous Admin → Sauvegarde → Paramètres → Contenu des sauvegardes, ou pour chaque planning.

Deux éléments volumineux sont des interrupteurs plutôt que de simples entrées :

  • Le dossier vendor est exclu par défaut. Il est volumineux et peut être recréé avec une seule commande Composer : l’exclure divise souvent la taille de l’archive par deux. Incluez-le si le serveur cible n’a pas accès à Composer.
  • Les médias téléversés sont inclus par défaut. Les désactiver rend l’archive nettement plus petite et nettement moins utile : ne le faites que si vos médias sont déjà sauvegardés ailleurs.

Certains éléments sont toujours ignorés, quelle que soit votre configuration, car les inclure serait une erreur et pas seulement un gaspillage : caches compilés, fichiers de session et de vues, journaux, .git, node_modules, et les dossiers de sauvegarde eux-mêmes : une archive ne doit jamais se contenir elle-même.

Les liens symboliques sont suivis, en toute sécurité. Les thèmes et add-ons sont souvent des liens vers des dossiers situés ailleurs sur le serveur : l’archive les suit donc et stocke les vrais fichiers. Un lien dont la cible n’existe plus est ignoré et consigné dans le journal au lieu d’interrompre l’exécution, et un lien qui pointe vers son propre parent n’est pas suivi deux fois.

Fonctionnement de l’export

La base de données est exportée de l’une des deux façons suivantes, choisie automatiquement :

  • mysqldump, lorsque le serveur autorise PHP à lancer un processus et que le binaire est installé. Il est plus rapide sur les grosses bases de données et produit le format que tout administrateur MySQL connaît déjà. Le mot de passe de votre base de données est transmis dans un fichier d’identifiants temporaire, jamais sur la ligne de commande où d’autres utilisateurs du serveur pourraient le lire.
  • L’exportateur PHP intégré dans les autres cas. Il lit les tables via la connexion ordinaire à la base de données, par petits lots, de sorte que la consommation mémoire reste stable quelle que soit la taille d’une table. C’est la voie qu’empruntent la plupart des hébergements mutualisés, et elle ne demande rien à votre hébergeur.

Vous pouvez forcer l’une ou l’autre sous Paramètres → Moteur → Méthode d’export de la base, mais le choix automatique est presque toujours le bon.

Lancer une sauvegarde

Cliquez sur Lancer une sauvegarde dans Admin → Sauvegarde → Sauvegardes. Vous choisissez :

  • un nom facultatif, pour retrouver l’archive plus tard ;
  • le type (voir ci-dessus) ;
  • la destination vers laquelle elle est envoyée ;
  • s’il faut la chiffrer, et avec quel mot de passe.

L’exécution est placée dans la file d’attente, et non exécutée dans votre navigateur : un gros site ne peut donc pas dépasser le délai. La ligne affiche une barre de progression en direct et l’étape en cours ; vous pouvez fermer la page et revenir plus tard.

Chaque sauvegarde terminée peut être téléchargée, restaurée ou supprimée depuis sa ligne. Supprimer une sauvegarde supprime l’archive correspondante, où qu’elle soit stockée.

Chiffrement

Une archive contient votre base de données : comptes utilisateurs, empreintes de mots de passe, commandes, fichiers privés. Si elle doit quitter votre serveur, chiffrez-la.

Le chiffrement utilise AES-256 avec une clé dérivée de votre mot de passe, appliqué à l’archive terminée pendant son écriture sur le disque, et scellé par un contrôle d’intégrité : un fichier endommagé ou altéré est donc rejeté avant que quoi que ce soit ne soit restauré à partir de lui.

Le mot de passe n’est jamais stocké. Seule une empreinte en est conservée, pour que l’écran de restauration puisse vous dire immédiatement que vous vous êtes trompé. Si vous perdez le mot de passe, l’archive ne peut pas être ouverte, ni par vous, ni par nous. Conservez-le dans votre gestionnaire de mots de passe.

Un planning s’exécute sans surveillance et ne peut demander de mot de passe à personne : un planning chiffré en stocke donc un, chiffré, avec lui. Conservez aussi votre propre copie de ce mot de passe.

Découper les grosses archives

Sous Paramètres → Moteur → Découper les archives au-delà de, vous pouvez définir une taille de volume en mégaoctets. Les archives plus grandes sont découpées en parties numérotées (.001, .002 et ainsi de suite), ce qu’exigent certains hébergeurs et certaines destinations.

Les archives découpées sont réassemblées automatiquement lors de la restauration : vous n’avez jamais à les rassembler à la main. Si vous voulez tout de même le faire vous-même, les parties sont de simples plages d’octets et cat archive.zip.* > archive.zip reconstitue l’original.

Une archive découpée ne peut pas être téléchargée depuis le panneau d’administration en un seul fichier ; récupérez les parties directement sur la destination, ou restaurez-la depuis son emplacement.

Destinations

Une destination est l’endroit où les archives terminées sont envoyées. Ajoutez-les et modifiez-les sous Admin → Sauvegarde → Destinations ; chacune s’ouvre dans une fenêtre sur cette page. Chaque destination dispose d’un bouton Tester la connexion qui écrit un petit fichier, le relit puis le supprime : ainsi, “ça marche” signifie que ça marche vraiment, pas seulement que les identifiants semblent plausibles.

Une destination est celle par défaut : elle est présélectionnée chaque fois que vous lancez une sauvegarde. Gardez-en plus d’une, et faites pointer votre planning vers une destination hors site.

Ce serveur

Les archives sont conservées sur la même machine, dans le dossier de stockage privé, qui se trouve en dehors de la racine web sur une installation standard. Vous pouvez la faire pointer vers n’importe quel chemin absolu (un dossier voisin de la racine web, un volume monté), mais pas vers un dossier situé dans public/ : c’est refusé, car une archive accessible depuis le web est une copie complète de votre site offerte à quiconque devine le nom du fichier.

Stockage compatible S3

Un seul type de destination couvre Amazon S3 et tous les services qui utilisent le même protocole.

  • Amazon S3 : renseignez la clé d’accès, le secret, la région et le bucket, et laissez l’endpoint vide.
  • Wasabi, Backblaze B2, DigitalOcean Spaces, MinIO et autres : renseignez les mêmes champs, indiquez le endpoint fourni par votre prestataire, et activez l’adressage par chemin.

Utilisez une clé qui ne peut écrire que dans le bucket de sauvegarde. Une clé aux droits plus larges transforme un site compromis en compte de stockage compromis.

FTP et SFTP

FTP demande un hôte, des identifiants, un port et un dossier, avec le mode passif et FTPS en option. SFTP fonctionne de la même façon via SSH et accepte soit un mot de passe, soit une clé privée : collez la clé elle-même, pas son chemin, et laissez le mot de passe vide lorsque vous en utilisez une.

Préférez SFTP. Le FTP simple envoie vos identifiants et votre archive entière sans chiffrement.

Dropbox

Dropbox se connecte à un compte au lieu de demander un mot de passe, ce qui se fait en trois étapes :

  1. Créez une application dans la Dropbox App Console et copiez sa clé et son secret.
  2. Cliquez sur Ajouter une destination, choisissez le type, collez la clé et le secret, puis enregistrez. Le formulaire affiche une URI de redirection : copiez-la dans la liste des URI de redirection autorisées de votre application.
  3. Cliquez sur Connecter le compte, approuvez la demande chez Dropbox, et vous revenez sur la destination avec le compte connecté.

Seul un jeton d’actualisation de longue durée est conservé ; le jeton d’accès de courte durée est renouvelé automatiquement avant chaque transfert, de sorte qu’une longue sauvegarde ne peut pas expirer à mi-parcours. Déconnecter supprime les deux.

Bibliothèques de stockage

Tous les types de destination listés ci-dessus fonctionnent immédiatement : les bibliothèques correspondantes (pour S3, FTP, SFTP et Dropbox) sont fournies avec l’application, il n’y a donc rien à installer ni rien à configurer avant de pouvoir ajouter une destination.

Un type peut tout de même être signalé comme Indisponible si sa bibliothèque a disparu du serveur : le plus souvent parce qu’un téléversement partiel a remplacé vendor/, ou parce qu’un déploiement a sauté l’étape des dépendances. Ce n’est pas un plantage : le type est grisé avec la commande exacte qui le rétablit, et une sauvegarde qui le vise échoue avec ce message plutôt qu’avec une erreur vide. Les commandes apparaissent sur la page État du serveur et sur la page Destinations ; exécutez celle qui est indiquée depuis le dossier de votre installation et rechargez la page.

Rien à installer. Si un type est grisé, considérez-le comme le signe que l’installation est incomplète plutôt que comme un complément facultatif manquant : le reste de l’application dépend du même dossier vendor/.

Planifications

Une sauvegarde qu’il faut penser à lancer est une sauvegarde que vous n’aurez pas. Créez un planning sous Admin → Sauvegarde → Planifications.

Chaque planning a son propre type, sa destination, sa sélection de fichiers, son chiffrement et sa rétention : vous pouvez donc envoyer un instantané nocturne de la base de données à un endroit et une sauvegarde complète hebdomadaire à un autre.

Fréquence Vous choisissez
Tous les joursL’heure de la journée.
Toutes les semainesLe jour de la semaine et l’heure.
Tous les moisLe jour du mois (jusqu’au 28, pour qu’il se déclenche aussi en février) et l’heure.
PersonnaliséeUne expression cron à cinq champs, validée à l’enregistrement.

La liste affiche l’expression cron résolue et la prochaine exécution de chaque planning, pour que vous voyiez d’un coup d’œil si l’un d’eux va réellement se déclencher. Exécuter maintenant place immédiatement un planning dans la file d’attente sans attendre son heure.

L’entrée cron

Les plannings sont des données, pas du code : quelque chose doit réveiller l’application et lui demander lesquels sont dus. C’est le rôle du planificateur, et il a besoin d’une entrée cron sur le serveur. Sans elle, aucun planning ne s’exécute jamais : c’est de loin la raison la plus courante pour laquelle les sauvegardes planifiées n’ont silencieusement pas lieu.

La ligne exacte pour votre installation, avec vos propres chemins déjà renseignés, est affichée en haut de la page Planifications avec un bouton de copie. Elle ressemble à ceci :

* * * * * /usr/bin/php /path/to/your/site/artisan schedule:run >> /dev/null 2>&1

Ajoutez-la à la crontab de l’utilisateur propriétaire du site :

crontab -e

Si votre hébergeur vous fournit un panneau cron plutôt qu’un shell, créez une tâche qui s’exécute chaque minute avec la même commande. Chaque minute est la bonne fréquence et ne coûte rien : le planificateur se termine immédiatement lorsque rien n’est dû, et c’est ainsi qu’un planning réglé sur 03:17 se déclenche à 03:17.

Vérifiez que c’est pris en compte. Après avoir ajouté l’entrée, activez un planning et utilisez Exécuter maintenant pour confirmer que les sauvegardes fonctionnent, puis regardez la colonne Prochaine exécution le lendemain : si elle n’a pas bougé, l’entrée cron ne s’exécute pas.

Rétention

Sans politique de rétention, les archives s’accumulent jusqu’à remplir le disque, ce qui casse généralement le site et les sauvegardes au même moment. Chaque planning a deux limites, et vous pouvez utiliser l’une, l’autre ou les deux :

  • Conserver les N dernières sauvegardes : les N plus récentes de ce planning sont conservées.
  • Conserver pendant X jours : tout ce qui est plus ancien est supprimé.

Réglez une valeur sur 0 pour désactiver cette moitié de la règle. Régler les deux sur 0 conserve tout indéfiniment.

L’élagage supprime l’archive en même temps que l’entrée, et s’exécute après chaque sauvegarde planifiée et une fois par jour. Les sauvegardes réalisées automatiquement avant une restauration ne sont jamais élaguées : elles existent précisément pour le cas où tout le reste a mal tourné.

Commandes console

Tout ce que propose le panneau d’administration est aussi disponible en ligne de commande, ce qui est utile dans un script de déploiement ou lorsque le site lui-même ne se charge plus.

php artisan backup:run --type=full
php artisan backup:run --type=database --sync
php artisan backup:run --destination="Off-site S3" --password="your passphrase"
php artisan backup:schedule
php artisan backup:prune --dry-run
CommandeRôle
backup:run Place une sauvegarde dans la file d’attente. --sync l’exécute plutôt au premier plan, ce qu’attend un script de déploiement. --type accepte full, database ou files.
backup:schedule Place dans la file d’attente chaque planning arrivé à échéance. Appelée automatiquement par le planificateur chaque minute.
backup:prune Applique chaque politique de rétention et réduit le journal d’activité. --dry-run affiche le rapport sans rien supprimer.

Restaurer une sauvegarde

La restauration écrase la base de données et les fichiers de cette installation. C’est la seule action irréversible de l’add-on : c’est donc volontairement un processus en trois étapes plutôt qu’un simple bouton.

Allez dans Admin → Sauvegarde → Restauration. Vous pouvez restaurer une archive produite par cette installation, ou une archive que vous téléversez : la seconde option permet de déplacer un site d’un serveur à un autre.

Étape 1 : La simulation

Choisissez une archive (ou téléversez-en une), indiquez son mot de passe si elle est chiffrée, et cliquez sur Analyser l’archive. Rien n’est modifié : l’archive est récupérée, déchiffrée, ouverte et décrite.

Le rapport vous indique :

  • si elle contient un export de base de données, des fichiers ou les deux, et combien de chacun ;
  • un échantillon des entrées qu’elle contient ;
  • une comparaison d’environnement : l’URL du site, la version de PHP, le pilote de base de données, le préfixe de table et la version de l’application dont provient l’archive, chacun comparé à cette installation.

Les différences ne sont pas des erreurs : c’est à cela que ressemble un déménagement entre serveurs. Lisez-les avant de continuer. Un préfixe de table ou un pilote de base de données différent est la seule combinaison qui justifie de s’arrêter : l’archive recréera ses propres tables, et la configuration de l’installation devra ensuite leur correspondre.

Étape 2 : Les options

OptionRôle
Restaurer la base de données Rejoue l’export SQL. Disponible uniquement si l’archive en contient un.
Restaurer les fichiers Écrit les fichiers archivés par-dessus l’installation. Disponible uniquement si l’archive en contient.
Supprimer d’abord les tables existantes Recommandé. Sans cette option, les tables présentes dans cette installation mais absentes de l’archive survivraient à la restauration, laissant un état qu’aucun des deux côtés n’a jamais connu.
Effectuer d’abord une sauvegarde de sécurité Laissez cette option activée. Une sauvegarde complète de l’état actuel, réalisée avant que quoi que ce soit ne soit écrasé.
Passer le site en mode maintenance Les visiteurs voient une page de maintenance pendant la restauration. Le site est remis en ligne ensuite, même si la restauration échoue.
Réécriture d’URL Remplace une chaîne par une autre partout dans la base de données. Préremplie avec l’ancienne et la nouvelle adresse du site lorsqu’elles diffèrent.

C’est la réécriture d’URL qui fait réellement fonctionner une migration. L’ancienne adresse est inscrite dans le contenu des pages, les liens de menu, les paramètres enregistrés et les données en cache, et elle est correctement traitée même à l’intérieur de valeurs sérialisées, là où un simple rechercher-remplacer corromprait les données.

Étape 3 : La confirmation

Pour lancer la restauration, vous devez :

  • disposer de la permission dédiée Lancer une restauration ;
  • indiquer le mot de passe de l’archive, si elle est chiffrée ;
  • saisir le mot de passe de votre propre compte ;
  • saisir exactement le mot RESTORE ;
  • confirmer la demande qui suit.

Le mot de passe du compte empêche qu’une session d’administration laissée sans surveillance ne soit transformée en site effacé par quiconque passe devant le clavier.

Ce qui se passe pendant l’exécution

  1. L’archive est récupérée depuis sa destination, réassemblée si elle était découpée, puis déchiffrée.
  2. Une sauvegarde de sécurité complète de l’état actuel est réalisée et terminée avant que quoi que ce soit d’autre ne commence.
  3. Le site passe en mode maintenance.
  4. La base de données est supprimée puis rejouée depuis l’export, par lots.
  5. Les fichiers sont écrits par-dessus l’installation. Les entrées qui tentent de sortir du dossier d’installation sont refusées.
  6. La réécriture d’URL s’exécute sur la base de données restaurée.
  7. Le site est remis en ligne, et tous ceux qui ont activé la notification reçoivent un e-mail.

Chaque étape est consignée dans le journal de la page de la restauration, avec les durées : vous pouvez voir exactement ce qui s’est passé, et où cela s’est arrêté le cas échéant.

Déménager vers un nouveau serveur

Il n’existe pas de fonctionnalité de migration séparée, car il n’y en a pas besoin : restaurer une archive sur une autre installation est la migration.

  1. Sur l’ancien site, lancez une sauvegarde Complète et attendez qu’elle se termine.
  2. Téléchargez l’archive. Si elle est découpée en volumes, récupérez chaque partie.
  3. Sur le nouveau serveur, installez le CMS normalement et reliez-le à une base de données vide.
  4. Activez Backup & Restore sur la nouvelle installation.
  5. Allez dans Restauration, téléversez l’archive et cliquez sur Envoyer et analyser.
  6. Lisez la comparaison d’environnement. L’URL du site sera différente : c’est tout l’objet de l’opération.
  7. Vérifiez que la réécriture d’URL est préremplie avec l’ancienne adresse et la nouvelle, corrigez-la si besoin, et confirmez la restauration.
  8. Une fois terminé, connectez-vous sur le nouveau site et vérifiez quelques pages, la médiathèque et un formulaire.
Limites de téléversement. Les archives sont souvent plus grosses que ce que PHP autorise en téléversement. Si le téléversement est refusé, augmentez upload_max_filesize et post_max_size sur le nouveau serveur, ou, plus simple, placez l’archive sur une destination accessible aux deux serveurs (S3, SFTP, Dropbox), ajoutez cette destination sur la nouvelle installation, et restaurez-la depuis celle-ci au lieu de la téléverser.
Gardez l’ancien site jusqu’à être sûr. Ne modifiez pas le DNS, et ne supprimez rien, tant que vous n’avez pas parcouru correctement le nouveau site. Une migration sur laquelle vous pouvez encore revenir n’est pas vraiment un risque.

Si une restauration tourne mal

La sauvegarde de sécurité est la voie de récupération. C’est une sauvegarde complète normale, listée avec les autres et marquée Sauvegarde de sécurité, et elle n’est jamais supprimée par une politique de rétention.

  1. Allez dans Admin → Sauvegarde → Sauvegardes et repérez l’entrée nommée Avant restauration portant l’horodatage de la tentative : elle est aussi liée depuis la page de la restauration.
  2. Restaurez-la de la même façon que vous avez restauré l’autre archive.
  3. Utilisez le même mot de passe d’archive que pour la restauration échouée : la copie de sécurité est chiffrée avec lui aussi, elle n’est donc jamais moins protégée que ce qu’elle a remplacé.

Si le site ne se charge plus du tout, la même opération est possible en ligne de commande, qui n’a pas besoin que le panneau d’administration fonctionne. Si le site reste bloqué sur une page de maintenance après une exécution interrompue, remettez-le en ligne avec :

php artisan up

Sécurité

Une archive, c’est votre site entier dans un seul fichier. L’add-on est conçu autour de ce fait.

  • Les archives sont stockées en dehors de la racine web. L’emplacement par défaut est le dossier de stockage privé, et une destination pointant vers le dossier public est refusée d’emblée.
  • Les téléchargements passent par un lien signé et temporaire. Le lien est créé lorsque vous cliquez, vérifié par rapport à vos permissions, et expire au bout de quelques minutes : une URL copiée depuis un historique de navigateur ou une capture d’écran partagée est déjà morte.
  • Chaque identifiant est chiffré au repos. Les secrets S3, les mots de passe FTP, les clés SSH et les jetons OAuth sont chiffrés dans la base de données, masqués dans les formulaires, et jamais écrits dans un journal.
  • Les archives chiffrées sont scellées. Une archive tronquée ou altérée échoue au contrôle d’intégrité avant qu’un seul octet ne soit restauré.
  • Les restaurations sont sécurisées. Une permission distincte, une simulation, une phrase de confirmation à saisir et le mot de passe de votre compte.
  • Les archives téléversées sont considérées comme non fiables. Les entrées qui tentent d’écrire en dehors du dossier d’installation sont refusées et consignées.
Chiffrez tout ce qui quitte le serveur. Stockage cloud, compte FTP, copie sur votre ordinateur portable : ce sont autant d’endroits où votre base de données peut être lue si l’archive n’est pas chiffrée.

Notifications

Trois notifications sont envoyées aux administrateurs, par e-mail et dans la cloche de l’administration :

  • Sauvegarde réussie : nom, type, taille, destination et durée.
  • Échec de la sauvegarde : la raison, et un lien vers le journal des étapes. C’est celle qui compte.
  • Restauration terminée : si elle a réussi, et où se trouve la sauvegarde de sécurité.

Les e-mails de réussite peuvent être entièrement désactivés sous Paramètres → Notifications : un planning nocturne qui écrit à chaque administrateur tous les matins habitue tout le monde à filtrer précisément le message qu’il faut lire. Les échecs sont toujours envoyés. Chaque administrateur peut régler ses propres préférences sous Admin → Notifications.

Journal d’activité

Admin → Sauvegarde → Journal d’activité contient chaque étape de chaque sauvegarde et restauration, avec les durées, filtrable par niveau et par étape. Chaque sauvegarde et chaque restauration affiche aussi son propre journal sur sa page de détail, qui est généralement l’endroit où regarder.

Les avertissements méritent d’être lus même lors d’une exécution réussie : un fichier illisible ignoré ou un lien symbolique cassé y est consigné au lieu de faire échouer la sauvegarde. Les entrées sont supprimées automatiquement après le nombre de jours défini dans Paramètres → Rétention.

Paramètres généraux

Admin → Sauvegarde → Paramètres contient les valeurs par défaut dont part chaque sauvegarde.

OngletParamètres
Moteur Méthode d’export de la base de données, niveau de compression et taille de volume pour le découpage.
Contenu des sauvegardes Les listes d’inclusion et d’exclusion par défaut, et les interrupteurs du dossier vendor et des médias téléversés.
Rétention et téléchargements La durée de conservation des entrées du journal, la durée de vie d’un lien de téléchargement et la taille maximale d’une archive téléversable.
Notifications Si les sauvegardes réussies sont notifiées par e-mail.

La compression est un compromis : 0 stocke sans compresser, ce qui est le plus rapide et le plus volumineux ; 9 compresse au maximum, ce qui est le plus lent et le plus compact. 6 est une valeur par défaut raisonnable et celle à conserver, sauf si vous avez mesuré une raison d’en changer.

Permissions

L’add-on enregistre ses propres permissions, attribuables par rôle sous Admin → Utilisateurs → Rôles.

PermissionAutorise
backup.backups.viewVoir la liste des sauvegardes et le journal des étapes.
backup.backups.createLancer une sauvegarde, et exécuter un planning immédiatement.
backup.backups.downloadTélécharger une archive.
backup.backups.deleteSupprimer une sauvegarde et son archive.
backup.destinations.viewVoir les destinations et tester leurs connexions.
backup.destinations.editAjouter, modifier et supprimer des destinations.
backup.schedules.viewVoir les plannings.
backup.schedules.editAjouter, modifier et supprimer des plannings.
backup.restore.runInspecter et restaurer une archive.
backup.logs.viewVoir le journal d’activité.
backup.settings.viewVoir les paramètres et l’état du serveur.
backup.settings.editModifier les paramètres et vider le journal.
Accordez backup.restore.run avec parcimonie. C’est la seule permission de l’add-on qui peut détruire des données, et elle est séparée des autres précisément pour qu’un rôle puisse se voir confier les sauvegardes sans se voir confier les restaurations.

Multilingue

Chaque écran, e-mail et notification est traduit dans les mêmes langues que le CMS lui-même, et suit la langue choisie par l’administrateur. Rien dans une sauvegarde n’est visible des visiteurs : il n’y a donc rien à traduire vous-même ici.

Mise à jour

Il existe deux façons de mettre cet add-on à jour : via le panneau d’administration (recommandé) ou en remplaçant manuellement les fichiers.

Méthode 1 : Téléversement via le panneau d’administration (recommandé)

  1. Téléchargez le dernier fichier .zip de cet add-on.
  2. Allez dans Panneau d’administration → Add-ons et cliquez sur le bouton Téléverser.
  3. Sélectionnez ou faites glisser le fichier .zip dans la zone de téléversement.
  4. Une invite de confirmation affichera les numéros de version actuelle et nouvelle. Cliquez sur Remplacer pour continuer.
  5. Allez dans Panneau d’administration → Mise à jour du système (/admin/update) pour appliquer les migrations de base de données en attente.

Méthode 2 : Remplacement manuel des fichiers

Étape 1 : Remplacer les fichiers

Remplacez le répertoire de l’add-on par la nouvelle version.

Étape 2 : Exécuter les migrations

php artisan migrate

Les migrations en attente ne s’exécutent qu’une fois : la commande peut donc être relancée sans risque.

Étape 3 : Vider les caches

php artisan config:clear
php artisan route:clear
php artisan view:clear

Étape 4 : Vérifier

Ouvrez Admin → Sauvegarde → État du serveur, puis lancez une sauvegarde manuelle pour confirmer que le moteur fonctionne toujours de bout en bout.

Faites d’abord une sauvegarde. Vous avez l’outil pour cela : lancez une sauvegarde complète avant toute mise à jour, y compris celle de cet add-on.

Désactivation

Éteindre un add-on sans rien perdre, c’est le désactiver : allez dans Panneau d’administration → Add-ons, trouvez Backup & Restore et cliquez sur Désactiver.

  • Ses routes, ses vues, ses entrées de menu d’administration et ses permissions cessent d’être enregistrées.
  • Les plannings cessent de se déclencher. Aucune sauvegarde n’est réalisée tant que l’add-on est désactivé : c’est le point auquel réfléchir avant de l’éteindre.
  • Ses tables de base de données et toutes les données qu’elles contiennent sont conservées, et les archives elles-mêmes restent intactes sur chaque destination.
  • Le code d’achat enregistré lors de l’activation est conservé lui aussi : réactiver l’add-on ne le redemande pas.
  • La désactivation est refusée tant qu’un autre add-on actif dépend de celui-ci : désactivez d’abord cet add-on.

Cliquez sur Activer sur la même carte pour le rallumer. Les migrations en attente sont rejouées et l’add-on reprend exactement là où il s’était arrêté, y compris vos destinations et vos plannings.

Suppression

La suppression est définitive et détruit les données de l’add-on. Le bouton Supprimer n’apparaît que sur un add-on désactivé : la suppression se fait donc toujours en deux temps :

  1. Désactivez Backup & Restore (voir Désactivation).
  2. Cliquez sur Supprimer sur sa carte et confirmez la demande.

Le panneau d’administration, en une seule passe :

  • exécute le hook de désinstallation de l’add-on, s’il en fournit un, tant que son code est encore sur le disque ;
  • révoque les permissions déclarées dans son addon.json ;
  • annule ses migrations, ce qui supprime ses tables de base de données et toutes les lignes qu’elles contiennent : vos destinations, vos plannings, l’historique de chaque sauvegarde et tout le journal d’activité, et purge ses entrées de la table migrations, afin qu’une réinstallation ultérieure reparte de zéro ;
  • supprime ses assets publiés et le dossier de l’add-on ;
  • supprime sa ligne dans la table addons (le code d’achat enregistré disparaît avec elle) et vide le cache de l’application.
Vos archives ne sont pas supprimées, et deviennent orphelines. Les fichiers restent exactement là où ils sont sur chaque destination, mais l’add-on n’en garde plus aucune trace : plus rien ne les liste. Téléchargez les archives que vous souhaitez conserver avant la suppression, et notez leurs mots de passe : une archive chiffrée dont vous avez perdu le mot de passe est illisible.

Dépannage

La sauvegarde reste “En file d’attente” et ne démarre jamais

Aucun worker de file d’attente ne tourne. Les sauvegardes ne sont volontairement jamais exécutées dans une requête web : sans worker, elles attendent indéfiniment. Démarrez-en un, ou demandez à votre hébergeur d’en maintenir un en fonctionnement.

Les sauvegardes planifiées ne s’exécutent jamais

Il s’agit presque toujours de l’entrée cron manquante : voir L’entrée cron. Vérifiez la colonne Prochaine exécution : si elle ne bouge jamais, le planificateur n’est pas appelé. Confirmez que le planning est Active, et utilisez Exécuter maintenant pour prouver que les sauvegardes fonctionnent indépendamment du planning.

La sauvegarde échoue en cours de route

Ouvrez la sauvegarde et lisez son journal des étapes : il indique l’étape et la raison. Les causes habituelles sont l’espace disque, une destination qui n’accepte plus les écritures, et des identifiants expirés. Testez la destination depuis sa propre page.

“Indisponible” sur un type de destination

Ces bibliothèques sont fournies avec l’application : cela signifie donc normalement que l’installation est incomplète, à cause d’un téléversement partiel ou d’un déploiement qui a sauté l’étape des dépendances. La commande exacte qui le rétablit est affichée à côté ; voir Bibliothèques de stockage.

L’archive est énorme

Les médias téléversés et le dossier vendor représentent l’essentiel de la taille. Excluez le dossier vendor (il l’est par défaut), augmentez le niveau de compression, et envisagez une sauvegarde nocturne base de données seule avec une sauvegarde complète hebdomadaire.

“Mot de passe incorrect” sur une archive chiffrée

Le mot de passe est vérifié par rapport à une empreinte avant toute tentative de déchiffrement : ce message est donc fiable, ce n’est vraiment pas le mot de passe avec lequel l’archive a été créée. Il n’existe aucune voie de récupération : c’est le principe même du chiffrement.

Le site reste bloqué sur la page de maintenance

Une restauration a été interrompue au mauvais moment. Exécutez php artisan up sur le serveur.

Après une migration, les liens pointent encore vers l’ancien domaine

La réécriture d’URL a été ignorée ou contenait de mauvaises valeurs. Restaurez de nouveau l’archive avec les bonnes valeurs Rechercher et Remplacer par : utilisez la forme exacte qu’utilisait l’ancien site, avec le protocole et sans barre oblique finale.

Toujours bloqué ?

Ouvrez un ticket sur notre Centre d’aide. Joignez le journal des étapes de l’exécution échouée et la page État du serveur : ensemble, ils contiennent généralement la réponse.

Cet article vous a-t-il été utile ?

Merci pour votre retour !

Besoin d'aide ? Créez un ticket de support

Créer un Ticket

Guides des Modules

sept. 28, 2026