11/10/2013 | 2 min. (271 words)

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

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

<!?php 

    require_once \'backup.php\';

    //Fonction qui va nous créer le fichier zip avec tous les fichiers et dossiers
    //Pour plus d\'infos sur la fonction PHP ZipArchive je vous renvoi vers la doc de PHP et le cours d\'OpenClassRooms
    function Zip($source, $destination) {
        if (!extension_loaded(\'zip\') || !file_exists($source)) {
            return false;
        }

        $zip = new ZipArchive();
        if (!$zip->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\');

?>
PHP Serveur SQL
Twitter Facebook Google+

Faire un backup d'un volume Synology planté ou crashed

…

Temps d’exécution d'un script PHP

…

A forked FR theme of Bleak by zutrinken Published with Hugo
Menu
    • Source