Sachant qu'il suffit d'un rien pour perdre son site — erreur personnelle ou attaque externe, panne de serveur ou encore oubli de renouvellement de l'hébergement... — il est impératif de faire des sauvegardes de manière régulière.

Pour cela, j'ai longtemps été adepte de la sauvegarde par ftp (j'utilisais un utilitaire de synchronisation de fichiers pour automatiser la chose), à laquelle j'ajoutais la sauvegarde manuelle (ou automatisée avec LazyDbBackup) de la base de données. Puis je suis passé à Akeeba backup, bien plus pratique à mon sens, que j'associe à LazyDbBackup. Akeeba backup est utilisé pour des sauvegardes complètes, hebdomadaires habituellement, et LazyDbBackup pour des sauvegardes de la base de données, quotidiennes voire multi-quotidiennes sur certains sites comme des e-commerces.

On commence par installer, comme n'importe quelle extension, Akeeba backup, en version gratuite ou commerciale, version à récupérer sur le site de l'auteur akeebabackup.com

Sur ce même site, on récupère aussi le fichier de langue française, tant qu'à faire, et on l'installe aussi comme une extension.

Puis on ouvre le menu "Composants->Akeeba backup" qui va proposer une configuration automatique. Celle-ci teste le serveur afin de définir la meilleure configuration possible. Une fois cette étape passée, on peut modifier le dossier de stockage des sauvegardes (par défaut "administrator/components/com_akeeba/backup") afin de le placer éventuellement hors du site. Autre paramètre : le nombre de sauvegardes à conserver, par défaut 3, que je préfère augmenter surtout en phase de création de site.

En version Pro, il est possible, après sauvegarde, d'envoyer automatiquement le fichier sur un serveur externe, en en conservant ou non une copie locale, le fichier de décompression "kickstart", du même auteur, étant capable d'importer ces sauvegardes depuis une adresse distante.

Dans les deux versions, il est aussi possible d'automatiser les sauvegardes en l'autorisant dans les paramètres généraux du composant, puis en choisissant une des diverses méthodes à utiliser dans une tache cron, régulièrement déclenchée.

Lorsqu'on utilise une seule base de données pour plus d'un site sur le même serveur, il faut penser à passer par le bouton d'exclusion de tables afin de ne pas sauvegarder les tables de l'autre site. Les sauvegarder n'est pas un problème, mais si on a besoin de restaurer, elles seront restaurées aussi et pourraient faire perdre les modifications faite sur l'autre (les autres) site(s) entre la sauvegarde et la restauration du premier.

Faire une sauvegarde manuelle est très simple : il suffit de cliquer sur le bouton correspondant au profil par défaut (ou d'un profil complémentaire, lorsqu'on en a créé plus d'un, ce qui n'est pas souvent le cas), ou encore sur le bouton "Sauvegarder" (si on veut ajouter un commentaire) et d'attendre que le processus se termine.

Une fois la sauvegarde terminée, il faut s'assurer qu'elle n'est pas corrompue. Pour cela, il faut l'importer soit en local afin de la décompresser avec Akeeba Extract Wizard si on est sous Windows, soit sur un autre serveur (local - j'utilise maintenant sous Windows 10 Uwamp en version non installable, juste  décompressée dans son dossier - ou en ligne) et restaurer une copie du site. On saura dans le premier cas si l'extraction s'est faite sans erreur, dans le second si la copie est fonctionnelle. Si c'est bien le cas, on a donc bien une sauvegarde fiable qu'on pourra utiliser en cas d'incident grave sur le site.

Bien sûr, cette vérification, qui devrait être systématique, est à mon sens irréalisable, mais doit cependant être faite de temps à autre, histoire d'en perdre le moins possible en cas d'incident grave sur le site.