Accueil > Boîtes à outils > Tutoriels > [SPiP] Migration vers 2.0 chez (...)

[SPiP] Migration vers 2.0 chez Ouvaton

Le site du n@utile vient de migrer sa version de SPiP de 1.9.2g vers 2.0.8. Pour le réaliser, on a créé un nouvel espace web temporaire de travail sur notre hébergeur Ouvaton de manière à faire tourner les deux sites en parallèle. Cette méthode permet de tester la nouvelle version du site avant de basculer le site officiel sur cette nouvelle version.

Voir en ligne : site du n@utile en version de travail avec Spip 2

Sommaire

- 1. création d’un sous-domaine
- 2. Installation de SPiP (...)
- 3. Importation des données (...)
- 4. Installation et configurati
- 5. Copie et adaptation (...)
- 6. À la recherche des erreurs
- 7. Bascule sur le site (...)

Cela fait un moment qu’on en parle et qu’on y pense, mais c’est maintenant chose faite : le site du n@utile vient enfin de migrer son moteur SPiP sur la nouvelle mise à jour majeur 2.0, et ce n’était pas une mince affaire !

L’idée était de basculer le moteur SPiP de sa version précédente 1.9.2g (dernière version de la série 1.9) à la version 2.0.8 (dernière version de la série 2.0 au moment de la bascule) sans remettre en cause l’ergonomie et la présentation du site lui-même, et sans toucher non plus à son contenu bien évidement. L’intérêt est de suivre et de profiter des dernières évolutions de SPiP comme par exemple la gestion simplifiée des plugins. La prochaine étape sera de revoir entièrement les squelettes et feuilles de styles pour revoir l’ergonomie du site et pour réorganiser notamment notre agenda jusqu’ici bricolé tant bien que mal alors qu’il existe un plugin Agenda2 qui a l’air de correspondre à nos besoins. On en a aussi profité pour modifier quelques éléments comme la création du squelette de la page 404 et de la page de résultat de recherche ou le logo favicon plus proche du logo de l’association.

Pour réaliser cette mise à jour majeur de la version de SPiP, il fallait revoir de nombreux squelettes et feuilles de styles CSS pour les rendre compatibles. Il fallait donc trouver un moyen de travailler sur cette nouvelles version tout en conservant la disponibilité du site public dans sa version précédente. Autrement dit, il nous fallait deux sites en parallèle : un officiel (ancienne version avant bascule) et un de travail (nouvelle version en cours de réalisation). On utilisait jusqu’ici le serveur dédié d’Étienne pour le site de travail, mais j’ai pensé que l’idéal était de faire ce site de travail dans les conditions les plus proches de celles du site officiel. Et quelle meilleur solution que de le faire sur le même serveur ? D’autant plus que notre hébergeur Ouvaton nous permet de créer autant de sous-domaines qu’on veut.

1. création d’un sous-domaine pour un nouveau site web de travail

Quand on a un compte chez Ouvaton (coopérative d’hergement de services web) et un nom de domaine (l’association n@utile détient le nom de domaine nautile.org au près du registrar Gandi) on peut créer autant de sous-domaines, et donc autant de sites web que l’on veut. La limite étant dans l’espace disque occupé (base de données comprise) et la bande passante consommée.

Pour le faire, il suffit de se rendre sur le panel de gestion de son compte Ouvaton (panel Gloux) et de remplir le formulaire "je veux créer>Un domaine ou un sous domaine" pour créer le sous-domaine spip2.nautile.org en plus du domaine nautile.org. On se retrouve alors avec un 1er site nautile.org ou www.nautile.org, et un 2e site spip2.nautile.org ou www.spip2.nautile.org. Pour simplifier, nous dirons www.nautile.org (le site officiel) et spip2.nautile.org (le site de travail).

Les deux sites web ont un dossier distinct dans l’architecture disque. Ils peuvent être gérés par des comptes FTP distincts ou par un seul compte FTP d’un niveau supérieur englobant les deux autres. Par contre, je n’ai pas jugé utile de créer une nouvelle base de données, cette option étant possible chez Ouvaton, mais facturée.

Voilà, le nouveau site web de travail est créé. Il reste à le remplir maintenant.

2. Installation de SPiP 2.0 sur le site de travail

Nous avons à présent un nouveau site web vide avec un accès FTP. Nous pouvons alors y installer la dernière version de SPiP selon la méthode habituelle. (pour info, la méthode par FTP est conseillée chez Ouvaton au détriment de la méthode SPIP-loader).

Nous avons vu au point précédent comment séparer les fichiers des deux sites à réaliser en parallèle, voyons maintenant comment séparer les données de la base de données pour faire fonctionner deux sites SPIP tout en n’utilisant qu’une seule base de donnée MySQL.

Au moment de la première configuration de ce nouveau SPiP, nous renseignons les paramètres de la base de données (adresse du serveur, nom, login et mot de passe) sur les mêmes paramètres que le site officiel. Sauf que le paramètre "préfixe des tables" ne sera pas le même. Si le préfixe du site officiel est "spip", créons par exemple le préfixe "spip2" pour le site de travail.

Au moment de la validation de cette première configuration, nous obtenons un site SPIP vierge (sans aucun contenu éditorial) avec ses propres tables de données au préfixe "spip2" distincts du site SPIP officiel aux préfixes "spip".

3. Importation des données du site existant vers le nouveau

La méthode est de réaliser une sauvegarde des données depuis le site officiel, c’est-à-dire celui en version SPIP 1.9.2, puis de "restaurer" cette sauvegarde dans le nouveau site en version SPIP 2.0. Mais Attention ! Cette méthode est fortement déconseillée par les développeurs de SPIP. Ceci dit, vous ne risquez pas grand chose puisqu’on travaille sur un site encore vierge de contenu.

Il suffit ensuite d’appliquer la mise à jour de ces données formées par un SPIP 1.9 sur le SPIP 2.0 comme pour une procédure de mise à jour SPIP.

Il nous reste ensuite à copier le contenu du dossier IMG qui contient les logos des articles et rubriques, mais aussi les pièces jointes. Par soucis d’économie d’espace disque sur un espace soumis à quota, je me suis contenté de ne copier que les dossiers d’images (formats jpg, png et gif) et les icônes des articles, rubriques et consorts tout en se gardant de copier les images les plus grosses. Les autres dossiers (formats pdf, odt, ogg) ne sont pas utiles pour le test de la migration, ils seront restaurés après la bascule sur le site officiel.

4. Installation et configuration des plugins

Comme dit précédemment, l’un des intérêts majeurs de la version SPiP 2.0 par rapport à ses précédentes est la gestion des plugins qui se trouve grandement simplifiée. La méthode classique d’installation est toujours valable (téléchargement du plugin sur le site spip-contrib par exemple puis placement via FTP dans le dossier /plugins après décompression) mais une autre méthode plus automatisée s’y ajoute. Pour le faire, il faut créer via FTP un dossier /plugins et un sous-dossier /plugins/auto, puis se rendre sur la page d’administration des plugins dans l’interface privée de SPiP. Sur cette page, on y renseigne les listes de plugins dans le formulaire d’installation automatique. Deux liens sont proposés, ils sont tout les deux intéressants et les deux listes se cumulent. Par la suite, ne pas hésiter à rafraichir régulièrement ces listes de plugins en cliquant sur "mettre à jour les listes" pour profiter des nouveaux plugins proposés et des mises à jour des plugins existants.

Une fois les listes de plugins renseignées, un nouveau formulaire apparait : une liste de plugins à cocher. L’installation et la mise à jour des plugins de SPiP2 s’apparente à la gestion de paquets logiciels RPM ou deb sur une distribution Linux : on choisi dans la liste, on coche, et on valide l’installation après avoir vérifié le numéro de dernière version dans le cas d’une mise à jour. Le reste se fait tout seul.

On installe alors les plugins utiles un par un au maximum par cette méthode automatique. Pour ceux qui ne sont pas dans les listes, nous procédons par la méthode classique via FTP. Notez que certains plugins développés pour SPiP 1.9 ne sont pas compatibles pour SPiP 2.0. Vérifiez alors si il existe un équivalent qui le remplace, c’est le cas par exemple du plugins "gestion de documents" pour SPiP 1.9 remplacé par le plugin "médiathèque" pour SPiP 2.0.

La méthode de configuration de ces plugins reste la même. Il faut commencer par les activer une fois installés, puis se rendre dans la page de configuration de chacun des plugins qui le nécessitent (couteau suisse, abomailman...) en prenant modèle sur la version officielle du site toujours en ligne.

Un conseil : activez et configurez vos plugins un par un et contrôlez le résultat avant de passer au plugins suivant pour mieux cerner les éventuels problèmes d’incompabilité.

5. Copie et adaptation des squelettes et modèles

Voilà, le contenu du site est prêt, il reste la mise en forme. C’est le moment d’importer les modèles et squelettes. Et c’est là que la méthode du site de développement en parallèle du site en production montre toute sont utilité. Tout d’abord parce que ça permet de faire le grand ménage dans les dossiers et fichiers cumulés des version précédentes de SPiP, mais surtout parce les squelettes seront à adapter pour la nouvelle version de SPiP, et je ne connait pas de méthode automatique pour ça ;-)

Pour le faire, il suffit de créer le dossier /squelettes à la racine du nouveau SPiP puis d’y copier le contenu du même dossier /squelettes du premier site SPiP et de vérifier que ça passe bien. Sauf que ça ne passe pas car il y a des modifications à faire sur les squelettes personnalisés. À moins de se contenter du jeu de squelettes dist d’origine dans quel cas on peut choisir de conserver le nouveau jeu de squelettes proposé avec SPiP2. Notez que ce jeu de squelettes n’est plus dans le dossier /dist mais dans le dossier /squelettes-dist.

Idem pour les modèles.

Bon courage et patience pour cette phase !

6. À la recherche des erreurs

Nous avons minutieusement bien vérifié le bon fonctionnement de toutes les pages sur tous les squelettes : article, rubrique, brève, accueil, site, recherche, plan, 404, etc... Le plus difficile était de recourir à des bêta lecteurs pour déceler les éventuelles erreurs. Chaque erreur doit être corrigée dans le squelette approprié.

7. Bascule sur le site officiel

Une fois toutes les erreurs de squelettes corrigées, on peut basculer le nouveau SPiP sur le site officiel. Mais avant tout, il se peut que le contenu du site officiel ai évolué entre temps. Il vous faut alors reprendre les données en reprenant les étapes 3 (Importation des données du site existant vers le nouveau) et 4 (configuration des plugins) avant de vérifier une dernière fois (étape 6) pour obtenir un contenu identique sur les deux sites.

Ensuite, il suffit de supprimer tous les fichiers et dossiers en rapport à SPIP sur le site officiel (après sauvegarde en local bien-sûr) puis de déplacer via FTP le contenu du site en développement vers le site officiel. Pendant la durée de la migration, on peut prévenir les internautes par une page index.html provisoire indiquant que le site est momentanément en travaux.

Et normalement ça devrait marcher du 1er coup sur l’adresse du site officiel www.nautile.org/index.php en utilisant les tables spip2 et les documents du dossier /IMG au complet.

Du coup, après une inspection générale sur le site officiel nouvelle version pour vérifier que tout marche bien (comme au point 6), on peut alors supprimer la page index.html provisoire pour rendre le site de nouveau accessible. Puis pour libérer de l’espace disque sur le serveur on peut supprimer les tables de la base de données de l’ancien site (celles au aux préfixes spip) et le contenu du site de développement

La touche finale est de publier un article ou une brève pour signaler que la migration est effectuée avec succès et plus ou moins de peine. C’est maintenant chose faite avec l’article que vous avez sous les yeux. ;-)

Notre prochaine étape sera de reprendre un nouveau site de développement pour travailler sur les squelettes et essayer de nouveaux plugins pour faire évoluer notre site tout en ne perturbant pas le site officiel. Et là, il y a du boulot !