Attention: cet article ne concerne pas la migration d'un forum de phpBB2 vers phpBB3 mais il concerne le changement d'hébergeur, de base de donnée, ou de dossier du forum
Un site web ce n'est pas fixe, c'est fait pour être dynamique, et parfois il arrive la nécessité de changer d'hébergeur, ou de type de base de donnée. On se lance, on se jette à l'assaut de PHP et mysql, et ... ça rate, ou ça ne marche pas bien: erreurs de charset, styles qui plantent, etc.
Voici une procédure qui vous permettra de retrouver votre forum à l'identique après la migration.
Cette procédure inclut:
Si le forum est préinstallé, il vous faudra auparavant :
Ne vous inquiétez pas, on va le faire ensemble, au fil du tutoriel...
Pour les autres, je considérerais qu'aucun forum phpBB n'est déjà installé.
NB: Pour les forumactif ou autres xooit, il est impossible d'importer la BDD au format "SQL", donc impossible de l'importer correctement avec phpMyAdmin. Désolé, il va vous falloir, soit convertir votre fichier au format "Sauvegarde SQL", soit recommencer avec un forum vide.
Bon, toute chose, je vais vous expliquer ce qu'est le codage d'un fichier. Pour écrire du texte, les ordinateurs nous permettent d'aligner et d'enregistrer des caractères, ces caractères sont représentés par des nombres. Sauf que, selon la convention utilisée, les nombres ne correspondent pas toujours aux mêmes caractères, et en plus, le format des retours à la ligne n'est pas le même d'un système d'exploitation à l'autre ("CR" pour MAC, "LF" pour Linux et "CRLF" pour Windows) !
Avant de commencer à se lancer dans le téléchargement compulsif de fichiers, assurons nous donc de ne pas mélanger les codages. En effet, la majeur partie des serveurs sont sous UNIX, et le codage des retours à la ligne est différent de celui de Windows, il faut donc s'assurer que les fichiers que nous téléchargerons seront convertis. Il est possible que même sans cette étape, cela ne vous gêne pas (si vous passez d'UNIX à UNIX par exemple), mais gare aux surprises !
Ouvrez votre client FTP et dans les préférences, assurez vous que les fichiers de type "texte" tels les fichiers HTML, PHP, CSS et autres seront téléchargés et uploadés en ASCII. Le mode ASCII est le mode de transfert qui permet de tranférer ces fichiers en convertissant les caractères en ASCII, ainsi les 2 machines "parlent la même langue". Le mode "Binaire" est nécessaire pour les fichiers de type éxécutable, qui ne doivent absolument pas être convertit en caractères.
Dans le menu "Edition", choisissez "Configuration"
Dans la fenêtre qui s'affiche, prenez Transferts->Types de fichier et cochez à droite "Automatique". Puis vérifiez si les 2 cases du bas sont cochées et si php, html, htm, css sont bien dans la liste
Validez avec "Ok"
L'étape suivante est l'export de la base de donnée. Ici, deux solutions: utiliser phpBB ou utiliser le logiciel phpMyAdmin fourni en général par votre hébergeur.
Sous phpBB2 la procédure est quasi identique, sauf que on ne peut pas sauver directement le fichier sur le serveur.
Notez dans un coin de votre tête le charset de votre base ("Jeu de caractère").
Le "Mode de compatibilité SQL" et le type d'exportation (SQL, CSV, ...) sont utiles si vous changez de type de base de donnée.
Attention, après téléchargement, vérifiez que le fichier transféré est bien dans le même codage que votre base (UTF ici en l'occurence). De nombreux éditeurs de texte proposent ça (Notepad++, PsPad, ...), c'est affiché en bas en général: [image].
Je vous déconseille d'installer phpBB, et d'ensuite restaurer la base. D'abord parce que il est plus que probable que vous plantiez votre forum, et ensuite parce que il faut mettre encore les mains dans le cambouis pour faire comprendre à phpBB que il a une sauvegarde dans "/store/". Quitte à les mettre dans le cambouis, on va faire ça correctement, avec des gants .
Vérifiez au passage que le charset de la base est identique à celui de votre fichier texte de sauvegarde, ou de votre ancienne base. Meme si ce n'est pas le même, pas de souci, phpMyAdmin peut importer et convertir tout seul les charset, il vous suffit de changer dans le menu déroulant "Jeu de caractère du fichier" (qui, si vous avez suivi, doit être le même que celui de l'ancienne base)
Ceci n'est pas obligatoire tout de suite. J'ai constaté à ma grande surprise que le forum étais fonctionnel même avec des valeurs farfelues. Toutefois, pour s'assurer du bon fonctionnement de toutes les fonctionnalités du forum, il est nécesaire de modifier ces valeurs, soit maintenant, soit ensuite dans le panneau d'administration.
"SELECT ..."
et **RECOPIEZ** ces lignes:UPDATE phpbb_config SET config_value = '/newforum' WHERE config_name = 'script_path' LIMIT 1 ; UPDATE phpbb_config SET config_value = 'www.example.com' WHERE config_name = 'server_name' LIMIT 1 ;
Attention, ici le préfix des tables est phpbb_
donc ma table est phpbb_config
, le nouveau dossier du forum est /newforum/
et le nouveau domaine est http://www.example.com
il convient de remplacer ce valeurs par les votres !
Mon forum est donc dans ce cas accessible à l'adresse http://www.example.com/newforum/
A l'aide de votre client FTP, téléchargez l'intégralité des fichiers de votre ancien forum dans un dossier de votre disque.
Bien, maintenant que notre forum est sur le disque, on va opérer les changements nécessaires dans le fichier de configuration.
config.php
Si les retours à la ligne disparaissent avec le bloc note de windows, c'est normal, les retours à la ligne ne sont pas les mêmes sous UNIX, ni même sous MAC (une histoire de CR et LF), dans ce cas utilisez un éditeur de texte digne de ce nom
Surtout ne l'ouvrez pas avec Word, OpenOffice ou ce genre de logiciels évolués, cela changerais le format du fichier ! Préférez WordPad (ne faites aucune mise en forme !) ou encore mieux, Kedit, Gedit ou Vim
<?php // phpBB 3.0.x auto-generated configuration file // Do not change anything in this file! $dbms = 'mysql'; $dbhost = 'localhost'; $dbport = ''; $dbname = 'base_sql'; $dbuser = 'login_sql'; $dbpasswd = 'super_mot_de_passe'; $table_prefix = 'phpbb_'; $acm_type = 'file'; $load_extensions = ''; @define('PHPBB_INSTALLED', true); // @define('DEBUG', true); // @define('DEBUG_EXTRA', true); ?>
Diantre, il ne faut rien modifier ! C'est pour la bonne cause, du courage.
Pour le login sql, changez $dbuser='..';
Pour le mot de passe de la base, changez $dbpasswd
Pour le type de base , changez $dbms
.
Ne modifiez rien d'autre ! Mon fichier est juste un exemple. Je vous renvoie au tuto sur le fichier config pour plus de détails
Avant l'upload des fichiers, préparez un .htaccess pour masquer l'opération de tranfert, le fait d'éxécuter la page d'index alors que le forum n'est pas totalement uploadé est potentialement dangereux. Voici coment faire:
Deny From All
".htaccess"
(avec les guillemets).htaccess
(sans les guillements)Si vous avez suivi, je vous ai dit qu'envoyer la requete pour modifier la configuration de la base de donnée n'étais pas obligatoire (pour le moment). Dans tous les cas on va vérifier que tout va bien.
Normalement tout devrais bien se terminer. Il est possible qu'il y ai des "couacs", les styles qui font des caprices, les caractères du forum ou des messages devenir incompréhensibles. Pas de panique.
Sous l'onglet "Styles", cliquez sur "Templates" puis sur "Rafraichir", pour tous vos styles. Faites de même pour "Thèmes" et "Packs d'image"
Argn, le charset, je vous avais pourtant prévenu. Si ce sont les textes du forum qui sont affectés, vérifiez le codage des fichiers Si ce sont les messages, le problème vient du charset de la base, vérifiez le, et le cas échéant, recommencez la restauration de la base. En général le souci vient de l'export, phpBB ou phpMyAdmin ont exporté dans un jeu de caractère différent de celui dans lequel vous avez importé ou sauvegardé le fichier.