[Résolu] Erreur 505 sur mon sommaire

Bonsoir,

J’ai mis à jour un site qui tournait en SPIP 4.1.XX vers SPIP 4.3.3 (et je suis passé de PHP 8.1 à 8.2, 8.3 n’étant pas encore disponible avec AMEN).

Je n’arrive pas à comprendre pourquoi mes PDF ne s’affichent pas toujours (et rendent l’erreur 505).
J’utilise Pdf.js dont la version est valide avec SPIP 4.3

Merci par avance de vos lumières,

Gui.

erreur 500 c’est très large. Probablement une erreur PHP. Il faudrait activer temporairement l’affichage des erruers pour pouvoir t’aider plus.

Voir ici Les aides au débuggage de squelettes - SPIP la section « page-blanche » (qui marche aussi pour les erreurs 500).

Une fois cela fait, revenir vers nous avec le message d’erreur PHP qui s’affichera.

En saisissant :
define('SPIP_ERREUR_REPORT',E_ALL);
dans mes_options.php ?
C’est bien ça ?

Et où s’affiche le message d’erreur ?

Merci pour votre premier message ! :wink:

normalement le message d’erreur s’affiche à la place de la page (mais c’est pas garanti, le 500 c’est très spécial).

Quand à ce qu’i lfaut mettre, j’ai envie de dire « relisez bien la doc ».

Mais bon. Donc

  • une fichier mes_options.php doit commencer par <?php
  • ensuite bah vous mettez les 3 lignes indiquées là où je vous ai dit :
// Activer les rapports d’erreurs PHP
error_reporting(E_ALL^E_NOTICE);
ini_set ("display_errors", "On");

// Afficher toutes les erreurs dans SPIP
define('SPIP_ERREUR_REPORT', E_ALL);

J’ai eu peur en le faisant :pleading_face:

Mais je l’ai fait (et j’ai vite supprimé mes_options après) :
Le même message revient tout le temps :
Deprecated: unserialize(): Passing null to parameter #1 ($data) of type string is deprecated in /home/w031c797/public_html/plugins/old/massicot-0.9.0/massicot_fonctions.php on line 384

Par excès de scrupule, j’avais mis tous mes plugins dans un sous-dossier old… car ils n’étaient pas accessible dans la console privée de Spip.

Bref, tout semble venir des Plugins.

J’ai rebasculé tous les Plugins récents à la racine de Plugins. Mais pour l’instant ça ne change rien…

Pour faire suite (mais pas encore fin) :
J’ai fait le ménage dans mes Plugins. Ils sont tous actifs (dans Gestion des Plugins) et sans doublon (ni version ancienne), à la racine du répertoire Plugins.

Mon problème initial reste à l’identique (même en vidant les caches).

Je viens de supprimer Massicot (dans Gestion des Plugins).
Ça n’a pas résolu le problème (après nettoyage des caches).

Faut-il que je repasse de PHP 8.2 à 8.1 ?

J’ai retenté de réintroduire mes_options dans Config :
Je n’ai pas eu de message d’erreur, cette fois.

Peut-il y avoir un souci avec mon hébergeur (Amen) ou avec la version de PHP ?

Alors, il faudrait que tu testes avec cette version de Massicot : Fichiers · compat_42 · spip-contrib-extensions / massicot · GitLab

Le zip est obtenable via le menu code à droite :

Je viens d’essayer Massicot compat 42 : et j’ai toujours le même problème d’affichage de mes pdf (des sommaires de livre, pas très lourds). Une partie seulement s’affiche correctement, d’autres pdf ne s’affichent pas (avec l’erreur 505).

C’est comme si mon serveur (Amen) n’arrivait pas à charger tous les pdf de mon sommaire.
Le sommaire contient 10 articles par page avec en moyen un pdf à afficher par page. Mon sommaire comprend la plupart de mes articles par groupe de 10 articles (et j’ai 4000 articles, donc environ 400 pages de sommaire successives). [C’est un site de société savante, d’actualité en histoire]

mouais, alors normaleent le problème se pose uniquement page par page. Mais 10 articles avec des pdfs, si tu a le plugin qui affiche les pdf, peut ^'etre que oui ca peut faire ramer/provoquer une 404.

Sinon normalement ton hebergeur doit te fournir quelque part dans son panel d’administration un accès aux logs PHP/APACHE

Et je ne pense pas que l’erreur massicot soit la cause du 500 : une warning n’a a ma connaissance jamais provoqué d’erreur 500

Mais une erreur 505, c’est plus précis. :wink:

Les erreurs HTTP 5xx sont, en général produites par le serveur web (Apache/httpd, nginx, etc.). Peu de chance que PHP loggue quoique ce soit, encore moins SPIP.

L’eerreur 505 est « HTTP Version Not Supported » : Autrement dit, une requête HTTP émise depuis le navigateur web (probablement dans du JS) fait un GET ou un POST avec une version du protocole HTTP non supportée par le serveur web qui se trouve devant PHP/SPIP

Grosso-modo, Il y a, de nos jours, 3 versions possibles utilisées dans le code des plugins SPIP: HTTP/1.0, HTTP/1.1, HTTP/2.0 … et il est fort possible que HTTP/1.0, dépréciée de longue date, ne soit plus accepté par le serveur web en question.

Piste: cherche dans les plugins, du code JS qui fait une requête HTTP/1.0 et mettre à jour le code pour qu’au minimum, elle fasse du HTTP/1.1

Bonnes recherches ! :wink:

Grand merci pour la piste. C’est bien le code JS qui semble poser problème avec Pdf.js

Plutôt que de rentrer dans le code de Pdf.js (ce que je ferai quand j’aurai éventuellement un peu plus de temps disponible), j’ai ajouté en parallèle le Plugin « Modèle PDF (visualiseur) v1.3.0 », dont la syntaxe est plus simple (<embXXX|center>) et moins gourmande en mémoire pour le serveur.

J’ai fait la modification sur les dix derniers articles de mon sommaire et tous les pdf se sont affichés correctement.

Mille mercis pour toutes vos pistes !
Ma question semble résolue !