De nouvelles versions (au format phar)

Spip_loader

La mise en place d’un site Web [1] pré-suppose le chargement-dépôt par FTP des fichiers du CMS sur votre espacé hébergé...
Si votre hébergeur ne propose pas une installation automatique de SPIP [2], vous pouvez simplement charger et lancer un seul fichier : l’installateur automatique spip_loader.php à prendre sur la page officielle de download [3]. Ce fichier est d’usage ’sensible’ donc à réserver au Webmestre (avec acccès FTP c’est mieux !), et à effacer après usage.

Attention à ne pas changer à l’improviste de branche SPIP de façon involontaire : lisez les instructions ci-dessous, et sur le lien de download.

Avant usage, mettez à jour votre version de spip_loader (au risque d’une page blanche )... et voyez son nouveau spip_loader_config.php  !
Et vérifiez les pré-requis de versions du serveur pour la version de SPIP voulue [4] ! Enfin attention à quelques interdits...

Article publié le 21 mai 2012, et actualisé en juin 2024

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

N.B. : cet outil (avec son article rappelant l’historique) a beaucoup évolué depuis les origines ; le fichier source (en version 6.x actuelle en 2024) est désormais au format compressé, et vous pouvez enregistRer certaines options de paramétrage, dans son fichier annexe spip_loader_config.php à créer spip_loader_config.php, en particulier définir des webmestres autres que l’auteur n°1..

A recharger sur https://www.spip.net/spip-dev/INSTALL/spip_loader.php.

 Installateur automatique

L’installateur automatique de SPIP [5] est une facilité supplémentaire pour la première initialisation d’un SPIP (comme pour une mise-à-jour d’ailleurs [6]...).

En effet, installer le core de SPIP (quelques milliers de fichiers à transférer par FTP depuis votre poste local vers le serveur de votre hébergeur) représente un certain temps de transfert, d’autant qu’il a déjà fallu le rapatrier depuis les serveurs d’origine https://files.spip.net/archives ;

et si le transfert se faisait directement, de serveur à serveur ?

C’est la démarche automatisée par ce simple script PHP à télécharger depuis la page SPIP de download [7] , un seul fichier à transférer par FTP dans le dossier du serveur hébergeur, qui sera la racine de votre SPIP et à "activer", c’est-à-dire demander son accès au serveur, en donnant dans votre navigateur, l’URL de ce fichier.

spip_loader v6
Ici vous utilisez déjà la dernière version du Chargeur de SPIP

Le script charge automatiquement tout les fichiers de SPIP, y compris lécran de sécurité, et assure aussi la création automatique des dossiers répertoires de téléchargements complémentaires :

  • ./lib
  • ./plugins
  • ./plugins/auto
  • ./squelettes/ (dans les dernières versions)
    Par contre les sous-répertoires de ce dossier (indispensables pour utiliser Zcore) restent à créer par l’utilisateur....

Attention ! Vérifiez bien :
- les Pre-requis Techniques en particulier la version de PHP avec openssl ; trop ancienne : le spip_loader vous répondra "Chargement impossible" !
Ah, oui ! Parce qu’il comporte un test de version PHP mini [8].
- le (dé)blocage d’un parefeu !
- la version de PHP sur votre hébergeur [9]
- les dernières versions de spip_loader (6.x..y) à utiliser !
mais sachez que ce programme se met à jour tout seul (enfin... sur votre commande) avec la dernière version [10] ...
- le choix de la branche de version maintenue SPIP 4.2 à installer (voir ci-dessous)
- Le niveau de version de la branche de SPIP est 4.2.16, le ".16" signifie "release 16"(ou indice de version dans la branche), comme il y a des "2.1.x" (branche 2.1), les obsolètes "2.0.x" (branche 2.0) ou 1.9.x (branche 1.9).... et désormais les 3.1 et 3.2.x, bientôt la 3.3-dev !

Nota Bene  : Il est fortement déconseillé d’utiliser spip_loader si vous n’avez plus d’accès direct aux fichiers (par ftp, ssh, ...) pour pouvoir réparer a minima en cas de problème ...

Le spip_loader est désormais distribué à l’adresse suivante https://get.spip.net/ sous forme d’un fichier au format binaire phar. Si vous avez besoin de personnaliser l’installation en définissant des constantes, il vous faut créer un fichier de configuration spip_loader_config.php (cf https://www.spip.net/fr_article5705.html).

 Des erreurs ? les risques de blocage ?

Avec le temps spip_loader est devenu une machine performante, mais parfois... un peu sensible ! Quelques pistes d’expérience
- version de spip_loader "antédilivienne" : toujours commencer par recharger un spip_loader récent, fonctionnalité désormais automatisée
- version de branche SPIP non maintenue :
vérifier la configuration dans spip_loader_config.php
- restriction d’utilisation : SL contrôle la connexion de l’administrateur webmestre avant de l’autoriser à lancer une mise à jour :
se connecter en webmestre, et si n°auteur>1 se déclarer dans spip_loader_config.php
- Ecran blanc :

  • mauvaise version de PHP
  • trop ancienne version de spip_loader : mettre à jour par FTP
  • fichier .json incorrect ou inadapté : à effacer par FTP avant de relancer
  • accès distant aux serveurs SPIP impossible (hélas, cela arrive, rarement !
    Bravo SPIP

Les informations ci-après sont parfois obsolètes, avec les améliorations apportées sur SL !

 Vérifier la version SPIP à charger

Voyez aussi quelle version de SPIP vous souhaitez : en cette période de migration et de changements tant PHP que SPIP, on peut avoir quelques surprises...
Si vous voulez vérifier/changer, c’est pas difficile !
Ouvrez le fichier spip_list.json dans un éditeur de texte (cf. Editeurs du WebMestre PC), et regarder la liste des versions affichées : la modification pour recharger aussi une version 3.2 n’est pas trop difficile à construire par analogie : exemple.
{"api":2,"versions":{"dev":"spip\/dev\/spip-master.zip","4.2.0":"spip\/archives\/spip-v4.2.0.zip","4.1.7":"spip\/archives\/spip-v4.1.7.zip","4.0.9":"spip\/archives\/spip-v4.0.9.zip","3.2.17":"spip\/archives\/spip-v3.2.17.zip"},"default_branch":"4.2","requirements":{"php":{"master":"7.4.0","4.2":"7.4.0","4.1":"7.4.0","4.0":"7.3.0","3.2":"5.4.0"}}}

Renvoyez par FTP votre fichier modifié, et protégez-le en écriture [11] sur votre serveur, et... gogogo !

Attention : une utilisation rapide de spip_loader après sa dernière modification en 5.3) m’a carrément planté un SPIP installé, configuré en SPIP 3.2 dans le fichier de config...
La 3.2 n’étant plus maintenue il m’a écrasé la version SPIP 3.2.16, puis commencé à modifier la BdD quand j’ai voulu travailler : la cata !!!!

 Rappel des pièges possibles ?

- le plus gênant : se tromper de version (voir ci-dessus !)
- le plus piégeant : utiliser un PHP trop ancien (le message dit juste "Impossible...")
- le plus récent (Oct.2018) : prendre un php trop récent [12]
- le plus tordu : vérifier l’activation de l’extension php_openssl.dll dans php.ini [13]
- le plus fréquent : encore des problèmes sur les droits /répertoires du serveur
- le plus bête : omettre l’extension .php (ou modifier le nom du script [14] )
- le plus oublié : avoir saturé son espace disque
- le plus c...ensuré : "Ce site n’est pas encore configuré"... alors que vous voulez juste relancer spip_loader.php pour mettre une autre branche. Effacez tout avec FTP...
- le plus actuel [15] : passer en PHP 5 (voir Des cas..... résolus ! PHP5, même pour spip_loader ! )
- le plus normal : le rechargement fonctionne-t-il avec votre version d’IE ?
- le plus improbable : s’il y avait un souci avec IPv6 ?
- le plus drastique : certains hébergeurs brident tout téléchargement hors FTP,
- le plus caché : parfois des soucis d’op-cache perturbent certains scripts opérant la BDD,
- le plus vicieux : et si vous étiez bloqué par une ré-écriture simultanée du Zip sur le serveur d’origine... recommencez à l’URL initiale spip_loader.php?(sans rien derrière.) !
Par exemple, si vous avez fait une erreur de frappe dans l’appel du script spip_loader, voilà ce qu’affichera votre navigateur :

Spip_loader.php NotFound
L’adresse URL que vous avez indiquée ne correspond pas à un fichier chargé sur le serveur : vérifiez l’orthographe...

 Encore quelques cas de blocage rencontrés

A l’occasion du passage en SPIP 4.o sur divers sites (déjà en spip-4.o-dev ou encore en spip-v3.2.11) petit florilège de soucis à contourner :
- d’abord être dans une version suffisante de PHP
sinon spip_loader refusera de fonctionner
- charger une version très récente du spip_loader.php
sinon vous risquez de retomber sur une page blanche incompréhensible, voire si vous avez de la chance avec un vieux php 5.6, un beau message d’erreur Une erreur déclanchée par un vieux Spip_LOADER
- effacer les divers fichiers de configuration liés à spip_loader
sinon vous risquez de partir sur la version de dev suivante (qui change la BDD)
- mettre à jour un maximum de plugins aux dernières versions compatibles,
avant de tenter la montée de version de SPIP
- contrôler la compatibilité totale des plugins (en installant Verifier plugins) par https://contrib.spip.net/4882
- vérifier la configuration éventuelle de spip_loader_config.php
- vider le cache SPIP [16] juste avant de faire la mise-à-jour, le désactiver et recommencer : il y a parfois des relents bizarres...
- après rechargement, passer sur la page de gestion des plugins et vérifier leur actualisation (surtout dans les plugins Inactifs et incompatibles, à Montrer..
- recharger ceux-ci par Téléchargement d’une URL d’archive (liens sur Contrib ou Plugins)

 Sécuriser les SPIP installés

Cette opération de mise-à-jour de SPIP est recommandée pour suivre les mises-à-jour de SPIP, surtout les mises-à-jour de sécurité (il actualise aussi l’écran de sécurité) ; mais cela peut être aussi générateur de problèmes, lors d’une montée importante en termes de modifications de tables, et/ou de compatibilité avec les plugins. Il est donc recommandé de d’abord valider une montée de version sur une copie du site de production, avec les mêmes contextes d’environnement PHP ; d’ailleurs le script vous propose de rester dans la même branche de SPIP, mais avec la dernière version à jour, y compris le dernier écran de sécurité, même sur une ancienne branche.

Mais il reste fortement déconseillé de laisser ce script accessible dans votre répertoire de travail : en effet, la protection décrite si dessous ne peut être garantie ; elle n’est d’ailleurs pas prise en charge par l’écran de sécurité, et les manipulations du script sont potentiellement dangereuses : effacez ce script après usage !

 A ne pas oublier !

Ce script spip_loader fait beaucoup de choses, mais il vous faudra néanmoins penser à quelques opérations complémentaires à faire par FTP en même temps que vous téléchargez le script à la racine de votre site internet,par exemple créer le fichier de configuration complémentaire du Spip_loader

Il faut(x !)/fallait encore créer manuellement [17] les dossiers répertoires de personnalisation :

  • ./lib
  • ./plugins
  • ./plugins/auto

Par contre le script n’assurre toujours pas la création directe d’un dossier de personnalisation des squelettes (non plus que SkelEditor /à vérifier ?/ :

  • ./squelettes
    Et ensuite, vous pourriez charger les plugins voulus... mais il est préférable de les faire charger par SVP : ./ecrire/?exec=admin_plugin, voire désormais -pour les experts- charger les modifications de SPIP avec Composer et/ou SPIP-Cli !

 Quelques interdits !

Le fonctionnement de spip_loader (comme quelques autres scripts/fonctionnalités de SPIP liées à SVP, utilise des facilités parfois jugées sensibles [18] pour la sécurité de leurs clients par certains hébergeurs : ils brident alors PHP, et donc ’on sait’ que :
- Infomaniak n’accepte pas spip_loader nativement, mais SPIP Arno* nous fournit la réponse :

pas de souci. Il faut aller dans l’espace de gestion de son site pour « régler les limites de PHP », et « allow_url_fopen ». Par défaut c’est bloqué, et donc ça bloque spip_loader et les mises à jour de plugins.


- les pages perso de Free présentent de nombreuses limitations...

Le chargement du Spip_loader


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

[1SPIP n’est pas une exception... il faut bien "booter", c’est-à-dire démarrer un programme initial !

[2Et même si celle-ci est proposée : il peut s’agir d’une version trop ancienne... toutefois cette astuce vous permet d’utiliser une base de données gartuitement !

[3Lorsque le texte source du spip_loader.php s’affiche sur l’écran de votre navigateur, enregistrez tout le contenu du fichier dans un nouveau fichier, auquel vous donnerez exactement le nom de spip_loader.php ; attention, ce fichier de source PHP ne devra pas être modifié par un editeur ou traitement de texte !
Vous devrez ensuite déposer (par FTP) une copie de ce(s) fichier(s) dans le dossier racine de votre /nouveau ou futur/ site Web.

[4Même si spip_loader contrôle les versions minimum de PHP pour SPIP, il ne valide pas forcement les Pre-requis Techniques maxis contraints...

[5"Chargeur de SPIP" se traduit par ’spip_loader’ !

[6Une protection interne réserve cet traitement au seul Webmestre n°1 , sauf ajouts dans spip_loader_config.php  !

[7Vous récupérerez un fichier .txt en texte, donc non interprété par le serveur ; à vous de le renommer en suffixe .php avant de le transférer sur votre espace SPIP, sans oublier éventuellement de corriger les _SPIP_LOADER_UPDATE_AUTEURS autorisés !

[8Pas de test de version PHP maxi pour votre vieux SPIP : mettez à jour le PHP et le SPIP, vous gagnerez, en performances, et en fonctionnalités !

[9Les dernières versions de Spip s’orientent vers un PHP 8 !

[10Vous pourrez suivre les modifications du source en consultant ses révisions !

[11Ne modifiez pas le nom du script : il se ré-utilisera lui-même pour finaliser correctement le chargement !

[12SPIP 3.2 n’est pas compatible avec PHP 7.2 cf. https://core.spip.net/issues/4138 !

[13Merci Francky2 https://core.spip.net/issues/4194 en particulier dans EasyPHP !

[14Le script de chargement automatique spip_loader.php est récursif, ce qui exprime qu’il se ré-appelle lui-même automatiquement en-cours de traitement ; son nom de fichier sur votre serveur doit donc rester inchangé.

[15désolé, c’etait vrai en 2012-2013 ! Depuis... voir plus haut !

[16Vous pouvez vider le cache par FTP : effacer ./tymp/cache !

[17Dernière minute 31/10/2018 : une proposition de Jack31 imagine ([[C’est fait depuis Spip_Loader 3.0.5 ! La création de ./plugins /auto et ./lib, de rajouter ligne 499 la création automatique de ces dossiers...

[19SPIP n’est pas une exception... il faut bien "booter", c’est-à-dire démarrer un programme initial !

[20Et même si celle-ci est proposée : il peut s’agir d’une version trop ancienne... toutefois cette astuce vous permet d’utiliser une base de données gartuitement !

[21Lorsque le texte source du spip_loader.php s’affiche sur l’écran de votre navigateur, enregistrez tout le contenu du fichier dans un nouveau fichier, auquel vous donnerez exactement le nom de spip_loader.php ; attention, ce fichier de source PHP ne devra pas être modifié par un editeur ou traitement de texte !
Vous devrez ensuite déposer (par FTP) une copie de ce(s) fichier(s) dans le dossier racine de votre /nouveau ou futur/ site Web.

[22Même si spip_loader contrôle les versions minimum de PHP pour SPIP, il ne valide pas forcement les Pre-requis Techniques maxis contraints...


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

Article publié le 21 mai 2012, et actualisé en juin 2024 .

Répondre à cet article