Utiliser spip_loader

« spip_loader » est un script qui permet d’installer ou de mettre à jour votre site SPIP automatiquement sans avoir à transférer l’intégralité des fichiers par FTP.

Version actuelle du spip_loader : 6.1.6

Utiliser spip_loader pour installer automatiquement SPIP

spip_loader requiert au minimum PHP 5.6

  1. Vérifier la compatibilité PHP de votre hébergeur en suivant le tableau suivant : Versions maintenues
  2. Télécharger le script
  3. Placer ce fichier via SFTP dans le répertoire où vous voulez installer SPIP (en général à la racine de votre serveur ou dans le dossier contenant le site dans le cas d’une mise à jour).
    Attention : Le script étant compressé, si vous utilisez le protocole FTP, configurez votre logiciel client en mode binaire pour ce transfert [1].
  4. Appeler le script depuis votre navigateur https://www.adressedevotresite.net/spip_loader.php
  5. Le script vérifie si votre hébergement est compatible. Si c’est le cas, il liste toutes les versions que vous pouvez installer en vous proposant par défaut dans la dernière version stable.
  6. Choisir votre version et lancer l’installation automatique

Laisser le script en ligne
Une fois SPIP installé, vous pouvez laisser le script spip_loader.php sur le serveur en toute sécurité. Seuls les administrateurs autorisés et authentifiés pourront y accéder. L’avantage est de pouvoir, en cas d’alerte, mettre à jour votre SPIP très facilement.

Explications détaillées
Le spip_loader détecte les nouvelles versions le concernant et propose de se mettre à jour sans qu’on ait besoin de passer par un transfert FTP.

  • une liste déroulante permet de choisir la version à installer
  • si aucun SPIP n’est installé :
    • la liste déroulante sélectionne la dernière version stable
  • si un SPIP est déjà installé :
    • la liste déroulante se positionne par défaut sur la dernière version de la même branche que le site (si elle est encore référencée).
    • les fichiers obsolètes après la mise à jour (c’est à dire qui ont été retirés entre la version actuelle du site et la version installée) sont archivés dans un répertoire fichiers_obsoletes_{date}date est remplacée par la date et heure du jour. Ceci est fait uniquement sur les répertoires : ecrire, prive, squelettes-dist et plugins-dist (et l’ancien répertoire extensions).
    • corolairement au point précédant, si des plugins avaient été ajouté dans le répertoire plugins-dist/ (n’appartenant donc pas au zip fournit par SPIP), ils seront aussi déplacés dans ce répertoire de fichiers obsolètes, sauf s’ils contiennent un fichier .spip_loader_keep.
  • Il est possible d’utiliser un fichier de configuration pour gérer les define et les conserver d’une mise à jour à l’autre avec spip_loader_config.php

À partir de la version v5.2.0, spip_loader.php est un script compilé dans un format binaire phar compressé, qui inclue également les traductions. Si vous avez besoin d’utiliser des define, il faut donc créer un fichier de configuration spip_loader_config.php

À partir de la version 6.0.0, les constantes de personnalisation sont dépréciées. Le fichier de configuration spip_loader_config.php doit retourner un tableau, comme illustré dans l’exemple plus bas.

Utiliser spip_loader pour effectuer une mise à jour

Pour mettre à jour un SPIP, effectuer la même procédure :

  1. Avant d’appeler le script, il faudra au préalable vous identifier dans l’espace privé de SPIP.
  2. Placer le script s’il n’est pas encore sur votre serveur
  3. Appeler le script depuis votre navigateur https://www.monsite.tld/spip_loader.php
  4. Choisir la version que vous voulez installer
  5. Lancer la procédure d’installation automatique

Personnaliser les auteurs autorisés à effectuer une mise à jour

Par défaut, seul l’auteur n°1 peut effectuer cette mise à jour.

Si vous voulez ajouter d’autres auteurs, il faut créer un fichier de configuration spip_loader_config.php (à la racine) qui sera inclus automatiquement. Ainsi vos paramètres sont préservés lors d’une mise à jour de spip_loader.

Exemple de fichier spip_loader_config.php :

<?php

return [
   'authorized.users' => [5, 6, 8],
];

Erreurs fréquemment rencontrées

Erreur rencontréeSolution
SHA512 signature could not be verified : broken signature.. Vous n’avez pas bien transféré le spip_loader.php sur votre serveur : il faut transférer le fichier en mode Binaire depuis votre logiciel de FTP. Cf. #Utiliser-spip_loader-pour-installe...
403 - File Access Denied Souvent il y a une barre oblique/ à la fin de monsite/spip_loader.php héritée de précédents usages. Il suffit souvent de supprimer cette barre oblique pour supprimer l’erreur et que spip_loader.php fasse son travail.
Dans certains cas résistants il faut supprimer l’historique de la page dans le navigateur
Error 403 You are not authorized to view this page (install&action impossibles) Vérifier que le mod_rewrite est activé
GuzzleHttp requires cURL, the allow_url_fopen ini setting, or a custom HTTP handler. Votre serveur n’autorise pas les chargements de fichiers externes. Il faut modifier votre php.ini avec l’instruction allow_url_fopen = On
Deprecated : Usage of ’_SPIP_LOADER_UPDATE_AUTEURS’ Modifiez comme indiqué le fichier spip_loader_config.php situé à la racine de votre site.

Que faire en cas d’échec ?

Spip_loader peut échouer à charger des fichiers. En général, il s’agit de problèmes de droits sur le serveur ou de configuration de PHP. Dans ce cas, il faudra installer votre SPIP

  • soit en transférant les fichiers manuellement par FTP
  • soit en utilisant GIT (utilisateurs avertis)

Notes techniques

Les sources et l’espace de développement du spip_loader
https://git.spip.net/spip-contrib-outils/spip_loader

Notes

Auteur erational Publié le : Mis à jour : 06/02/24

Traductions : English, français, Nederlands, Português, українська