Spip 3.2.9 avec PHP 7.4

Note pour plus tard si je dois réinstaller mon système.

J’ai installé le week-end dernier Linux Mint et c’est très bien, Cinnamon est tout à fait à mon goût. Mais j’ai eu des soucis avec Spip 3.2.9 et PHP 7.4 et les copains d’IRC me disaient que je pouvais tenter de redescendre en 7.3.

Note rigolote : d’ailleurs c’est étrange, l’erreur remontée par Apache a à voir avec les « magic_quotes » sauf qu’il n’y est fait aucune référence dans le fichier cité comme originaire de l’erreur.

Voilà la méthode pour référence ultérieure.

1. Récupérer des versions plus anciennes de PHP

Il faut ajouter un dépôt avec les anciennes sources de PHP :

$ sudo add-apt-repository ppa:ondrej/php

Ensuite mettre à jour la liste des paquets disponibles :

$ sudo apt udapte

Puis installer une version plus ancienne :

$ sudo apt install php7.3

2. Les bibliothèques PHP de base nécessaires à spip

Il faut installer les bibliothèques XML, sqlite3 et gd, respectivement pour le XML (trop fort), la base de données et les fichiers image :

$ sudo apt install php7.3-xml php7.3-sqlite3 php7.3-gd

3. Dire à Apache de choisir cette version de PHP

Il faut spécifier à Apache qu’on veut activer un nouveau module, celui de PHP 7.3 :

$ sudo a2enmod php7.3

Et là normalement c’est tout bon. Il faut juste redémarrer Apache :

$ sudo systemctl restart apache2

3. À voir plus tard ?

Après avoir fait tout ça un de mes camarades s’étonne parce que normalement ma version de Spip devrait fonctionner correctement.

Je réalise que je n’avais pas installé toutes les bibliothèques nécessaires à Spip en PHP 7.4, je n’ai que php7.4-sqlite3, et pas les libs XM ni gd.

On verra plus tard… ?

Commentaires

  • ami8 (10 juillet 2023)

    J’étais dans un cas un peu similaire (Spip 3.2.19, PHP 7.4) et votre site m’a permis de me rendre compte que certains modules, comme php-gd étaient indispensables !
    Une bonne pratique pour repérer les erreurs (surtout en cas de "page blanche" difficile à débugger) :
    avoir un fichier spip/config/mes_options.php qui contient ces quelques lignes :


    <?php // .config/mes_options.php
     
    error_reporting(E_ALL^E_NOTICE);
     
    ini_set ("display_errors""On");
    ?>

    Et ne pas oublier d’installer (entre autres) les modules : php-mysql, php-gd, php-sqlite3, php-xml
    Et un redémarrage d’Apache pour prendre en compte les changements ;)

    Répondre à ami8

Qui êtes-vous ?
Votre message

Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)