Transférer le fichier en binaire
Première chose à faire (si j’avais su... ça m’aurait évité de faire tout ce qui suit lol !) c’est de transférer le fichier spip_loader.php en mode binaire.
Pourquoi cette erreur survient-elle ?
Le fichier spip_loader.php est essentiel pour le processus de mise à jour de SPIP, mais il est crucial qu’il soit transféré correctement depuis votre machine locale vers le serveur. Si le fichier est transféré en **mode ASCII**, ce dernier risque de subir des modifications dans son format, entraînant des erreurs d’exécution, notamment l’erreur 500 ou des messages d’erreur dans les logs tels que **"SHA512 signature could not be verified"** ou **"manifest cannot be larger than 100 MB"**.
Le mode ASCII, destiné principalement aux fichiers texte, peut altérer la structure du fichier PHP, le rendant inutilisable, car certaines données binaires peuvent être corrompues ou modifiées pendant le transfert.
La solution : transférer en mode binaire
Pour résoudre ce problème, il suffit de transférer le fichier spip_loader.php en **mode binaire**. Cela garantit que le fichier sera transféré exactement tel quel, sans aucune altération de son contenu.
Voici les étapes à suivre :
1. Ouvrir votre client FTP : Utilisez un client FTP comme FileZilla, Cyberduck, ou tout autre logiciel de votre choix.
2. Sélectionner le mode binaire : Avant de transférer le fichier, vérifiez que votre client FTP est configuré pour transférer les fichiers en mode binaire. Dans FileZilla, par exemple, cela peut se faire en sélectionnant l’option "Binaire" dans le menu "Mode de transfert", sous "Transfert" dans la barre de menu.
3. Transférer le fichier : Téléchargez le fichier spip_loader.php sur le serveur. Assurez-vous qu’il est bien placé à la racine de votre site SPIP.
4. Vérifier le transfert : Après le transfert, essayez à nouveau d’accéder à votre page de mise à jour de SPIP. L’erreur 500 devrait être résolue, et le processus de mise à jour devrait se dérouler normalement.
Si ce n’est pas le cas, autres solutions à explorer
Si le problème persiste même après avoir transféré le fichier en mode binaire, voici quelques vérifications supplémentaires à effectuer :
1. Vérifier les extensions PHP requises
Assurez-vous que votre serveur dispose des extensions PHP nécessaires pour faire fonctionner SPIP, comme phar, json, xml, gd, etc. Voici un fichier php.ini que vous pouvez créer ou modifier pour activer les extensions nécessaires et désactiver celles qui causent des conflits :
Cela permet de s’assurer que les extensions nécessaires sont bien activées sans entraîner de doublons dans la configuration, ce qui pourrait provoquer des erreurs supplémentaires.
2. Vérifier le fichier .htaccess
Le fichier .htaccess peut également être utilisé pour ajuster certains paramètres PHP. Voici une configuration minimale qui peut vous aider à résoudre les problèmes liés à la mise à jour de SPIP :
Cette configuration dans le .htaccess peut désactiver la restriction de lecture seule de phar et afficher les erreurs PHP pour mieux comprendre ce qui se passe.
3. Vérifier les permissions des fichiers
Si le fichier spip_loader.php est correctement transféré mais que vous obtenez toujours des erreurs, il est possible que les permissions de fichier sur le serveur ne soient pas adéquates. Pour cela, assurez-vous que les permissions sont bien définies (généralement 644 pour les fichiers PHP).
4. Vérifier les logs d’erreur
Si le problème persiste malgré ces actions, examinez les logs d’erreur de votre serveur. Cela pourrait fournir des informations supplémentaires pour identifier la cause exacte du problème.
Conclusion
Le transfert du fichier spip_loader.php en mode binaire est une étape clé pour résoudre les erreurs 500 liées à la mise à jour de SPIP. Cependant, il existe plusieurs autres solutions que vous pouvez essayer, comme ajuster les extensions PHP, configurer correctement le fichier .htaccess, ou vérifier les permissions des fichiers. En suivant ces étapes simples, vous devriez être en mesure de résoudre rapidement ce problème courant.
N’hésitez pas à consulter la documentation officielle de SPIP ou à demander de l’aide sur les forums dédiés et plus précisément cette page concernant ce problème, tout y est expliqué : https://www.spip.net/fr_article5705.html#Que-faire-en-cas-d-echec