Mise à jour 4.0.9 vers 4.0.10, 4.1, 4.2 impossible par Spip_laoder

A chaque fois que je tente une mise à jour de la version 4.0.9 vers une plus récente, le processus échoue à la page suivante :

https://labalancedes2terres.info/spip_loader.php?lang=fr&chemin=spip%2Farchives%2Fspip-v4.0.11.zip&chemin=spip%2Farchives%2Fspip-v4.0.11.zip&dest=&range=0&etape=fichier

Affichage :

Fatal error: Uncaught TypeError: Unsupported operand types: string * float in phar:///homepages/7/d843413879/htdocs/spip/spip_loader.php/pclzip.php:1861 Stack trace: #0 phar:///homepages/7/d843413879/htdocs/spip/spip_loader.php/pclzip.php(982): PclZip->privOptionDefaultThreshold(Array) #1 phar:///homepages/7/d843413879/htdocs/spip/spip_loader.php/index.php(1109): PclZip->extractByIndex(‹ 0-200 ›, 77001, ‹ ./zip_51d73556d… ›, 77005, 453, 77016, 77003, ‹  ›, 78002, ‹ SL_touchCallBac… ›) #2 phar:///homepages/7/d843413879/htdocs/spip/spip_loader.php/index.php(865): SL_spip_deballe_paquet(‹ spip/archives/s… ›, ‹ ./spip-v4.0.11… ›, ‹  ›, 200, ‹ ecrire/?exec=ac… ›) #3 phar:///homepages/7/d843413879/htdocs/spip/spip_loader.php/index.php(1546): SL_spip_deballe(‹ spip/archives/s… ›, ‹ fichier ›, ‹  ›, 0, ‹ ecrire/?exec=ac… ›) #4 /homepages/7/d843413879/htdocs/spip/spip_loader.php(1): Phar::webPhar(‹ spip_loader.pha… ›, NULL, NULL, Array, ‹ phar_rewrite ›) #5 {main} thrown in phar:///homepages/7/d843413879/htdocs/spip/spip_loader.php/pclzip.php on line 1861

Pourtant cela fonctionne en local avec le même fichier spip_loader.php
l’upload vers le serveur a pourtant bien était fait en binaire comme conseillé.
hébergeur : ionos, PHP 8.1

Intéressant : est-ce que tu peux indiquer exactement la valeur que tu as dans le ‹ memory_limit › de ce PHP ?

Question subsidiaire :

  • est-ce que ce n’est pas toi qui surcharge le php.ini de ionos ? (avec un php.ini à toi)
  • est-ce que tu ne déclares pas un ini_set(‹ memory_limit ›, …) quelque part sinon ?

https://git.spip.net/spip-contrib-outils/spip_loader/issues/26 du coup

Je continue ici, je ne peux pas créer de compte sur l’autre forum

contenu du php.ini :

upload_max_filesize = 64M
zlib.output_compression=1
zlib.output_compression_level=9

C’est la valeur de memory_limit qui nous intéresse :slight_smile:

Je n’ai pas accès à cette information chez Ionos

nous avons acces à cette info elle est donnée dans le fichier php_info accessible depuis SPIP Maintenance/configuration PHP
sur mon serveur elle est notée -1 cequi normalement signifie illimitée

est-ce que spip_loader serait allergique à cette notation ?

Ah bah oui, ça c’est une vrai piste le cas -1 !

J’avais pas vu qu’on pouvait le faire dans cette version de Spip…

En poursuivant cette piste de memory, j’ai ajoute au fichier mes_options.php la ligne suivante

define(‹ memory_limit › , ‹ 256M ›);

et hop spip_loader.php a fini son job

ca doit bien faire six moix que je cherchais, je n’étais pas capable de decoder le message d’erreur

Merci à tous

oups pour etre plus précis le fichier mes_options contient précisément les lignes qui suivent

<?php define('_DEV_VERSION_SPIP_COMPAT', '4.1.99'); define('memory_limit' , '256M'); ?>

Il serait bien de savoir quel plugins ne sont pas encore dit compatible 4.1 pour que ce soit corrigé, tu peux le signaler sur les articles de contrib

ils sont tous compatibles 4.1 car je n’utilise que des plugins opérationnels.
Je préfere abandonner un plugin mais maintenir les sites avec la derniere version de SPIP que privilégier un plugin
Donc tous ceux qui sont sur les sites que je gere sont compatibles officiellement 4.1,
J’attends donc les versions officiellement compatibles 4.2.2 pour mettre à jour la majorité des sites.
Je n’ai fait que des tests sur un site perso sans grande importance.

J’ai dis une grande fake news . Ce n’est pas le fichier mes_options qui à attendri spip_loader mais le fichier php.ini (à la racine du site) .
Les lignes suivantes ont fait le boulot
[php]
memory_limit=256M

J’avais essayé cette option sans relancer mon navigateur. Je doutais de son efficacite à tort.
c’est en l’effaçant et en laissant mes_options.php que je mesuis rendu compte de l’erreur

tu pourrais être plus précis et me donner le contenu exact de ton fichier php.ini, je suis une quiche question langage …

tout simplement dans un fichier appelé php.ini
situe à la racine du site, c’est à dire dans le meme dossier que spip.php

les lignes suivantes uniquement

[php]
memory_limit=256M

ça a fonctionné, helas…
je suis bien en version 4.2.2 mais une bonne partie des plugins ne sont pas compatible avec cette version…dont Escal le plugin de mise en page d’ou un site complètement en l’air avec des erreurs dans tous les sens

@Slave1802 tu as une constante que tu peux mettre dans config/mes_fonctions.php pour indiquer que tu peux activer des plugins compatibles avec SPIP 4.1.0. Ça permet de les tester. Comme indiqué là Sortie de SPIP 4.2.0 - SPIP Blog

Par contre je ne connais pas ces erreurs sur les dates ; il semblerait que ton hébergement n’indique pas de timezone par défaut.
Peut être date_default_timezone_set('Europe/Paris'); à ajouter quelque part.

j’ai mis cette ligne :
define(’_DEV_VERSION_SPIP_COMPAT’, ‹ 4.0.99 ›);
dans un fichier mes_options.php uploadé dans le répertoire config

mais niet, les pluggin sont toujours incompatible et j’ai le message
define(’_DEV_VERSION_SPIP_COMPAT’, ‹ 4.0.99 ›);
Warning: Cannot modify header information - headers already sent by (output started at /homepages/7/d843413879/htdocs/spip/config/mes_options.php:1) in /homepages/7/d843413879/htdocs/spip/ecrire/public/evaluer_page.php(52) : eval()'d code on line 33

qui apparait un peu partout