Restaurer son site web php et sa base SQL
(Partie 2)
3- Restaurer le site web:
Cela est facile. Tout d'abord, si vous avez modifié les droits des fichiers en 404 et dossier en 505 comme
expliqué dans un article précédent, vous ne pourrez les supprimer ou les remplacer. Refaites les commandes en donnant aux fichiers les droits 604 aux fichiers et 705 aux dossiers. Puis effacez complètement votre site web. Vous ne savez pas quelles traces et fichiers cachés a laissé le pirate, il faut rebâtir sur une base saine. Ensuite, par FTP envoyez votre sauvegarde vers votre site. Puis remodifiez les droits des fichiers et dossiers comme discuté précédemment.
4- Restaurer la base SQL:
Si votre sauvegarde est à jour, vous avez l'esprit tranquille. Si votre site est très actif et qu'il s'est passé trop de temps entre votre dernière sauvegarde et le piratage, faites une sauvegarde de la base vieille d'une semaine comme expliquée ci-dessus. Cependant, vous n'aurez pas la certitude que cette base est saine.
a) Restauration par phpMyadmin:
Contrairement à la sauvegarde, la restauration par phpMyadmin a une grosse limite: la taille maximum autorisée pour uploader un fichier par le Web. Cette taille varie en fonction de votre offre d'hébergement, de 2, 8 à 16 Mo.
Pour connaître cette limite, créez un fichier info.php avec le code suivant:
Envoyez ce fichier par FTP, ouvrez-le avec votre navigateur web, et cherchez la ligne:
upload_max_filesize pour connaître la taille maximum.
Si votre sauvegarde MySQL est donc inférieure à cette limite, vous pouvez le faire.
Un conseil: si votre "dump" ou sauvegarde a été faite avec phpMyadmin, vous pouvez faire la restauration de la même manière, sinon, allez à la méthode par script PHP expliquée au point suivant.
- Effacement de la base SQL:
Connectez-vous à votre interface phpMyadmin:
http://pma.ovh.net/
Entrez le nom de la base SQL et son mot de passe, puis en haut de la colonne de gauche, cliquez sur le nom de la base. Puis dans la fenêtre principale, cliquez sur "Tout cocher" et dans le menu qui suit, choisissez "Supprimer". Confirmer la suppression des "Tables" en cliquant sur "Oui".
- Restauration de la base:
On va importer la nouvelle base de données. Cliquez sur l'onglet "Importer". Cliquez sur "Parcourir" pour sélectionner sur votre ordinateur la sauvegarde.
ATTENTION: si la sauvegarde vient d'être faite avec phpMyadmin, c'est-à-dire en ayant suivi la procédure décrite ci-dessus, sélectionnez le jeu de caractères "utf8" (il y a de fortes chances que ce jeu de caractères soit le bon, sinon, prenez "latin1"). Si la sauvegarde a été réalisée autrement, choisissez le jeu de caractères correspondant. Sinon, les caractères accentués vont mal s'afficher sur le site web. Cliquez sur Exécuter. Et n'oubliez pas de vous déconnecter une fois finie en cliquant sur l'icône Exit.
b) Restauration par script PHP:
Si vous avez dépassé la limite parce que votre base SQL est trop grosse, un excellent script peut vous aider, il s'agit de BigDump
http://www.ozerov.de/bigdump.php . L'interface est en anglais. Il faut simplement entrer les paramètres de sa base SQL et choisir le bon jeu de caractères "utf8" ou "latin1". Si vous avez utilisé le script de sauvegarde ci-dessus, vous savez quel jeu de caractères vous avez utilisé, alors qu'on est moins sûr avec phpMyadmin.
- Effacement de la base SQL:
Connectez-vous à votre interface phpMyadmin:
http://pma.ovh.net/
Entrez le nom de la base SQL et son mot de passe, puis en haut de la colonne de gauche, cliquez sur le nom de la base. Puis dans la fenêtre principale, cliquez sur "Tout cocher" et dans le menu qui suit, choisissez "Supprimer". Confirmer la suppression des "Tables" en cliquant sur "Oui". Et n'oubliez pas de vous déconnecter une fois finie en cliquant sur l'icône Exit.
- Restauration de la base:
Par FTP, envoyez bigdump.php et votre sauvegarde SQL dans un même dossier. Avec votre navigateur web, ouvrez bigdump.php, il devrait lister votre base. Puis cliquez sur Start Import. Normalement, tout doit bien se passer et une fenêtre devrait vous dire que la base a été restaurée.
Sinon, il vous faudra faire une sauvegarde table par table de votre base SQL pour réduire la taille des fichiers. Faites-le simplement avec phpMyadmin comme expliqué ci-dessus. Si cela n'est pas suffisant, consultez les forums, il existe de nombreuses astuces.
Puis par FTP, effacez bigdump.php et la sauvegarde SQL. Ne conservez jamais bigdump, un pirate pourrait s'en servir très facilement pour contrôler votre site web.
Un conseil: vérifiez comment s'affiche les caractères accentués sur votre site web après restauration. À cause de certaines incohérences entre le latin1 et l'utf8, on peut avoir des mauvaises surprises. Par exemple: j'ai un blog où tout est en utf-8 (texte, charset html, interclassement SQL en utf-8, etc.), tout est cohérent depuis sa création. Si je fais un dump (sauvegarde) de la base en utf8 avec mon script, puis une restauration avec bigdump.php en utf8, le site web n'affiche pas bien les caractères accentués. J'au dû faire un dump en latin1 puis restaurer avec bigdump.php en utf8 pour retrouver une situation normale. Pensez-y.
5- Récupitulatif. Vous avez sur votre ordinateur:
a) votre site web complet (fichiers HTML, images, et autres fichiers),
b) tous les fichiers à jour de votre blog, forum, cms, gallery, wiki avec les fichiers config, htaccess, les plugins, modules, thèmes, templates et vos modifications,
c) les dossiers uploads, logs, etc. que vous mettez régulièrement à jour,
d) une sauvegarde récente de votre base MySQL.
6- Si vous faites la restauration après un piratage, modifiez vos mots de passe FTP et MySQL. Puis, n'oubliez pas de modifier les fichiers config.inc.php ou équivalents qui ont besoin de votre nouveau mot de passe SQL.