Archive de site (Website archiver)

© Christian PAULUS. Document créé le 4 octobre 2010 , mis à jour le 16 juillet 2011.

L'éternité c'est long, surtout vers la fin. Woody Allen

Accueil du site > Outils > Archive de site (Website archiver)

Plugin / SPIP 2.1.2

Archiver son site sous SPIP, une de ses rubriques ou un article, c’est ce que propose Site Archive (SiA), sous forme de plugin SPIP.

Principe de fonctionnement : vous ajoutez un nouvel article dans lequel vous proposez au visiteur de télécharger l’archive d’une rubrique de votre site afin qu’il puisse la consulter hors connexion Internet. Le visiteur a le choix entre le format HTML et le format texte seul. Pour le format HTML, il peut choisir entre l’archive ne comprenant qu’une seule page, et celle plus proche de sa présentation sur le site, en plusieurs pages.

Avertissements

SIA est un programme libre, vous pouvez le redistribuer et/ou le modifier selon les termes de la Licence Publique Generale GNU publiée par la Free Software Foundation (version 3).

SIA est distribué car potentiellement utile, mais SANS AUCUNE GARANTIE, ni explicite ni implicite, y compris les garanties de commercialisation ou d’adaptation dans un but spécifique. Reportez-vous à la Licence Publique Générale GNU pour plus de détails.

Avertissements (2)

Pour une bonne appréhension et une bonne utilisation de SIA, des connaissances, voire une maitrise en développement et administration système peuvent vous être nécessaires. N’hésitez pas à faire appel aux compétences disponibles autour de vous, ne serait-ce que pour auditer la qualité du code fourni ici, et valider sa compatibilité, son comportement avec l’environnement que vous lui destinez.

SIA est un outil délicat qui peut vous causer bien des problèmes s’il est mal paramétré.

Lisez, décryptez et comprenez les sources de SIA, aussi bien les scripts PHP que le script shell. Ils sont largement commentés.

Si vous avez le moindre doute sur une de ses fonctionnalités, à la rigueur, signalez-le dans le forum ci-dessous, en espérant qu’une bonne âme vous apporte rapidement la réponse ou complète les commentaires des scripts.

Si vous avez encore le moindre doute, n’utilisez pas SIA.

Testez SIA sur une plateforme de validation avant de le mettre en production.

Dans tous les cas, ne pas oublier que vous êtes seul responsable de ce que vous installez sur votre machine.

Prérequis

Le plugin SIA fait appel aux ressources sytème de la machine, aux commandes internes. Il faut que cette machine offre les commandes batch, wget et zip. Ce n’est pas le cas de toutes les offres d’hébergement.

SIA vérifie si ces commandes lui sont accessibles et signale les erreurs éventuelles dans

  • le journal SPIP ( /tmp/spip.log à la racine des documents de votre site),
  • le journal système (syslog).
  • le fichier d’erreurs PHP (error_log de php.ini) si vous le désirez. Voir le script des fonctions dans ce cas pour décommenter - et activer - la ligne nécessaire.

La format zip a été sélectionné ici car il est le format de compression le plus répandu, même s’il n’est pas le plus performant.

Installation du plugin

Téléchargez l’archive SiA sur la zone puis décompressez-la. Le résultat est un dossier portant le nom du plugin, dossier qu’il vous faut placer le dossier du plugin, dans le dossier plugins de votre site. Pour plus d’information sur l’installation d’un plugin, consultez cette page sur Spip.net.

Téléchargez l’archive SIA sur la zone puis décompressez-la. Le résultat est un dossier portant le nom du plugin, dossier qu’il vous faut placer dans le dossier plugins de votre site.

Pour plus d’information sur l’installation d’un plugin, consulter cette page sur Spip.net.

Configuration

Sauf à personnaliser votre installation, il n’y a rien à configurer pour utiliser ce plugin.

SIA a été testé et validé sur :

  • MacOSX Snow Leopard (septembre 2010)

Le plugin est en version test. Il attend avec impatience vos témoignages.

De plus, SIA n’a pas encore été testé :

  • sur un site multilingue, ni dans une autre langue que le français, ni dans un charset différent qu’UTF-8
  • sur un site multi-sites
  • pleinement pour l’archive d’un article.

Voir également le fichier TODO.txt à la racine du plugin.

Configuration complémentaire

Si le plugin CFG est disponible, il est possible de compléter la configuration de Site Archive :

Mode strict, mode simulation, accès aléatoires et autres options vous sont offertes. La documentation en ligne (le petit bouton d’aide) saura vous guider dans votre choix.

Le principe de fonctionnement

  • vous placez le code nécessaire dans un article, ou sous forme de balise MODELE dans un squelette
  • lors de l’appel de la page en espace privé, l’interprétation de la balise d’archivage n’est pas déclenchée
  • lors de l’appel de la page en espace public, l’interprétation de la balise est déclenchée. La (re)construction de l’archive est activée :
    • si l’archive n’existe pas ;
    • si la reconstruction de la page est demandée (var_mode=recalcul ou var_mode=calcul en paramètres URL) ;
    • ou si la date de la création de l’archive concernée est inférieure à la date de l’objet (rubrique ou article) ciblé.

Si la (re)construction de l’archive est demandée ;

  • un batch (script en tache de fond, sorte de cron) est activé pour l’exécution du script shell site_archive.sh. Cette exécution a lieu une minute après l’appel de la page contenant les liens d’archives ;
  • un fichier .lock (verrou) empêche la double activation de cette action tant que l’action demandée n’a pas été réalisée.

Nota : le nom de l’archive finale est constitué du titre de l’objet (rubrique ou article) en caractères non accentués, suivi de :

  • ’-m’ pour une archive HTML constituée de multi-pages ;
  • ’-u’ pour une archive HTML constituée d’une seule page ;
  • ’-t’ pour la version texte seul.

Le script shell de copie et de compression

Le fichier site_archive.sh est un script shell (/bin/sh). Pour des raisons pratiques de distribution, il est disponible dans le répertoire bin du plugin, mais n’a peut-être pas sa place ici.

Si vous êtes le seul maître à bord de votre machine et avez pleine conscience des risques de sécurité liés à un mauvais paramétrage, libre à vous de l’y laisser.

Dans le moindre doute, n’hésitez pas à recopier ce script dans le répertoire /usr/local/bin de votre machine ou tout autre répertoire inaccessible en anonyme.

Quelque soit l’endroit où vous installez ce script shell, vous devez corriger la constante SIA_SCRIPT_FILE qui se trouve dans le script PHP sia_fonctions.php.

Les squelettes d’archivage

Les squelettes fournis avec SIA permettent la construction des archives via l’appel à la commande wget :

  • site_archive-html.html
  • site_archive-texte.html

Ces deux squelettes sont situés à la racine du plugin. Vous pouvez les recopier dans votre dossier de squelettes et les personnaliser à l’envi.

Vous pouvez appeler directement ces squelettes pour construire leur interprétation sans mise en archive. Par exemple, en prenant le soin de remplacer foo.bar par le nom de votre site :

http://foo.bar/spip.php?page=site_archive-texte&id_rubrique=2

affichera au format texte seul le contenu de votre rubrique n° 2 (le numéro ID apparaît - en espace privé - dans la grosse boîte de gauche de votre rubrique).

Le code générateur des archives

Le code nécessaire à la génération de l’archive est à insérer dans un squelette ou dans un article.

Exemple pour une insertion dans un article, sous forme de liste à puces :

[archives-rubrique2<-]
[->rubrique2]
-* <lien_archive128
       |id_rubrique=2
       |texte=au format HTML, en une seule page
       |type=unique> ;
-* <lien_archive129
       |id_rubrique=2
       |texte=au format HTML, en plusieurs pages
       |type=multi> ;
-* <lien_archive130
       |id_rubrique=2
       |texte=au format texte seul
       |type=texte> ;

Dans cet exemple, l’archive de la rubrique n°2 est demandée :

  • au format HTML, l’ensemble dans une seule page ;
  • au format HTML, navigable dans une hiérarchie classique ;
  • au format texte, dans une seule page.

Une ancre archives-rubrique2 est placée en début de liste afin de permettre un lien du style #archives-rubrique2

Le titre de la rubrique apparaît en début de liste, en lien sur la rubrique concernée.

Le modèle lien_archive y est appelé 3 fois, avec un id incrémenté afin d’éviter les conflits (128, 129 et 130).

Le numéro id de la rubrique est passé en paramètre.

Le texte à afficher dans le lien de cette archive est transmis par la variable texte.

Enfin, le format final est précisé par la variable type.

Votre article validé doit afficher une liste du style (le # - présent dans le href de chaque lien - est utilisé ici en complément. En réalité, il doit pointer sur votre fichier archive) :

Gestion des erreurs

Lors de l’installation ou de la personnalisation du plugin, vous pouvez suivre en guise de trace ou de debug les différentes actions de SIA.

Le plus simple est d’utiliser la commande tail de votre système :

tail -F le_fichier_log_a_surveiller.log

Les différents logs (journaux) sont enregistrés :

  • sur le syslog :
    • /var/log/system.log sur MacOsX
    • /var/log/messages sur FreeBSD et la plupart des Linux
  • sur les journaux de spip (le tilde ’˜’ indique la racine de votre site SPIP) :
    • ˜/tmp/spip.log
    • ˜/tmp/sia.log
    • ˜/tmp/sia/<nom-archive@gt ;.log pour le suivi de wget

Les actions et les erreurs sont enregistrées dans ces journaux.

D’autres erreurs complémentaires - celle du cron principalement - peuvent être envoyées par mail, en général au compte admin (root), si votre système est configuré pour les recevoir ainsi (man crontab pour plus d’info).

Désinstaller SIA

Pour désinstaller le plugin, il suffit de cliquer sur le petit lien Désinstaller dans la boîte de sélection du plugin en page d’administration des plugins.

Désintaller supprime les logs des archives, mais pas les archives elles-même.

Si vous souhaitez conserver les logs des archives, cliquez plutôt sur la case à cocher pour le désactiver, à gauche du nom du plugin.

Validez le formulaire.

Plussoyez !

Les forums sont fermés.