Passer Punbb sous php 7

Tout comme certains lecteurs de cette page, j’ai un petit forum tournant sous PUNbb et plus récemment appelé PANbb.

L’environnement de production ou mon site est installé tournait encore sous php 5.6 qui est déjà dépassé depuis un bon moment ce qui m’a obligé a remettre cette version de php a jour vers la version 7 et suivantes.

Erreur lors de l’activation de PHP7

Mais lors de l’activation de la nouvelle version de php, j’ai eu la désagréable surprise: PUNbb refusait de fonctionner, malgré que j’avais mis a jour les fichiers vers la dernière version de PUNbb (1.4.5) qui est annoncé pourtant compatible avec php7 (sur le site de PUNbb.info, site officiel du script).

Malgré plusieurs tentatives, mon site tombait toujours sur une page blanche avec le message suivant:

This PHP environment doesn’t have MySQL support built in. MySQL support is required if you want to use a MySQL database to run this forum. Consult the PHP documentation for further assistance.

J’ai bien compris que php7 ne supporte plus Mysql, il faut utiliser Mysqli a la place, mais quand on n’est pas spécialiste on risque de patauger dans la semoule, dans ce type de cas, la meilleure solution est de revenir vers la configuration d’origine afin de ne pas suspendre le service.

Préparation de la mise a jour

Pour ceux qui le peuvent, je ne conseille pas de faire de mise a jour mais de changer directement de script vers un autre script avec une communauté plus active, ce qui exige convertir le contenu .

Avant toute intervention sur un site en production, il faut faire une sauvegarde complete des fichiers et dossiers du site et de la BDD, c’est primordial, en cas de pépin on pourra toujours revenir sur l’ancienne version. Si on n’as pas de copie de sauvegarde tout est perdu.

Je suggère de faire cette opération de nuit aux heures ou le site est le moins fréquenté, voir votre script de statistiques.

Rédiriger le trafic vers une page

Première chose consiste a créer une page de maintenance (que vous nommerez : maintenance.html) afin d’informer vos éventuels visiteurs que vous travaillez sur une mise a jour.

Exemple d’une page de maintenance ici au format texte, il suffit de la télécharger et l’enregistrer sous le nom: maintenance.html, pour pouvoir l’utiliser directement a la racine de votre site.

Ensuite il faut rédiriger tout le trafic sur cette page nouvellement crée a l’aide d’un fichier .htaccess, sauf votre IP.

N’oubliez pas de remplacer les 4 séries de « 8 » par votre adresse IP.

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_HOST} !^888.888.888.888
RewriteRule $ /maintenance.html [R=302,L]

Bien entendu il faudra tester ces options avant de passer aux choses sérieuses, selon votre hébergeur ces option peuvent être différentes.

Rendre PUNbb compatible avec php7.

Il existe deux possibilités pour faire fonctionner PUNbb sous PHP7.

Back office de punbb
  • Soit on télécharge les fichiers de la version 1.4.4 mis a jour. lien de téléchargement des fichiers ici.
  • Soit on télécharge la nouvelle version 1.4.5, lien de téléchargement ici.
  • Avant d’aller plus loin s’assurer que tout le trafic a été redirigé sauf votre IP comme décrit plus haut.
  • Quelle qu’en soi l’option choisie, il faut écraser les anciens fichiers avec les nouveaux, sauf le fichier config.php.
  • Personnellement je conseille de garder une copie des anciens fichiers ainsi que de la BDD, au cas ou ça se passerais mal.
  • Une fois les fichiers sur le serveur, suivre la procédure de mise a jour de la BDD comme s’il s’agissait de la première installation.
  • Lorsque la mise a jour est complete, votre forum doit se retrouver mis a jour mais toujours sur l’ancienne version de php5, il faudra aller activer la version 7 sur votre espace client de votre hébergeur.
  • Une fois la version 7 activé attendez quelques secondes avant de voir votre site tomber sur une page blanche.

Solution

La solution consiste a rechercher l’appel a la fonction « mysql » qui est désormais obsolète dans les nouvelles versions de PHP.

Ces qui installent ce srcipt pour la première fois sur un environnement avec php7 ne rencontreront certainement pas cette erreur car le fichier config.php, généré par l’installation est déjà a jour.

Pour ces qui comme moi, qui mettent a jour leur script depuis une ancienne version et qui gardent le fichier config.php, la solution consiste a mettre a jour la variable MYSQL vers MYSQLI sur la première ligne du fichier config.php.

Remplacer mysql par mysqli, afin que le sript appel les fonctions adéquates presentes dans les fichiers du dossier → /include/dblayer/, qui seront parfaitement compatibles avec la base de donnés mysql.

Copie du fichier config de punbb

Comme on peut le constater la solution n’est pas vraiment compliqué, encore fallait-il penser a chercher a cet endroit, car dans le guide de mise a jour sur le site punbb.info cette modification n’y est pas référencé.

J’espère que cette solution pourra aider ces qui, comme moi ont cherché la solution. Si toutefois un des lecteurs connaît une autre solution, ce serais sympas de la partager en commentaire.

6 commentaires à propos de “Passer Punbb sous php 7”

    • Bonjour Gilles, merci de ton commentaire.
      Je me permets de te corriger, il ne s’agit pas de la version 155 mais de la version 1.4.5.
      J’ai mis a jour le billet avec quelques infos de plus et le liens de téléchargement, j’espère que ça répondra a tes questions.
      En réalité je partais du principe que lorsqu’on procède a ce type de bidouillages on est supposé savoir installer PUNbb.
      Pour ceux qui le peuvent, je conseille plutôt de convertir le contenu vers un script plus commun car dans un futur proche on n’aura aucun support sur ce script.

      • Merci pour la réponse ; je vais faire des essais (j’ai aussi une installation de punbb assez ancienne et comme je dois passer mon site en php7.4, idéalement, j’aimerais que le forum suive le reste de la troupe). D’accord avec toi, pour une nouvelle installation, partir sur un autre forum sera prudent. Je reviens si j’ai des questions 😉

      • Résultat des courses, pour moi, la mise à jour semble bonne – je croise tous les doigts – (php 7.2 ok, mais pas 7.4) avec la version panbb : j’ai installé punbb 144, puis panbb, et j’ai repris ensuite les éléments de mon fichier de config original et le répertoire /lang : ça semble bon. Reste à confirmer que je ne vais pas avoir de mauvaises surprises avec cette méthode proche parente du pifomètre.

      • Pour ma part, je ne suis pas informaticien, je suis bidouilleur.

        Pour la mise a jour, une fois que j’ai redirigé tout mon trafic vers la page de maintenance, j’ai recopié tous les anciens fichiers et dossiers dans un dossier de sauvegarde.
        Puis j’ai installé punbb en laissant seulement les dossiers lang et extentions, car j’ai plusieurs milliers d’images, j’avais fait une sauvegarde de la BDD pour revenir au dernier moment avant le mise a jour…

        J’avais pris toutes mes précautions, en cas de pépin j’aurais été en mesure de revenir sur l’ancienne version en moins de 20 mn…
        Ah j’oubliais… Sur mon hébergement j’ai plusieurs bases de donnés, et je n’ais pas vraiment fait de sauvegarde mais j’ai dupliqué la BDD j’ai juste le nom de la base a changer sur le config.php pour revenir sur l’ancienne base.

Laisser un commentaire