Sauvegarde et Restauration
Contenu
Introduction
Pourquoi
Les fournisseurs d’hébergements mutualisés ne fournissent généralement pas de moyen automatisé de sauvegarder votre installation Elgg. Cet article propose une méthode permettant d’accomplir cette tâche.
Dans l’IT il existe souvent de nombreuses manières d’accomplir la même chose. Gardez cela à l’esprit. Cet article va expliquer une méthode pour sauvegarder et restaurer votre installation Elgg sur un hébergement mutualisé qui utilise l’application CPanel. Cependant, les idées présentées ici peuvent être ajustées pour d’autres applications également. Ce qui suit sont des situations typiques qui peuvent exiger une procédure telle que celle-ci :
Récupération après une catastrophe
Déplacer votre site Elgg vers un nouvel hôte
Dupliquer une installation
Quoi
Sujets couverts :
Full backups of the Elgg directories and databases are performed daily (automated)
Les backups sont envoyés sur autre emplacement hors-site via FTP (automatisé)
Les backups locaux sont supprimés après un transfert réussi vers le site distant (automatisé)
Cinq jours de backups seront conservés (automatisé)
Restauration des données sur le nouvel hôte (manuel)
Ce processus a été composé à partir d’articles d’assistance précédemment publiés dans le wiki de documentation de Elgg.
Hypothèses
Les hypothèses suivantes ont été faites :
Le répertoire du programme Elgg est
/home/userx/public_htmlLe répertoire des données de Elgg est
/home/userx/elggdataVous avez créé un répertoire local pour vos backups à
/home/userx/sitebackupsVous disposez d’un server FTP distant auquel envoyer les fichiers de backup
Le répertoire dans lequel vous allez enregistrer les backups distants est
/home/usery/sitebackups/Vous allez restaurer le site chez un deuxième fournisseur d’hébergement mutualisé dans le répertoire
/home/usery/public_html
Important
Assurez-vous de remplacer userx, usery, http://mynewdomain.com et tous les mots de passe par des valeurs qui correspondent à votre propre installation !
Créer un backup utilisable - automatiquement
Personnalisez le script de backup - sauvegarde automatique
Le script que vous allez utiliser peut être trouvé ici .
Copiez simplement le script dans un fichier texte et renommez le fichier avec une extension .pl. Vous pouvez utiliser n’importe quel éditeur de texte pour modifier le fichier.
Modifiez les valeurs suivantes pour qu’elles correspondent à votre structure de répertoires :
# ENTER THE PATH TO THE DIRECTORY YOU WANT TO BACKUP, NO TRAILING SLASH
$directory_to_backup = '/home/userx/public_html';
$directory_to_backup2 = '/home/userx/elggdata';
# ENTER THE PATH TO THE DIRECTORY YOU WISH TO SAVE THE BACKUP FILE TO, NO TRAILING SLASH
$backup_dest_dir = '/home/userx/sitebackups';
Modifiez les valeurs suivantes pour qu’elles correspondent à vos paramètres de base de données :
# DATABASE BACKUP PARAMETERS
$dbhost = 'localhost';
$dbuser = 'userx_elgg';
$dbpwd = 'dbpassword';
# ENTER DATABASE NAME
$database_names_elgg = 'userx_elgg';
Modifiez les valeurs suivantes pour qu’elles correspondent aux paramètres de votre serveur FTP distant :
# FTP PARAMETERS
$ftp_host = "FTP HOSTNAME/IP";
$ftp_user = "ftpuser";
$ftp_pwd = "ftppassword";
$ftp_dir = "/";
Save the file with the .pl extension (for the purposes of this article we will name the file:elgg-ftp-backup-script.pl)
and upload it to the following directory /home/userx/sitebackups
Ayez conscience que vous pouvez désactiver le FTP et modifier un peu le script de sorte qu’il ne supprime pas le fichier de backup local dans le cas où vous ne voulez pas utiliser de stockage distant pour vos backups.
Configurez la tâche périodique cron de backup
Connectez-vous à votre application CPanel et cliquez sur le lien « Cron Jobs ». Dans le menu déroulant Paramètres communs - « Common Settings », choisissez une fois par jour - « Once a day » - et tapez ce qui suit dans le champ de commande /usr/bin/perl /home/userx/sitebackups/elgg-ftp-backup-script.pl
Cliquez sur le bouton d’ajout d’une nouvelle tâche cron « Add New Cron Job ». Des sauvegardes quotidiennes complètes sont désormais planifiées et seront transférées hors du site.
Configurez la tâche périodique Cron de nettoyage
Si vous envoyez vos sauvegardes, via FTP, à un autre hébergeur mutualisé qui utilise l’application CPanel ou si vous avez totalement désactivé FTP, vous pouvez configurer votre conservation des données comme suit.
Connectez-vous à votre application CPanel pour votre site FTP, ou localement si vous n’utilisez pas FTP, et cliquez sur le lien « Cron Jobs ». Dans le menu déroulant Paramètres communs - « Common Settings » choisissez une fois par jour - « Once a day » - et saisissez ce qui suit dans le champ de commande find /home/usery/sitebackups/full_* -mtime +4 -exec rm {} \;
Le paramètre -mtime X va définir le nombre de jours de rétention des sauvegardes. Tous les fichiers plus anciens que le nombre de jour x sera supprimé. Cliquez sur le bouton d’ajout d’une nouvelle tâche cron « Add New Cron Job ». Vous avez maintenant configuré la durée de rétention de vos sauvegardes.
Restauration depuis un backup
Préparez vos fichiers de backup
L’hypothèse est que vous restaurez votre site vers un autre prestataire d’hébergement mutualisé avec CPanel.
Lorsque le script a sauvegardé les fichiers, la structure originelle des répertoires est conservée dans le fichier zip. Nous devons faire un petit nettoyage. Effectuez ce qui suit :
Téléchargez le fichier de backup à partir duquel vous souhaitez effectuer la restauration
Décompressez le contenu du fichier de backup
- Naviguez pour trouver la sauvegarde de votre site et la sauvegarde SQL. Extrayez les deux archives. Vous aurez alors :
a database dump file with a
.sqlextension- une autre structure de répertoire avec pour contenu :
/home/userx/public_html/home/userx/elggdata
- Compressez le contenu du répertoire
/home/userx/public_htmlsous forme de fichier zip de sorte que les fichiers soient à la racine du fichier zip La raison de cette démarche est simple. Il est beaucoup plus efficace de télécharger un seul fichier zip que d’envoyer par FTP sur votre nouvel hôte tout le contenu du répertoire
/ home/userx/public_html.
- Compressez le contenu du répertoire
Compressez le contenu du répertoire /home/userx/elggdata sous forme de fichier zip de sorte que les fichiers soient à la racine du fichier zip
Vous devriez maintenant avoir les fichiers suivants :
le fichier
.sqlle fichier zip avec le contenu de
/home/userx/public_htmlà la racinele fichier zip avec le contenu de /home/userx/elggdata` à la racine
Restaurez les fichiers
Ceci est écrit dans l’hypothèse que vous restaurez vers un hébergement différent mais conservez la même structure de répertoires. Faites comme suit :
Connectez-vous à l’application CPanel de l’hébergement sur lequel vous souhaitez restaurer le site et ouvrez le gestionnaire de fichiers - « File Manager ».
- Naviguez vers
/home/usery/public_html Chargez le fichier zip qui contient les fichiers de
/home/userx/public_html- Décompressez le fichier zip
Vous devriez maintenant voir tous les fichiers dans
/home/usery/public_html
Supprimez le fichier zip
- Naviguez vers
- Naviguez vers
/home/usery/elggdata Chargez le fichier zip qui contient les fichiers de
/home/userx/elggdata- Décompressez le fichier zip
You should now see all of the files in
/home/usery/elggdata
Supprimez le fichier zip
- Naviguez vers
La restauration des fichiers du programme et des données est terminée
Restore the Database
Note
Again, the assumption here is that you’re restoring your Elgg installation to a second shared hosting provider.
Each shared hosting provider prepends the account holder’s name to the databases associated with that account.
For example, the username for our primary host is userx so the host will prepend userx_ to give us a
database name of userx_elgg. When we restore to our second shared hosting provider we’re doing so with a
username of usery so our database name will be usery_elgg. The hosting providers don’t allow you to
modify this behavior. So the process here isn’t as simple as just restoring the database from backup to the
usery account. However, having said that, it’s not terribly difficult either.
Edit the database backup file
Ouvrez le fichier``.sql`` que vous avez extrait de votre backup dans votre éditeur de texte favori. Commentez les lignes suivantes avec un dièse :
#CREATE DATABASE /*!32312 IF NOT EXISTS*/ `userx_elgg` /*!40100 DEFAULT CHARACTER SET latin1 */;
#USE `userx_elgg`;
Enregistrez le fichier.
Créez la nouvelle base de données
Effectuez les actions suivantes :
- Login to the CPanel application on the new host and click on the « MariaDB/MySQL Databases » icon
Renseignez le nom de la base de données et cliquez sur le bouton créer - « create ». Pour notre exemple, nous allons conserver
elggce qui nous donne pour nom de base de donnéesusery_elgg- Vous pouvez associer un utilisateur existant à la nouvelle base de données, ou pour créer un nouvel utilisateur vous aurez besoin de :
Go to the « Add New User » section of the « MariaDB/MySQL Databases » page
Saisissez l’identifiant et le mot de passe. Pour notre exemple nous allons rester simples et utiliser à nouveau
elgg. Ce qui va nous donner un identifiantusery_elgg
- Associez le nouvel utilisateur avec la nouvelle base de données
Go to the « Add User To Database » section of the « MariaDB/MySQL Databases » page. Add the
usery_elgguser to theusery_elggdatabaseSélectionnez « Tous les Privilèges » - « All Privileges » - et cliquez sur le bouton « Effectuer les changements » - « Make Changes »
Restaurez la base de données de production
Now it’s time to restore the database backup file by importing it into our new database named usery_elgg.
- Login to the CPanel application on the new host and click on the « phpMyAdmin » icon
Choisissez la base de données
usery_elggdans la colonne de gaucheCliquez sur l’onglet « import » en haut de la page
Naviguez jusqu’au backup
.sqldans votre arborescence locale et sélectionnez-leCliquez sur le bouton « Go » en bas à droite de la page
Vous devriez maintenant voir un message indiquant que l’opération a réussi
Combiner le tout
The restored Elgg installation knows nothing about the new database name, database username, directory structure, etc. That’s what we’re going to address here.
Modifiez /public_html/elgg-config/settings.php sur le nouvel hébergement pour reproduire les informations de la base de données que vous venez de créer.
// Database username
$CONFIG->dbuser = 'usery_elgg';
// Database password
$CONFIG->dbpass = 'dbpassword';
// Database name
$CONFIG->dbname = 'usery_elgg';
// Database server
// (For most configurations, you can leave this as 'localhost')
$CONFIG->dbhost = 'localhost';
// (For most configurations, you can leave this as 3306)
$CONFIG->dbport = 3306;
$CONFIG->wwwroot = 'http://your.website.com/'
Téléchargez le fichier settings.php vers le nouvel hôte - en remplaçant le fichier existant.
Finaliser la nouvelle installation
Exécutez le script de mise à niveau en visitant l’URL suivante : http://mynewdomain.com/upgrade.php . Effectuez cette étape deux fois - depuis le début.
Mettez à jour vos enregistrements DNS de sorte que votre nom d’hôte se résolve toujours vers l’adresse IP du nouvel hôte si c’est un déplacement permanent.
Félicitations !
Si vous avez suivi les étapes soulignées ici vous devriez maintenant avoir une copie totalement fonctionnelle de votre installation Elgg d’origine.