Aujourd'hui, plusieurs outils vous sont disponibles afin de pouvoir sauvegarder ou restaurer votre base de données.
Dans ce tutorial, nous verrons comment, ces opérations parfois trés problèmatiques, peuvent facilement être faites grâce au script de Ashe.
» 1 - Mis en place du script de Ashe
Téléchargement du script de ashe
Télécharger donc l'archive nécessaire en cliquant Ici, puis enregistrez celle-ci sur votre bureau.
Décompression de l'archive
Afin de pouvoir décompresser cet archive, il vous faudra au préalable avoir installé un logiciel de compression/décompression tel que Winzip, Winrar ...
Une fois cela fait, effectuer un clic droit sur le fichier script_ashe.zip, et cliquez ensuite sur Extraire Ici.
Vous devrez à la fin de cet étape, retrouver sur votre bureau un répertoire nommé back.
Votre répertoire back devrait contenir les fichiers suivants :
- backup.php => Script de sauvegarde;
- restore_backup.php => Script de restauration;
- installation.txt => License et Notice d'utilisation de l'auteur.
Ce script a l'avantage de n'apporter aucune modification au code de phpBB.
Il fonctionne ainsi de manière complètement indépendante, si ce n'est la reprise des informations de connexion à la base de données au travers du fichier config.php.
Pour installer ce script, il vous faut envoyer simplement sur votre FTP le répertoire back et tout son contenu, à la racine de votre forum.
La racine de votre forum correspond à l'endroit ou la page d'acceuil de votre forum se trouve (index.php).
Il vous faudra également au préalable avoir installé un client FTP, tel que FileZilla (Gratuit) ou FlashFXP (Payant), afin de pouvoir vous connectez à votre forum en FTP.
Avant de pouvoir lancer le fichier back/backup.php afin que votre sauvegarde s'éxécute, il vous faudra effectuer certaines vérifications.
Donner les droits en écritures
Il vous faut donc donner les droits en écriture au répertoire back qui sera l'endroit où seront stockés les fichiers de sauvegarde.
Pour se faire, connectez vous à votre FTP via votre client (FileZilla ou FlashFXP), rendez vous à la racine de votre forum, effectuer un clic droit sur le répertoire back, cliquez sur Attribuer un CHMOD, indiquez le chiffre 777, puis faites Ok. (voir ci-dessous)

Vérifiez l'emplacement du fichier de connexion à la base de données
Par défaut dans phpBB, le fichier config.php qui se trouve normalement à la racine de votre forum, possède toutes les informations confidentielles, de connexion à la base de données de votre forum.
Le script de Ashe fait appel à ce fichier afin de pouvoir se connecter et sauvegarder la base de données utilisée par phpBB.
Si vous avez procéder à la sécurisation de votre config.php en utilisant ce tutorial, il vous faudra modifier le chemin d'accés à ce fichier dans le fichier backup.php en modifiant la ligne :
- Code: Tout sélectionner
include('../config.'.$phpEx);
Il faut noter que les deux points - .. sont une instruction qui permet de remonter d'un cran dans votre arborescence, et il vous faudra donc adapter ce chemin à l'emplacement de votre fichier.
» 2 - Sauvegarde de la base de données
Nous pouvons maintenant lancer la sauvegarde, pour se faire, il vous faut tout simplement appeler via votre navigateur le fichier backup.php de cette façon.
- Code: Tout sélectionner
http://www.exemple.com/forum/back/backup.php
Partant du principe que dans mon cas, phpBB est installé dans le répertoire forum.
Une fois ce fichier lancé, chaque table sera sauvegardée, et vous devriez arriver en fin de sauvegarde au résultat suivant :

Il faut noter que le nombre de tables sauvegardées, peut différer en fonction des Mods installés sur votre forum, et que ce script ne sauvegarde que les tables commencant par prefixe_, préfixe représentant dans mon cas phpbb_Si nous allons maintenant dans notre répertoire back en question, nous devrions retrouver autant de fichier .gz que de tables à sauvegarder. (voir ci-dessous)
Il faut savoir que les fichiers présents sont compressés, et vous n'avez donc pas à vous inquiétez si votre table au travers de phpmyadmin, pèse plus que celle présente sur le FTP.

» 3 - Restauration de la base de données
Un incident est arrivé à votre base de données, et vous devez donc remonter une sauvegarde.
Pour se faire vous n'aurez qu'à éxécuter le fichier restore_backup à son tour, en vérifiant au préalable le chemin d'accés au fichier config.php comme déja expliqué au paragraphe 1 - E.
- Code: Tout sélectionner
http://www.exemple.com/forum/back/restore_backup.php
Les tables restaurées seront celles présentes dans le répertoire back en question.
Si vous souhaitez par exemple faire une reprise partielle de table, il vous faudra déplacer les tables que vous ne souhaitez pas remonter dans un autre répertoire.
Une fois le fichier lancé, vous devrez tomber sur le résultat suivant :

- phpbb_search_results;
- phpbb_search_wordlist;
- phpbb_search_wordmatch;
Une fois la restauration effectuée, il faut savoir que ce script pour des soucis de performances, ne sauvegarde pas le contenu des tables de recherche :Recommandations
N'oubliez pas que si vous laissez votre répertoire back tel que, n'importe qui sera à même de télécharger ou restaurez une sauvegarde à votre place, étant donné que lancement du script de sauvegarde ou restauration se lance au travers d'une URL.
Vous pouvez donc mettre en place si vous le souhaitez une restriction htaccess par mot de passe au répertoire back en question.
La plupart du temps, dans votre offres d'hébergement vous avez la possibilité de gérer l'accés aux répertoires de votre site, via votre interface d'administration, si ce n'est pas le cas il vous faudra alors créer ses fichiers manuellement, et pour cela Google sera votre ami
Problèmes fréquemment rencontrés
- Lorsque vous lancez votre sauvegarde, aucun fichier de sauvegarde n'est crée dans le répertoire, et vous rencontrez le message d'erreur suivant :
- Code: Tout sélectionner
Cannot open phpbb_auth_access.sql.gz
Reportez vous paragraphe 1-D de ce tutorial afin d'attribuer les droits en écriture sur le répertoire back.
- Lorsque vous lancez votre sauvegarde, vous retrouvez le message d'erreur suivant :
- Code: Tout sélectionner
Notice: Undefined variable: included in c:\program files\easyphp1-8\www\basic\back\backup.php on line 13
Warning: main(../config.php): failed to open stream: No such file or directory
Warning: main(): Failed opening '../config.php' for inclusion (include_path
Notice: Undefined variable: dbhost
Notice: Undefined variable: dbuser
Notice: Undefined variable: dbpasswd
Warning: mysql_connect(): Accès refusé pour l'utilisateur:
Notice: Undefined variable: dbname
Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource
Solution :
Reportez vous paragraphe 1-E de ce tutorial afin de bien spécifier le chemin relatif à votre config.php
Voilà ce tutorial touche à sa fin, et je vous invite également à visiter le site Webcron qui permettra, couplé au script de Ashe, de lancer vos sauvegardes jounalièrement de manière automatique

