PhpBB Lab Académie

Rechercher dans ce cours

Mettre en ligne son forum phpBB : du laboratoire à l’ouverture au public

Auteur : phpBB-Lab. Date de cette version : jeu. 17 sept. 2026 23:26.

Construire une copie locale réservée à la publication

Objectif de la leçon

Reconstituer le forum dans un nouveau dossier et une nouvelle base, isoler ses connexions et conserver tous les laboratoires précédents.

Explications

Préparer avant de copier

Nous allons réutiliser la restauration apprise au cours 4, avec de nouveaux noms. Travaillez sur le moteur MySQL ou MariaDB déjà utilisé dans WampServer, avec son vrai port SQL. La source est forum-ecole-restauration. Le nouveau dossier sera forum-ecole-publication ; sa base et son compte SQL dédiés seront nommés phpbb_ecole_publication. Le préfixe des tables reste celui de la source, souvent phpbb_.

Une sauvegarde contient deux parties complémentaires : les fichiers et la base du même état. Fermer le forum limite l’accès ordinaire, mais n’empêche pas toutes les écritures d’un administrateur, d’un modérateur ou d’une tâche. Pour ce laboratoire contrôlé, terminez les autres essais et n’effectuez aucune intervention pendant la copie. Si votre installation comporte une intégration ou une tâche externe ajoutée personnellement, sa suspension et son isolation doivent également être définies.

Conserver S7-source

1. Connecté comme CamilleAdmin dans forum-ecole-restauration, vérifiez l’adresse et « Désactiver le forum : Oui ». Les courriels, SMTP et Jabber restent désactivés. Conservez les dossiers et sauvegardes des cours précédents.

2. Dans Documents\Sauvegardes-phpBB, créez S7-source-AAAA-MM-JJ-HHMM en remplaçant la date et l’heure par celles de votre copie. Selon la procédure du cours 4, exportez toutes les tables, structure et données, dans phpbb_ecole_restauration.sql. L’export doit être neutre : sans ordre CREATE DATABASE ou USE qui imposerait une destination. Copiez aussi le dossier complet forum-ecole-restauration dans le sous-dossier fichiers de S7-source.

3. Notez dans un inventaire le nom de la source, ses versions, son préfixe de tables et le nombre de tables. Reprenez les contrôles de lisibilité et de fichiers appris précédemment. N’associez pas un SQL récent à des fichiers d’un autre point de sauvegarde. Cette paire restera intacte ; la préparation se fera dans une autre copie.

Créer la nouvelle base et son accès

4. Dans phpMyAdmin local, avec votre compte de gestion habituel, créez la base vide phpbb_ecole_publication. Conservez l’interclassement de la source. Si ce nom existe déjà avec des données, identifiez cet ancien essai ; les étapes suivantes supposent une base neuve, pas un contenu effacé pour l’occasion.

5. Créez le compte SQL phpbb_ecole_publication pour l’hôte 127.0.0.1, comme dans ce laboratoire. Donnez-lui les privilèges de données et de structure nécessaires sur cette seule base, sans privilège global ni droit GRANT. Conservez son secret propre dans le gestionnaire. Le port du serveur SQL reste celui relevé dans votre installation, indépendamment du port web.

6. Sélectionnez la nouvelle base et exécutez la lecture suivante dans l’onglet SQL :

SELECT DATABASE() AS base_selectionnee;



Le résultat doit être phpbb_ecole_publication. Importez alors le SQL neutre de S7-source dans cette base vide. Attendez le résultat et comparez tables et préfixe à l’inventaire. En cas d’import interrompu, ne recommencez pas aveuglément sur la base partiellement remplie : conservez l’erreur et résolvez la cause selon le cours 4.

Relier les fichiers hors du dossier web

7. Créez Documents\Atelier-phpBB\preparation-publication. Copiez à l’intérieur les fichiers de S7-source, afin que config.php soit directement dans preparation-publication. Avec un éditeur de texte brut, modifiez uniquement la connexion de cette copie : dbname et dbuser deviennent phpbb_ecole_publication, dbpasswd reçoit le nouveau secret SQL. Conservez le pilote compatible, l’hôte local, le port SQL et le préfixe réellement utilisés.

Dans un fichier PHP, une valeur placée entre apostrophes doit rester une chaîne correctement écrite. Un secret aléatoire long composé de lettres et chiffres évite ici l’échappement des apostrophes et barres inverses. Ne reprenez aucun secret publié dans un exemple. Conservez le nom exact config.php, sans extension .txt ajoutée. Les config.php des autres dossiers restent inchangés.

Isoler les réglages avant la première page

La base importée connaît encore l’adresse et les cookies de sa source. Nous adaptons uniquement la nouvelle table de configuration. UPDATE change une valeur ; WHERE précise la ligne concernée ; SELECT permettra ensuite de relire. Remplacez phpbb_config par votre préfixe réel suivi de config si nécessaire. Remplacez 80 par votre port WEB local lorsqu’il est différent.

8. Recontrôlez SELECT DATABASE(), puis exécutez dans la base phpbb_ecole_publication :

UPDATE phpbb_config SET config_value='phpbbpublication' WHERE config_name='cookie_name';
UPDATE phpbb_config SET config_value='/forum-ecole-publication/' WHERE config_name='cookie_path';
UPDATE phpbb_config SET config_value='' WHERE config_name='cookie_domain';
UPDATE phpbb_config SET config_value='/forum-ecole-publication' WHERE config_name='script_path';
UPDATE phpbb_config SET config_value='localhost' WHERE config_name='server_name';
UPDATE phpbb_config SET config_value='0' WHERE config_name='force_server_vars';
UPDATE phpbb_config SET config_value='http://' WHERE config_name='server_protocol';
UPDATE phpbb_config SET config_value='80' WHERE config_name='server_port';
UPDATE phpbb_config SET config_value='0' WHERE config_name='cookie_secure';
UPDATE phpbb_config SET config_value='0' WHERE config_name='email_enable';
UPDATE phpbb_config SET config_value='0' WHERE config_name='smtp_delivery';
UPDATE phpbb_config SET config_value='0' WHERE config_name='jab_enable';
UPDATE phpbb_config SET config_value='1' WHERE config_name='board_disable';



Le cookie possède un nom propre et un chemin terminé par une barre ; script_path représente le chemin applicatif sans cette barre finale. Le protocole reste HTTP dans Wamp. Nous n’avons pas installé HTTPS en changeant un champ. Les trois réglages de messagerie arrêtent les services natifs concernés ; ils ne garantissent rien pour une intégration tierce que vous auriez ajoutée.

9. Relisez les treize valeurs avec cette requête, toujours dans la nouvelle base :

SELECT config_name, config_value FROM phpbb_config
WHERE config_name IN ('cookie_name','cookie_path','cookie_domain','script_path','server_name','force_server_vars','server_protocol','server_port','cookie_secure','email_enable','smtp_delivery','jab_enable','board_disable')
ORDER BY config_name;



Le nombre de lignes changées par UPDATE peut être inférieur à treize si certaines valeurs étaient déjà correctes. La preuve utile est la relecture des treize lignes attendues. Une ligne manquante ou une valeur inattendue demande un diagnostic avant la visite.

Mettre la copie en place et la reconnaître

10. Dans le seul dossier preparation-publication\cache, conservez le dossier lui-même et ses fichiers de protection .htaccess et index.htm s’ils sont présents. Retirez les autres éléments générés de cette copie, dont son cache de production et ses éventuelles files d’envoi copiées. Ne touchez pas aux dossiers de données files, images ou store. La sauvegarde intacte permet de conserver l’ancien état.

11. Déplacez le dossier préparé dans C:\wamp64\www sous le nom forum-ecole-publication, sans fusion avec un dossier existant. Demandez http://localhost/forum-ecole-publication/ avec votre port réel. Le forum doit être fermé. Connectez CamilleAdmin sur cette adresse connue, puis ouvrez son panneau d’administration. Il peut consulter un forum fermé grâce à ses droits.

12. Dans « Général », « Configuration du forum », donnez à cette copie le nom « Jardins Partagés — démonstration pédagogique » et la description « Forum de démonstration pour apprendre à utiliser et administrer phpBB. ». Enregistrez, puis rechargez une page pour relire le nom. Consultez ensuite la source locale dans un contexte distinct : son nom reste « Jardins Partagés — clone de personnalisation ». Cette différence observable complète le contrôle des deux connexions SQL.

La copie de publication reste fermée et sans courriels. Son contenu sera examiné dans la prochaine leçon avant le point de transfert définitif.

Exemple commenté

Le carnet de Camille indique deux noms après l’essai : la source porte toujours « clone de personnalisation », tandis que forum-ecole-publication porte « démonstration pédagogique ». Elle a également relu config.php et SELECT DATABASE() dans la destination. Elle n’utilise pas la seule différence d’URL comme preuve d’indépendance.

Exercice à réaliser

Avant de passer à la suite, retrouvez cinq preuves : destination SQL exacte, droits du compte SQL limités à cette base, treize réglages relus, forum de publication fermé, nom de la source inchangé. Écrivez pour chacune la valeur ou l’observation obtenue. Expliquez ce qui pourrait se produire si vous visitiez les fichiers copiés avant d’adapter config.php.

Correction et résultat attendu

La destination doit être phpbb_ecole_publication, avec son compte dédié et aucun droit sur phpbb_ecole_restauration. Les valeurs de cookies, chemins, protocole, fermeture et messagerie correspondent au clone neuf. La première page visiteur constate sa fermeture ; le panneau permet de changer son nom. Le nom de la source demeure intact. Sans adaptation préalable de config.php, les fichiers pourraient utiliser la base source : une action prétendument locale à la copie modifierait alors l’ancien forum. Une preuve manquante suspend la préparation de publication.

À retenir

S7-source conserve l’état initial. La copie locale de publication possède son dossier, sa base et ses cookies propres. Adaptez ses fichiers et ses réglages avant la première visite, écartez le cache copié et prouvez que la source reste inchangée.

Seuil de réussite, en pourcentage : 100 %. QCM obligatoire pour terminer le cours.

Sommaire du cours

Préparer une copie destinée à la publication

  1. Définir la destination et préparer son carnet de mise en ligne
  2. Construire une copie locale réservée à la publication
  3. Préparer les contenus et les comptes qui seront transférés

Transférer le forum sur l’hébergement

  1. Préparer une destination indépendante et protégée
  2. Restaurer la base préparée dans une destination vide
  3. Préparer et transférer les fichiers sans exposer le chantier

Adapter le forum à son adresse publique

  1. Adapter les paramètres avant la première visite du forum hébergé
  2. Vérifier HTTPS, les redirections et les cookies de la destination
  3. Retrouver les ressources et corriger les anciens liens locaux

Vérifier les courriels et les parcours des membres

  1. Configurer l’envoi des courriels et vérifier une réception réelle
  2. Vérifier une inscription et son activation par courriel
  3. Réinitialiser le mot de passe du compte de recette et vérifier sa session

Ouvrir le forum et suivre les premiers jours

  1. Faire la recette complète depuis un appareil extérieur
  2. Préparer la sauvegarde d'ouverture et accueillir le public
  3. Suivre les premiers jours et préparer un retour maîtrisé