Sauvegarder le clone puis remplacer les fichiers du cœur
Objectif de la leçon
Créer une sauvegarde S2 cohérente du clone, conserver sa configuration et ses données, puis installer les fichiers d’un paquet complet sans toucher au forum source.
Explications
Pourquoi une deuxième sauvegarde ?
S1 représente le forum source au moment où vous l’avez sauvegardé. Depuis, vous avez créé et vérifié le clone. Celui-ci possède sa propre base, sa configuration locale isolée et le sujet « Maintenance — témoin du clone ». Revenir à S1 ne reproduirait donc pas exactement son état d’avant intervention. S2 doit enregistrer cet état précis, avec les fichiers ET la base du clone.
Une paire cohérente représente le même moment logique. Pendant sa réalisation, aucun compte de test ne publie, aucun administrateur ne modifie les réglages et aucune tâche du laboratoire ne change les données. « Désactiver le forum » limite l’accès ordinaire, mais ce réglage n’arrête pas toute activité possible d’un administrateur ou d’une tâche. La fermeture et l’absence effective d’écritures sont deux conditions complémentaires.
Vous avez déjà appris l’export SQL neutre et la copie complète des fichiers. Nous réutilisons ces méthodes, en changeant explicitement la cible : base phpbb_ecole_restauration et dossier forum-ecole-restauration. Le compte SQL du clone ne doit pas être confondu avec CamilleAdmin, qui est un compte du forum.
Le paquet neuf ne contient pas vos données
Le cœur de phpBB comprend les programmes et bibliothèques standard, notamment phpbb/, includes/, vendor/, adm/ et les fichiers PHP de la racine. Ils seront remplacés par ceux du paquet retenu. Recopier ensuite l’ancien vendor/ ou l’ancien phpbb/ par-dessus les nouveaux fichiers produirait un mélange de versions ; ce ne serait pas une restauration correcte.
À l’inverse, config.php contient les paramètres propres à cette installation, dont la connexion vers la base du clone. files/ peut contenir les pièces jointes ; images/ les images et avatars ; store/ des données de travail ou des sauvegardes ; ext/ les extensions ; styles/ les styles. Ces éléments ne doivent pas disparaître au cours d’un remplacement du cœur.
La méthode officielle préserve ces répertoires, puis apporte les fichiers du paquet complet. Le style standard prosilver reçoit les fichiers de la version cible. Les styles supplémentaires restent conservés, mais leur compatibilité doit être vérifiée séparément. Conserver ne signifie pas certifier compatible.
Ne pas oublier ce qui est propre à votre forum
Notre laboratoire possède aussi preuve-maintenance.txt à la racine. Ce petit fichier n’appartient pas au paquet standard et doit être explicitement préservé. Un remplacement aveugle du dossier entier le ferait disparaître. Dans un autre environnement, il pourrait s’agir d’un fichier de vérification ou d’une personnalisation différente ; c’est précisément le rôle de l’inventaire.
Les fichiers de configuration du serveur, comme .htaccess, demandent la même attention. Notre laboratoire standard reprend celui du paquet correspondant. Si vous l’avez personnalisé, comparez vos règles avec celles du nouveau paquet : ne jetez pas les anciennes sans lecture et ne remettez pas aveuglément un ancien fichier à la place du nouveau. Le présent atelier ne fournit pas de fusion universelle de configurations personnalisées.
Les langues supplémentaires doivent être préparées avant la première visite du forum remplacé. Pour la répétition, notre paquet français 3.3.17 contient le français nécessaire. Pour une vraie cible différente, ajoutez le paquet français compatible prévu dans votre fiche, à son emplacement documenté. Il ne faut pas supprimer language/ puis oublier que l’installation utilise le français.
Travailler avec deux emplacements clairement nommés
L’un est le paquet décompressé dans Documents/Atelier-phpBB ; l’autre est le clone installé dans C:/wamp64/www/forum-ecole-restauration. Avant chaque copie ou retrait, lisez le chemin de la fenêtre active. Dans l’Explorateur Windows, Alt+D permet de placer le focus dans la barre d’adresse et d’en lire ou remplacer le chemin. Le titre d’une fenêtre sans le chemin complet ne suffit pas à distinguer deux dossiers phpBB.
Gardez S2 hors du répertoire www. La sauvegarde contient notamment config.php et des données privées : elle n’est pas un fichier destiné à être servi par le navigateur. Les noms de fichiers témoins sont publics et sans secret, mais ils ne rendent pas toute la sauvegarde publiable.
Exemple commenté
Une liste de conservation écrite
Pour notre clone, la liste minimale est : config.php ; ext/ ; files/ ; images/ ; store/ ; styles/ ; preuve-maintenance.txt. Vous y ajoutez tout autre fichier personnel effectivement recensé. Les fichiers du style prosilver seront actualisés par le paquet ; les autres styles ne seront pas considérés actualisés par cette seule copie.
S2 porte un nom daté réel, par exemple suivant la forme S2-AAAA-MM-JJ-HHMM-avant-maj. Remplacez les lettres par la date et l’heure de votre sauvegarde. Elle contient fichiers/forum-ecole-restauration/, phpbb_ecole_restauration.sql, inventaire.txt et preuves.txt. La fiche de décision de la leçon précédente y est recopiée sans mot de passe.
Un contrôle particulièrement utile consiste à vérifier, dans la copie privée de config.php, que dbname désigne bien phpbb_ecole_restauration. La présence d’un fichier appelé config.php ne prouve pas qu’il s’agit de celui de la bonne installation.
Exercice à réaliser
Créer S2 avant de toucher au paquet installé
1. Sous CamilleAdmin, vérifiez que vous êtes dans le PCA du clone. Laissez « Désactiver le forum » sur Oui. Notez l’état fermé et faites cesser les publications et autres écritures du laboratoire. Le forum source n’est pas la cible de cette fermeture.
2. Créez le dossier privé S2 avec sa date réelle. Depuis phpMyAdmin, sélectionnez phpbb_ecole_restauration et exportez toutes ses tables, structure et données, dans un SQL neutre, comme au chapitre des sauvegardes. Vérifiez qu’il ne contient pas d’instruction CREATE DATABASE ou USE imposant une autre base. Enregistrez-le sous phpbb_ecole_restauration.sql.
3. Dans S2, créez le sous-dossier fichiers. Copiez le dossier complet C:/wamp64/www/forum-ecole-restauration dans ce sous-dossier, en incluant les fichiers habituellement masqués. Vous devez obtenir S2/fichiers/forum-ecole-restauration/config.php, sans répéter deux fois le nom forum-ecole-restauration dans le chemin. Vérifiez config.php, preuve-maintenance.txt et les répertoires conservés. Complétez inventaire.txt et preuves.txt avec les versions et les témoins : le sujet du clone est présent ; le futur sujet « Maintenance — après intervention » n’existe pas encore.
4. Vérifiez que l’export et la copie sont terminés sans erreur avant de poursuivre. Ne modifiez plus S2 : c’est le point de retour du chapitre suivant. Si des extensions supplémentaires sont réellement actives, appliquez maintenant leur procédure documentée de désactivation temporaire sur le clone, en conservant leurs données et en notant l’état à rétablir. N’utilisez pas une fonction d’effacement des données.
Remplacer les fichiers du clone fermé
5. Dans le paquet complet décompressé hors de www, retirez config.php ainsi que les répertoires files/, images/ et store/. Ce retrait concerne le PAQUET DE TRAVAIL, jamais S2 ni le clone : il prépare une copie qui ne remplacera pas ces données personnelles. Vérifiez que votre paquet français compatible est prêt.
6. Dans C:/wamp64/www/forum-ecole-restauration, conservez exactement la liste de l’exemple, enrichie de votre inventaire. Retirez les autres fichiers et répertoires standard de l’ancienne installation. Ne faites pas « tout supprimer » : relisez chaque élément conservé, notamment config.php et preuve-maintenance.txt. Les fichiers du nouveau paquet vont remplacer le cœur retiré. Les anciennes données restent dans les dossiers protégés.
7. Copiez le CONTENU du dossier phpBB3 du paquet préparé dans la racine du clone. Ne créez pas un dossier phpBB3 supplémentaire à l’intérieur du clone. Lorsqu’une fusion de dossiers est proposée, fusionnez les dossiers conservés avec ceux du paquet ; remplacez leurs fichiers standard lorsque le paquet en fournit une nouvelle version. Cette opération actualise notamment prosilver sans effacer les autres styles. Si un conflit concerne un fichier personnel, vérifiez l’inventaire avant de décider.
8. Avant toute navigation, contrôlez le chemin du clone, son config.php préservé, le nouveau includes/constants.php, les répertoires de données et preuve-maintenance.txt. Assurez-vous que language/fr et les autres fichiers du paquet français compatible sont présents. Le dossier cache doit provenir du paquet propre, sans ancien cache généré réinjecté ; gardez ses fichiers de protection.
9. Laissez le clone fermé. Le dossier install provenant du paquet sera traité à la leçon suivante : migration si la version avance réellement, retrait direct si nous répétons à version égale. Ne rouvrez pas encore le clone aux comptes de test.
Correction et résultat attendu
Un cœur remplacé, une paire S2 intacte
Vous disposez maintenant de S2 hors de www, puis du clone avec les fichiers du paquet retenu. Sa configuration pointe toujours vers sa propre base ; ses pièces jointes, images, extensions, styles supplémentaires, données de store et fichier témoin sont conservés. L’installation source n’a pas été modifiée.
La base du clone n’a pas encore subi de migration de version. Si les fichiers sont plus récents, ce décalage est une étape transitoire à terminer immédiatement par la prochaine leçon. Ce n’est pas un forum prêt à rouvrir. Si les fichiers sont de la même version, aucune montée de version n’a eu lieu.
Si vous avez écrasé config.php avec celui du paquet, ne lancez pas une installation neuve. Reprenez uniquement le config.php du clone dans S2 et vérifiez ses paramètres avant de le remettre. Si d’autres données manquent, conservez les erreurs et utilisez la méthode de restauration complète enseignée plutôt que de mélanger au hasard anciens programmes et nouveaux programmes.
À retenir
S2 sauvegarde ensemble les fichiers et la base du clone avant intervention. Le remplacement utilise un paquet complet préparé, conserve les données et les particularités inventoriées, puis laisse le clone fermé. La sauvegarde privée et le forum source restent intacts.
Seuil de réussite, en pourcentage : 100 %. QCM obligatoire pour terminer le cours.