Mes fichiers pour SPIP 1.9

Ce plugin fabrique un fichier d’archives contenant le dernier dump de sauvegarde, le dossier squelettes/, le dossier IMG/ et le fichier mes_options.php

Faire un paquet des données du site

Il est possible d’effectuer une sauvegarde de la base de données avec SPIP. Mais les fichiers ne le sont généralement pas.

En plus des données, il est recommandé de faire une copie du répertoire servant de dépôt documentaire, le fameux répertoire IMG/ contenant tous les logos et les documents joints. Par précaution, on peut aussi faire une copie du dossier squelettes/ contenant toute les personnalisations du site ainsi que le fichiers config/mes_options.php.

Ceci représente, quand elles sont effectuées manuellement, un nombre de manipulations longues et fastidieuses, par ftp, fichier par fichier. Il est donc plus confortable de transporter en une seule archive l’ensemble de ces fichiers, base comprise, que le site peut fabriquer à la demande. C’est le rôle du plugin « mes_fichiers » : faire un paquet des données du site [1].

Utilisation

Lorsqu’il est activé, ce plugin ajoute deux actions accessible aux administrateurs du site, ou, si la version de SPIP utilisée dispose des fonctionnalités d’autorisation, accessibles aux utilisateurs autorisés à sauvegarder...

La compression

L’action de compression fabrique le fichier « mes_fichiers.zip » dans le dossier tmp/. Ce fichier d’archives contiendra :

  • la dernière sauvegarde, par exemple, celle ce que vous aurez effectué juste avant d’executer cette action.
  • le dossier IMG/,
  • le dossier squelettes/, s’il existe,
  • et le fichier mes_options.php, s’il existe.

Pour l’exécuter, ajouter spip.php?action=mes_fichiers à la suite de l’adresse de votre site public. Plus simplement, cliquer sur le lien sauvegarder dans la zone descriptive de ce plugin, dans l’interface de gestion des plugins.

La décompression

L’action de décompression dézippe (spip.php?action=decompresser_mes_fichiers) le fichier que vous aurez placé à la racine du site. Celle-ci s’appuie sur le script spip_loader.php. Celui-ci doit donc être présent et l’utilisateur doit être autorisé à s’en servir.

Évolutions

Le zip joint à cet article est bloqué dans un état stable. Vous pouvez tester et participer au développement des évolutions suivantes en suivant les travaux de ce plugin sur la zone.

En cours

TODO

  • prendre en compte la valeur de $dossier_squelettes,
  • récupérer le fichier .htaccess lié à la réecriture d’urls,
  • récupérer a minima la liste des plugins activés,
  • graduer la création de l’archive en plusieurs étapes pour ne pas planter le serveur en cas de très gros volume de fichiers (notament IMG/)

Notes

[1Et comme il s’agît de données, les plugins du dossier plugins/ ne sont pas pris en compte, considérant qu’ils font partie du système d’une part et qu’ils font bien souvent l’objet d’une offre de sauvegarde mutualisée sur la zone, d’autre part.

Discussion

9 discussions

  • 4
    Florent

    Lors de la décompression, le système propose de restaurer une ancienne sauvegarde (présente dans /dump) mais pas la toute dernière présente dans le zip ?

    Et une question : est-ce vraiment utile d’inclure (dans le zip) tous les répertoires cache présents dans /IMG ?

    Flo.

    • Lors de la décompression, le système ne propose pas (encore) de restaurer. Il se contente de dézipper ce que la compression a trouvé. Et lors de la compression, il intègre le dernier dump effectué (on cherche le fichier le plus récent dans le répertoire de dump)

      Dans les dernières versions de SPIP, le cache d’images n’est plus dans IMG/, mais dans local/

      Quelle version de SPIP utilises-tu ? je veux bien essayer de mieux gérer quelques exceptions.

    • Florent

      La version de Spip est : SPIP 1.9.2a [8878]

      Sinon lorsque je lance la décompression (via le shortcut dans le menu « gestion des plugins »), la procédure s’arrête sur l’écran de « maintenance technique », avec comme choix de restauration une sauvegarde datant du 17/05 ou dump.xml.gz. Donc la dernière sauvegarde n’a pas été décompressée chez moi ?
      Pour tester le plugin je rapatrie le zip en local et je lance la décompression (via le shortcut).

      Pour terminer la procédure j’ai décompressé le fichier dump à la main !

      Flo.

    • La version de Spip est : SPIP 1.9.2a [8878]

      Tu peux sans soucis te séparer des sous-répertoires de cache contenu dans IMG/

      Sinon lorsque je lance la décompression (via le shortcut dans le menu « gestion des plugins »), la procédure s’arrête sur l’écran de « maintenance technique », avec comme choix de restauration une sauvegarde datant du 17/05 ou dump.xml.gz. Donc la dernière sauvegarde n’a pas été décompressée chez moi ? Pour tester le plugin je rapatrie le zip en local et je lance la décompression (via le shortcut).

      Pour terminer la procédure j’ai décompressé le fichier dump à la main !

      Oui, il n’est nullement dit que ce plugin fait les sauvegardes à ta place, ni les restaurations. Il se contente de fabriquer un fichier zip et peut dézipper ce même fichier.

      ...pour l’instant... on peut imaginer que ce plugin évolue, hein :)

    • Florent

      Aucun soucis, je l’apprécie déjà tel quel ...
      Je voulais être sûr que le résultat obtenu était celui proposé (sans plus) ;-)

      Merci.
      Flo.

    Répondre à ce message

  • 1

    J’ai installé le plugins et et une fois activé et que je vais dans :

    Configuration/Maintenance du site,

    J’ai le message d’erreur suivant :

    Fatal error : Call to undefined function : generer_form_ecrire() in c :\program files\easyphp1-8\www\cac160108\plugins\mes_fichiers\exec\admin_tech.php on line 101

    • Bonjoir,

      j’ai le meme message chez free

      qq1 as t il une solution ?

      merci d’avance our votre attention

    Répondre à ce message

  • assobachant

    cherchant un systéme de sauvegarde pour notre site j’ai essayer et j’ai l’erreur suivante en fin d’action sur mon naviguateur ; pourtant je retrouve via le ftp un fichier mes_fichiers_20081112_2048.zip dans le repertoire tmp

    l’erreur est t’elle normal ?? ; merci

    pour info

    Fatal error : fread() [function.fread] : Length parameter must be greater than 0. in /mnt/139/sdc/8/7/bachant/ecrire/inc/pclzip.php on line 2646

    et lorsque je veux decompresser

    Erreur...
    Fichier decompresser_mes_fichiers.php introuvable

    Répondre à ce message

  • 1

    Bonjour,

    je viens de découvrir ce plugin très intéressant, étant à la recherche de module permettant de gagner du temps à la sauvegarde.
    Mon Problème est que j’ai un dossier squelette mais celui ci n’est pas dans la sauvegarde, je suis en v192a.

    Merci

    • squelettes/ avec un ’s’ ou la valeur de la variable $dossier_squelettes

      Ta version de SPIP est à mettre à jour rapidement, la 1.9.2a est bugguée et contient une faille de sécurité.

    Répondre à ce message

  • Super super ; mais j’ai besoin d’un petit plus.

    Et comme il s’agît de données, les plugins du dossier plugins/ ne sont pas pris en compte, considérant qu’ils font partie du système d’une part et qu’ils font bien souvent l’objet d’une offre de sauvegarde mutualisée sur la zone, d’autre part.
    Navigation

    je voudrais bien integrer le repertoire de plug de mon site dans la sauvegarde ; savez pas comment je peu faire.

    et puis si on pouvez envoyer le tout soit par mail ; mais la je pense que ça craint.....ou vers un autre serveur.

    ben oui la sauvegarde est quans même faite pour palier au « crach » du serveur de production...

    @micalement stéphane

    Répondre à ce message

  • 2

    Bonjour,

    J’ai exploré le fichier.php car je voudrais transformer ce plugin pour pouvoir creer un zip avec l’ensemble des pieces jointes d’un article.

    Par exemple, le visiteur de l’article clique sur un bouton « Telecharger toutes les pièces jointes » et un zip se cree et il peut télécharger ce zip.

    Hélas, je ne dipose pas du tout des compétences pour réaliser cela. Le fichier fichier.php pourrait il etre détourné pour faire ca ?

    Bien à vous,

    Cédric

    • C’est pas vraiment prévu pour et si tu t’inspires de ce fichier, je suppose qu’il s’agît de action/mes_fichiers.php, tu va devoir beaucoup l’aménager pour parvenir à tes fins. De plus, ce système étant tout de même couteux en ressources et reservé pour des raisons évidentes aux administrateurs du site, permettre à des visiteurs de générer des zip à la volée, ça va couter cher au serveur web.

      Ne serait-il pas plus simple de zipper les fichiers sur ton et de joindre ce dernier fichier au moment de la publication, par exemple ? On sait, avec une boucle DOCUMENTS, distinguer l’extension d’un doc joints, encore plus si on connait le nom du fichier, donc il sera facile de l’isoler dans la page via le squelette de l’article.

    • ok, merci pour ta réponse !

    Répondre à ce message

  • 1

    Génial.
    Il ne lui manque plus que la sauvegarde automatique et l’envoie par mèl.

    Merci

    • l’envoi de quoi par mail ? un zip d’IMG/ ça peut être gros...

    Répondre à ce message

  • 1

    Bonjour et bravo pour ce travail,

    Dans mon cas, je souhaiterais ajouter (même en dur dans le fichier mes_fichiers.php du répertoire « action ») : mon répertoire « images » contenant les images de mon squelette, placé à la racine, afin de les séparer du dossier IMG du contenu.

    Une méthode, une piste ?

    Par avance, merci

    Répondre à ce message

  • vstmusic

    ce qui serait super ce serait la possibilité d’exclure (en les cochant) certaines documents présents du folder IMG pour le zippage ! :)

    Merci en tout cas !

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom