La migration de phpwiki vers MediaWiki n'est pas chose facile... Surtout en ayant le minimum de privilèges possible! Voici ma démarche (on sait jamais, ca peut servir à d'autres)
Récupération de la sauvegarde de la base de donnée phpwiki
D'abord, récupérer une sauvegarde de toutes les tables de phpwiki. Ca donne un fichier énorme, plein de caractères insultant, mais c'est pas grave!
Mise en place dun environnement serveur en local
C'est là où ca se complique: Pour exécuter le script récupéré (voir plus loin), il faut un accès à la base de données phpwiki et non pas seulement à la sauvegarde des données. J'ai donc mis en place un environnement serveur temporaire. Pour ne pas détruire ou endommager mon système, j'ai créé cet environnement via un liveCD d'Ubuntu. J'ai ensuite installé les logiciels suivants:
- Apache
- MySQL
- PHP
- phpmyadmin (j'ai dû rajouté la source universe à ma liste de paquets
pour ça)
- tous les paquets pour lier ces logiciels entre eux (modules Apache
notamment)
Création d'une base de donnée phpwiki
A partir de là , il faut recréer la base phpwiki sur le serveur local. Pas besoin d'avoir un phpwiki fonctionnel, seule la base est utile. Le problème c'est que le fichier était tellement gros que phpmyadmin ne pouvait pas le traiter. J'ai dû le passer par la ligne de commande, cela a fonctionné du premier coup.
Installation locale de MediaWiki
Pour que le script fonctionne, il lui faut aussi la base MediaWiki. Ces tables sont créées à l'installation du wiki. J'ai donc installé le wiki en local, la création des tables automatiques fonctionne parfaitement.
Utilisation du script php2mediawiki.pl
Ce script peut être demandé par email. L'auteur m'a répondu instantanément! J'ai trouvé ce script sur une page de Meta. Il faut faire quelques éditions (nom des DB, login, ...) et le lancer dans un répertoire temporaire car il crée autant de fichiers que de pages dans le wiki. Le script a fonctionné parfaitement si ce n'est des problèmes d'accents qui ne passaient pas à l'affichage du wiki.
Sauvegarde de la base de donnée mediawiki
Dernière étape dans l'environnement local Ubuntu liveCD, récupérer les changements effectués par le script. Une fois redémarré dans le système normal, toutes les données seront en effet perdues. En fait, il suffit de récupérer le table cur de la base de données mediawiki. Seuls les enregistrements dont l'id est supérieur ou égal à 2000 sont importants. (Ce sont ceux créés par le script)
Installation de MediaWiki sur le serveur
J'ai refait la même action sur le serveur, en soignant bien les variables de configuration (email webmaster, ...). En quelques minutes, MediaWiki permet d'avoir un wiki fonctionnel.
Nettoyage de la sauvegarde de la table
J'ai retiré à la main tous les enregistrements inférieurs à 2000 du fichier de sauvegarde de la base mediawiki. il ne reste plus que les données de l'ancien wiki dans ce fichier.
Re-codage des données en UTF-8
Le problème des accents cités plus haut vient de l'encodage du fichier qui est en latin-1 alors que le serveur travaille en utf-8. Ce qui est bizarre c'est que j'ai eu le même comportement sur mon serveur local, alors que c'est lui qui a produit le fichier. Je passe donc le fichier en utf-8 avec la commande : recode latin-1..utf-8 mediawiki.sql Mais à l'importation des données dans la base via phpmyadmin, j'avais toujours des lettres accentuées bizarrement dans le wiki (alors que dans la base, via phpmyadmin, les accents étaient bons...)
Exécution "magique" du fichier sql dans phpmyadmin
La solution fut d'importer mon fichier encodé en utf-8 en faisant croire à phpmyadmin qu'il était encodé en Latin-1 (il y a une case qui permet de donner l'encodage du fichier par défaut). Et, Ô magie, ca marche! Vous pouvez voir le résultat en comparant La nouvelle HomePage avec l'[http://wiki.grenouille.com/index.php/HomePage ancienne]. Une bonne après midi de boulot!
