Créer un fichier zip de votre serveur et sauvegarde SQL

Créer un fichier zip de votre serveur et sauvegarde SQL

Tags : PHP, SQL, Serveur
Mise en ligne : 11 Octobre 2013 à 00:00

Pour un projet perso je dois mettre un place un script qui permet de créer un backup des fichiers présent sur le serveur ainsi que la base de données. Il faut absolument un serveur avec PHP 5.*.

Tout d\'abord vous aurez besoin de ce fichier pour réaliser facilement le backup de la base de données. Ce script a été réalisé par Benoit Asselin, vous pouvez aller sur son site Internet pour plus d\'info sur lui : http://www.ab-d.fr/.

Voici le cours d\'OpenClassRoom dont je me suis servi pour ce tuto : http://fr.openclassrooms.com/informatique/cours/les-fonctions-zip-en-php

Et la doc php.net : http://php.net/manual/fr/class.ziparchive.php

Source

open($destination, ZIPARCHIVE::CREATE)) {
            return false;
        }

        $source = str_replace(\'\\\', \'/\', realpath($source));

        if (is_dir($source) === true) {
            $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source), RecursiveIteratorIterator::SELF_FIRST);

            foreach ($files as $file) {
                $file = str_replace(\'\\\', \'/\', $file);

                // Ignore \".\" and \"..\" folders
                if (in_array(substr($file, strrpos($file, \'/\') + 1), array(\'.\', \'..\')))
                    continue;

                $file = realpath($file);

                if (is_dir($file) === true) {
                    $zip->addEmptyDir(str_replace($source . \'/\', \'\', $file . \'/\'));
                } else if (is_file($file) === true) {
                    $zip->addFromString(str_replace($source . \'/\', \'\', $file), file_get_contents($file));
                }
            }
        } else if (is_file($source) === true) {
            $zip->addFromString(basename($source), file_get_contents($source));
        }
        
        return $zip->close();
    }
    
    
    $dir_save = \'wordpress/\';
        
    new BackupMySQL(array(
        \'username\' => \'login\',
        \'passwd\' => \'mdp\',
        \'dbname\' => \'nom_de_votre_base\',
        \'nom_fichier\' => \'nom_du_fichier_de_sortie\'
    ));

    //Si vous souhaitez enregistrer le dossier courant pensez à mettre ./ avant
    Zip(\'dossier_a_sauvegarder\', \'chemin/fichier_de_sortie.zip\');

?>

<Laisser un commentaire/>

* Champs obligatoire