Des cas..... résolus ! PHP5

Quelques erreurs sur votre site en fonctionnement !
Et les précautions qui vont avec les plus courantes !
- impossible de se connecter :
voir Connexion impossible.... cache hé ?
- pages redirigées
- ...

Article publié le 1er mars 2012, et actualisé en mars 2021

 
 
 
 
 
 
 
 
 
 
 
 

 Connaitre votre version de PHP

Créer tout simplement [1] un fichier texte info.php contenant

  1. <?php
  2. /* Cette fonction standard de php affiche les infos de version.. */
  3. /* pas d'espace après le code de fermeture:  ?> */
  4. /* ou omettre carrément le code de fermeture ci-dessous */
  5. ?>

Télécharger

Vous déposerez ce fichier par FTP sur votre site, par exemple sous le nom info.php et exécutez-le par l’URL https://votre-site.tld/../info.php.

Voila ce que vous verrez apparaitre... il peut y en avoir long [2] ; pour rappel, SPIP vous offrirait la meme information si vous passiez la commande URL ./ecrire/?exec=info !

exec infos

 PHP 7 c’est blanc

En 2020, nos hébergeurs généralisent les versions PHP 7.x (jusqu’à 8.5 a ce jour de Mai !
Problème, seul le Spip 3.2 tolér(e)ait un PHP 7.1 max, bientôt jusqu’à 7.4...
Sinon c’est la page blanche dans le meilleur des cas : le pire...
Vérifiez la version utilisée de votre PHP comme ci-dessous.

 Version PHP : à 5 c’est mieux !

Voici le nouveau message à la mode : classique d’un Php trop ancien !

A l’installation de Spip 3.0.x après spip_loader [3] (chez OVH, Free ou chez d’autres), il y a une erreur :

Parse error : syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or ’’ in /homez.409/alentour/www01/ecrire/public/interfaces.php on line 51

Juste un petit détail : à l’installation (ou plutôt, avant !).....
vérifiez désormais que vous utilisez bien Php 5 [4] : comment faire [5] pour vérifier les paramétrages Php ?

Certains changements impromptus de nos hébergeurs peuvent avoir des conséquences subites sur un site sans histoire : soyez prévoyants et à jour !
autres pannes indiquées : certains ont vu disparaître leur interface privée, ou seulement leur styles de personnalisation, jusqu’à ne plus afficher d’articles....

Autres erreurs signalées :
- Internal Server Error 500

Et la réponse est bien souvent la même que plus haut  : passer en PHP 5

Comment faire ;selon les hébergeurs :

  • chez 1and1, la solution est d’activer .htaccess et mettre la ligne :
    addtype x-mapp-php5 .php
  • chez ouvaton, il faut que le .htaccess commence par :
    AddHandler application/x-suexec-php5 .php

- Autre récrimination de SPIP 3.0.1 [19436] dans l’espace privé :
"Problème de sécurité : register_globals=on ; dans php.ini à corriger."
Possible aussi que cela soit un indice d’erreur : l’activation du php resterait en php 4 et non en 5 ! ( register_globals est obsolète en 5).

Toujours pour notre exemple OVH, vous pouvez ajouter dans le fichier .htaccess :

# OVH : régulariser les globals
SetEnv REGISTER_GLOBALS 0

Attention, il pourrait arriver (selon certains forums) que votre fichier soit mal encodé :
vérifier le nombre de caractères transmis, qu’il n’y a pas de CR-LF en trop....

Enfin, encore un point parfois oublié : si vous avez installé SPIP dans un sous-dossier du DocumentRoot de votre hébergement, il faudra peut-être ajouter/corriger l’instruction RewriteBase dans votre fichier .htaccess :

# pour SPIP dans un sous-dossier
### Configuration sous-repertoire  (ligne 25)
# Chez la plupart des hebergeurs il faut indiquer "RewriteBase /"
# sinon modifiez cette ligne

RewriteBase /spip/

Nota Bene : C’est aussi dans ce fichier .htaccess que vous pourrez rajouter la protection d’accès par code/mot de passe, en faisant référence à un fichier .htpasswd expliqué sur Contrib, mais attention à....

Mettre SPIP à Jour !
A l’inverse, si votre site (avec un ancien SPIP [8]) se met a vous afficher des messages "Deprecated".... c’est peut-être que votre hébergeur est passé en PHP5 sans vous prévenir : voyez à migrer en une version de SPIP à-jour, Mettre SPIP à jour : comment ? ne serait-ce que pour des raisons de sécurité !

Car SPIP et PHP évoluent tous deux, et les développeurs s’attacheront à utiliser les versions actualisées des outils Web.

Version de PHP trop récente 5.5 !
Inversement, un SPIP trop ancien ne sera plus compatible avec les dernières versions de PHP [9] : de nombreux changements de définitions de fonctions opérés dans les versions PHP 5.4 et 5.5 pourront provoquer des erreurs répétitives, allant jusqu’à empêcher toute installation de SPIP antérieure à .. 2.1.24.

Que faire dans le cas où votre hébergeur vous a "oublié" : faire une extraction/extraction locale de votre base de données au format SQL

 Page blanche

On l’a tous oublié une fois au moins : SPIP a besoin d’utiliser une bibliothèque graphique (au mieux GD2) pour traiter les images et logosImages et Multimédias ; sinon, c’est la page blanche...

  • soit le webmestre n’a pas configuré les Fonctions avancées,
  • soit le serveur Web ne comporte pas cette fonctionnalité : à tester par >?php phpinfo(); ou ./ecrire/?exec=infos !

Autre cas, après l’adjonction de nouveaux documents (des grosses images ?), un auteur se trouve confronté à la page blanche en interface privée, et donc impossible de modifier les articles concernés !

Spip calcule la taille maxi des images pour les traitements GD2, mais le serveur (ici Free) interrompt le calcul. Du coup en chargeant des images trop grosses [10], le système boucle en voulant calculer les vignettes.

La solution suggérée par un les "devs" de la "Team" : supprimer ces images de la base MySQL et en forçant à la main une taille maxi, définie dans mes_options.php :
define('_IMG_GD_MAX_PIXELS', 2000000);

- Dernier conseil que j’ai expérimenté et qui est intéressant.
Lorsqu’un site ne marche pas comme on le voudrait, ou qu’il a un comportement étrange...
Essayer de le lire sur un Ipad.
C’est souvent édifiant... et on a souvent plus (+) que sur un "bête écran" de PC
 [11]

Bug temporaire, si vous allez trop vite sur les MàJ, un bug des versions PHP 5.5.3 et 5.5.4 induit un bug des #SET de SPIP : monter en php 5.5.5 ou appliquer le patch prévu en SPIP 3.0.12..

 Accès interdit

Quelques suggestions évidentes, (pardon) évidement oubliées !
- avez-vous une sauvegarde (SQL ou dump SPIP) ? sinon, utilisez phpMyAdmin ou autre...
- votre mot de passe a changé (cf. ci-dessus),
- votre disque est plein (oui, votre hébergement se fait sur disque ! ) auriez-vous dépassé votre quota alloué ? bien possible si vos sauvegardes s’empilent, ou si les fichiers en cache se multiplient... Vérifiez dans votre accès spécifique à l’interface de votre hébergeur ; il faudra commencer avec FTP...

  • pouvez-vous effacer le cache serveur (./tmp/cache ?
  • effacez de trop nombreuses anciennes sauvegardes restées sur le serveur...
  • videz (toujours par FTP) le répertoire ./tmp/sessions/ : toutes les personnes connectées devront se reconnecter [12]...

Vous appliquerez le meme remède (disque plein !) lors d’un symptome "surprenant", du genre, votre site spip [13] qui annonce subitement :

vérifier les droits d’écriture


Le système a rencontré une erreur lors de l’écriture du fichier../tmp/sessions/1_96ab33fef915f2c7fc630bc992898865.php. Veuillez, en tant qu’administrateur du site, vérifier les droits d’écriture sur le répertoire tmp/sessions.

C’est typiquement un problème de Quota ou d’espace disque (en particulier chez OVH), voire de saturation temporaire du répertoire
En effet, spip voyant qu’il ne peut plus créer de fichiers fait remonter une erreur parlant de droits d’écriture mais ne vérifie pas forcément la cause exacte du problème.
Si l’erreur se répète, videz le cache ; mais ensuite, il y a peut-etre de vieux fichiers en trop sur votre serveur (en particulier des fichiers-documents joints dans ./IMG/ : installez le plugin Mediathèque, intégré en SPIP 3 !)

 Quand on a des problèmes

Pour faire face à la plupart des problèmes courants -si vous n’avez pas modifié le système- il faut souvent jouer du FTP,... pour :

  1. purger le cache [14] : rm -rf ./tmp/cache/*
  2. suspendre tous les plugins : en renommant le répertoire "./plugins"
  3. vérifier que vos squelettes ne sont pas en cause : en renommant le répertoire "./squelettes" [15]
  4. faire vérifier à SPIP sa base de données : opération proposée dans le menu "maintenance du Site" [16].
  5. vérifier la version de PHP [17] : créer un petit fichier texte contenant juste <?php phpinfo(); ?>
  6. vérifier la base de données (SPIP propose un outil intégré de réparation, encore qu’il faille être connecté en Admin/Webmestre pour l’activer..)
  7. controler le fonctionnement avec le .htaccess d’origine de SPIP : attention, il faut parfois y rajouter des lignes spécifiques pour certains hébergeurs [18].
  8. relancer la copie des fichiers, suite à une erreur de transfert passée inaperçue...

Au pire, il est toujours facile à ce moment-là de relancer l’installation automatique, sans perdre le contenu de la base de données active : noter le contenu du fichier /config/connect.php, puis effacer, et vous pourrez recréer un accès administrateur (et donc revalider les divers codes de connexion des auteurs).
Toutefois, certaines remontées de bugs de droits sur certains hébergeurs préconisent le FTP plutot que le spip_loader.

Enfin, s’il s’agit vraiment d’un bug....


Juste un petit mot, avant de vous laisser poursuivre votre recherche,
(et on espère bien, résoudre votre souci) : cette page [19], comme d’autres du site et sur SPIP, s’enrichit des retours d’expériences !
Alors, pensez a signaler sur la liste autant vos réussites que vos essais,
on complétera par ici, merci !


Merci de nous signaler les coquilles, imprécisions ou erreurs qui figureraient dans cette page.

[1Attention : une erreur d’inattention à la rédaction m’avait laissé écrire php_info(), fonction inconnue de PHP ; malgré 630 visites, il a fallu que par paresse je recopie le code pour constater l’erreur, et la corriger ? Voilà, c’est fait, désolé pour les 630 visiteurs qui sont restés "enduits avec l’erreur", j’espère qu’ils auront rectifié par eux-mêmes !
D’aucuns vous rappelleront qu’il faut toujours vérifier les informations lues sur Internet. ;-) !

[2Après information, vous effacerez ce fichier ! mesure de sécurité basique

[3Possible qu’un test de spip_loader.php v2.4.3 vous en prévienne directement !

[4Un grand classique de la liste : une fois par semaine au moins ; parmi les symptômes, absence de CSS en privé, page blanche..

[5Si vous aviez votre SPIP installé, il vous suffirait de taper dans l’URL de l’espace privé ./ecrire/?exec=info..

[6Vous pouvez même choisir la sous-version de PHP 5..

[7Certains indiquent que ce doit être la seule ligne du .htaccess chez Free !

[8On suppose quand meme que vous ne travaillez plus en php3 !!

[9normal qu’un SPIP 2.1.12 soit incompatible avec PHP 5.5.3 ; dernier cas rencontré, SPIP 2.1.20 avec un PHP 5.4.3 !

[10Image trop grosse ne signifie pas en poids
du fichier (même si c’est souvent le cas également), mais en hauteur *
largeur (en pixels). Donc, c’est avant tout la taille hauteur/largeur de
l’image qu’il faut regarder.

Vous pouvez avoir un gif ou un png ou jpg de 4000px * 4000px qui ne pèse
pratiquement RIEN (par exemple une image toute blanche), mais dans son
traitement, GD lui va décompresser tout ça pour en faire une image RAW
(en gros) qui, elle, aura bien un poids réel en fonction du nombre de pixels.

[11C’est ce qui m’a mis la "puce à l’oreille" comme on dit...

[12Cette purge ne semble pas toujorus bien fonctionner, malgré le petit génie en-charge..

[13Un Spip hébergé chez OVH qui fonctionne depuis quelques années, juste mis à jour : mais aucun rapport !

[14Outre les pages (articles et rubriques) en cache sous ./tmp/cache , il y a aussi les caches ./local/cache-js et ./locacl/cache-css, et les caches en .gz..

[15Attention, parfois il vous faudra aussi aller nettoyer dans les tables spip_metas, voire <spip_plugins des scorries de données laissées par le plugin récalcitrant...

[16bizarrement, c’est un remède souvent utile lors d’une restauration de BdD

[17SPIP 2+ necessite PHP 5 !

[18Spip prepare un fichier htaccess.txt à sa racine ; il faut souvent y rajouter des indications de RewriteBase et SetEnv PhP_Ver 5 avant de le renommer en .htaccess qui dénote un fichier caché sous Linux

[19D’ailleurs les articles de FAQ Débutants sont en passe d’être les plus lus...


Liens A2A visibles seulement pour les inscrits.
Liens visibles seulement pour les inscrits.

Article publié le 1er mars 2012, et actualisé en mars 2021 .

Répondre à cet article