Rédiger un site en hors-ligne avec SPIP et WinHTTrack - [Le calepin du geek]
Le calepin du geek
Geek : Personne s’intéressant à des domaines pointus, avec une once de créativité.

Ceci est un site perso, dans le pur esprit web 1.0, compilant des notes diverses sur des thèmes d’intérêt. (Informatique, programmation, voyage à vélo, réflexions)

Rédiger un site en hors-ligne avec SPIP et WinHTTrack
Conversion d’un site SPIP local en HTML static depuis Windows 8 et WinHTTrack Website Copier
Article mis en ligne le 27 avril 2013
par aldoniel
Imprimer cet article logo imprimer

 Conversion d’un site SPIP local en HTML static depuis Windows 8

Pourquoi ?

  • Les CMS sont lents et le principe d’un PC portable, c’est de ne pas avoir internet dessus. Écrire en local et téléverser un mirroir static peut être une solution.
  • Envoyer du html sur un serveur gratuit (free.fr) peut accélérer le chargement des pages lorsque leur serveur sature (absence d’exécution de code php ou de base de donnée)
  • évite de se faire spammer sa base de donnée MySQL (déjà arrivé —> effacement automatisé sans préavis par free)
  • une base qui n’existe pas n’est pas piratable

En théorie, c’est simple (dans les temps anciens, sous windows XP, tout marchait je crois...) En pratique, ce fut compliqué...

 Configuration

  • SPIP 3
  • Plugin Escal
  • EasyPHP
  • Windows 8, (l’horreur) (en plus j’ai des crash aléatoires de Apache)

 Problèmes rencontrés avec WinHTTrack

  • erreur sur localhost (Error:         "Connect Error" (-4) after 2 retries at link localhost)
  • quelques liens (page d’accueil) ne sont pas enregistrés (???)
  • les images liées dans menu.css ne sont pas téléchargées (bug silencieux) (même avec go everywhere on the web). La seule solution est de les copier à la main sur le ftp (une fois pour toutes).
  • Le plugin Galleria renvoie "Theme CSS could not load after 20 sec. Please download the latest theme at http://galleria.io/customer/."
    • Il suffit de copier vers le miroir static les fichiers contenus dans [racine du site dynamique]\plugins\auto\galleria\v1.3.2\galleria. (galleria\v1.3.2\galleria\plugins ne semble pas indispensable...)

 Soluce

Attention, c’est un gros hack bourrin mais ça marche...

Le problème sur localhost peut être résolu en changeant par 127.0.0.1, mais certains liens sont convertis en localhost sur le mirroir static (???) et des boucles de récursivité se créent. Pas idéal.

Begin gros hack

  • le problème de localhost est qu’il est résolu en IPV6 ::1 au lieu de 127.0.0.1, ce que WinHTTrack ne comprend pas. Solution de bourrin : désactiver IPV6 http://www.techunboxed.com/2012/08/...
  • les liens non téléchargés par WinHTTrack peuvent l’être avec l’option "Go everywhere on the web"

cf fichier de configuration avec mes options ci-joint. À charger via Preference -> Load options

« Ah ouais, mais avec tes options on télécharge tout internet ! »
Exact.

Pour éviter ça, j’ai installé Comodo Internet Security http://www.comodo.com/products/free... et j’ai réglé le parefeu pour autoriser l’accès en local et interdire internet.

Faut se faire des règles dans le style (dans l’ordre)

  • allow to localhost
  • allow to 127.0.0.1
  • deny to all

Sur comodo, ça donne quelque chose dans ce genre :


End gros hack

Mangez, c’est chaud !

P.S. :

Il existe un problème actuellement pas très résolu... aucun des profils de WinHTTrack ne récupère 100% des liens internes du site, sauf "Go everywhere on the web".
Sauf que WinHTTrack s’obstine à convertir en relatif les liens externes (sauf si on les met en exclusion par -*google.*), ce qui n’est évidemment pas gérable manuellement.

L’option ne pas convertir les liens en relatif plante complètement le site...

Je crois que le plus qu’à faire un plus gros hack encore plus sale :
La pseudo-racine générée par WinHTTrack contient des répertoires du style

projetice.crdp.ac-lyon.fr
www.comodo.com
www.legifrance.gouv.fr
www.oxygenepc.com
www.spip.net
...

Il suffirait de faire un script qui ouvre tous les html générés, et utilise cette information pour les repatcher correctement... ouais... ça sent le truc de geek pourri qui prend 1h toute l’après-midi.

PPS : C’est fait, voir HTTrack link patch

PPPS : Actuellement, le patch fonctionne, mais reste imparfait : les liens externes contenant ? ou php sont modifiés avec une séquence aléatoire par httrack, que je ne vois pas comment corriger autrement qu’à la main (en les donnant à une version pas encore publiée de mon patcher, ce qui explique que ce site fonctionne quand même), ou en réécrivant un téléchargeur de site (faisable, mais on perd un peu l’intérêt d’htttrack). Il faudrait que je contacte les auteurs d’httrack pour résoudre le problème ...

Par ailleurs, le patch ne fonctionne pas encore sur les fichier php (pour une simple question d’extension qui sera résolue dès la modification de la librairie ListDir.au3). Sans conséquence décelable actuellement (car les rss sont à moitié désactivés).

PS4 : Le 02/08/2015. Un nouveau problème est survenu, rien d’évident n’a été changé au système mais ça ne marche plus... IPV6 s’est réactivé suscitant les problèmes antérieurs avec httrack qui n’est pas compatible avec cette technologie. Un test par ping ::1 objective que IPV6 est activé. La méthode pour désactiver IPV6 ne marche plus (https://support.microsoft.com/en-us/kb/929852), quelque chose remet DisabledComponents à 0 au redémarrage (ou à la fermeture). Le fixit ne marche pas plus qu’en manuel en mettant DisabledComponents à (0x) "ff". Une manoeuvre ésotérique a marché : fermer la session, remettre à ff avec une autre session admin. La fermer. Revenir à la session normale. Httrack marche et DisabledComponents est toujours à ff, et IPV6 marche selon ping ::1 (la causalité est jugée aléatoire).
Ce problème est non documenté sur google. Il s’agit sans doute soit d’une mise à jour de windows qui force IPV6, soit d’un logiciel tiers ayant les droits admin (antivirus ? firewall ? service inconnu ?).
La conclusion est que maintenir un système de "production" sur un PC d’usage normal est trop risqué. Prochaine étape (quand le problème reviendra...) : migration à l’identique de ce qui marchait dans une machine virtuelle coupée du réseau.

Téléchargements Fichier à télécharger :
  • option_winhttrack_spip_local_bourrin.opt.zip
  • 739 octets / Zip

A télécharger

  • option_winhttrack_spip_local_bourrin.opt.zip
  • 739 octets / Zip


Site réalisé sous SPIP
avec le squelette ESCAL-V3
Version : 3.70.61