Aller au contenu
Agencei
Urgence : élevée

Erreur 500 PrestaShop : afficher la vraie erreur et rétablir la boutique

Une erreur 500 sur PrestaShop signifie que le serveur a interrompu l'exécution de PHP avant de produire la page. La boutique, le back-office ou une seule page (panier, paiement, fiche produit) deviennent inaccessibles et, comme le message est générique, il faut aller chercher la cause réelle dans le mode debug ou les journaux.

Sur PrestaShop, cette erreur survient le plus souvent après l'installation ou la mise à jour d'un module, une mise à jour du cœur, un changement de version de PHP ou une migration de serveur. Elle peut aussi venir de permissions incorrectes, d'un cache corrompu ou d'un fichier .htaccess défaillant.

Cette page vous explique comment afficher le message exact, quelles sont les causes les plus fréquentes selon la version (1.6, 1.7, 8), comment les corriger et à quel moment il est préférable de faire intervenir un professionnel pour limiter la perte de ventes.

Symptômes typiques

  • Page blanche ou « HTTP ERROR 500 » sur toute la boutique ou sur le back-office uniquement.
  • Message « Oups ! Une erreur s'est produite. Essayez de rafraîchir la page. » sans autre détail, ou page d'erreur Symfony sur PrestaShop 1.7 et 8.
  • L'erreur apparaît juste après l'installation, la mise à jour ou la configuration d'un module.
  • L'erreur apparaît après un changement de version de PHP chez l'hébergeur ou une migration de serveur.
  • Seule une étape précise échoue : validation du panier, choix du transporteur, paiement, ou une page du back-office.
  • Le fichier var/logs (1.7, 8) ou app/logs contient de nouvelles entrées d'erreur, ou l'error_log du serveur grossit.

Causes possibles

Module incompatible ou défectueux

Un module écrit pour une autre version de PrestaShop ou de PHP, une surcharge (override) en conflit avec une autre, ou un module mal désinstallé qui laisse des hooks orphelins.

Version de PHP incompatible

Chaque version de PrestaShop supporte une plage de versions PHP précise. PrestaShop 1.6 ne fonctionne pas correctement au-delà de PHP 7.1 ; 1.7 et 8 ont leurs propres contraintes. Une montée de PHP sans vérification provoque des erreurs fatales.

Mise à jour incomplète du cœur

Un upgrade interrompu (module 1-click upgrade, autoupgrade) laisse des fichiers d'anciennes versions, un schéma de base de données partiel ou un cache obsolète.

Permissions et propriétaire de fichiers

Après un transfert par FTP ou une migration, des dossiers var/cache, img ou config non accessibles en écriture par PHP bloquent la boutique.

Cache corrompu

Un cache Smarty ou Symfony obsolète après une mise à jour ou un changement de PHP renvoie des erreurs de classes introuvables.

Mémoire ou délai d'exécution insuffisants

Import de catalogue, génération de miniatures ou modules lourds dépassent memory_limit ou max_execution_time.

.htaccess ou configuration serveur

Réécritures d'URL erronées, règles ajoutées par un module, ou modules Apache manquants (mod_rewrite) après une migration.

Contrôles à effectuer

  1. 1

    Activer le mode debug

    Dans config/defines.inc.php, passez _PS_MODE_DEV_ à true (ou activez le mode debug dans Paramètres avancés > Performance si le back-office est accessible). L'erreur complète, avec le fichier et la ligne, s'affiche à la place de la page blanche. Désactivez-le dès que le diagnostic est terminé.

  2. 2

    Lire les journaux PrestaShop

    PrestaShop 1.7 et 8 écrivent dans var/logs (dev.log, prod.log) ; 1.6 dans le dossier log. Consultez aussi Paramètres avancés > Logs dans le back-office.

  3. 3

    Consulter les journaux du serveur

    Le fichier error_log à la racine, les logs Apache ou Nginx (/var/log/apache2/error.log, /var/log/nginx/error.log) et le journal php-fpm contiennent la ligne « PHP Fatal error » qui désigne le fichier fautif.

  4. 4

    Vider le cache

    Supprimez le contenu de var/cache/prod et var/cache/dev (1.7, 8) ou cache/smarty/compile et cache/smarty/cache (1.6). Un cache obsolète est une cause fréquente après une mise à jour.

  5. 5

    Vérifier la version de PHP

    Comparez la version active (php -v ou panneau de l'hébergeur) avec la compatibilité de votre version de PrestaShop et de vos modules. Revenez temporairement à la version précédente pour confirmer.

  6. 6

    Contrôler les permissions

    En SSH, ls -la sur var, img, config, modules et themes : les dossiers doivent appartenir à l'utilisateur PHP et être accessibles en écriture là où PrestaShop l'exige.

  7. 7

    Isoler le module coupable

    Sans accès au back-office, renommez le dossier du dernier module installé dans modules/ ou désactivez-le en base (ps_module, colonne active) après sauvegarde.

Solutions

Désactiver ou corriger le module fautif

Désactivez le module concerné, mettez-le à jour dans une version compatible ou remplacez-le. Supprimez les surcharges (override) qu'il a laissées dans le dossier override si elles entrent en conflit.

Aligner la version de PHP

Choisissez la version de PHP compatible avec votre PrestaShop et vos modules, et planifiez une mise à jour de PrestaShop si vous devez impérativement passer sur une version de PHP récente.

Terminer proprement la mise à jour

Restaurez la sauvegarde pré-upgrade et relancez la mise à jour sur une copie, ou complétez manuellement les fichiers et le schéma de base de données manquants.

Rétablir permissions et .htaccess

Corrigez propriétaire et droits, puis régénérez le .htaccess depuis Préférences > SEO & URLs ou Paramètres de la boutique > Trafic & SEO.

Augmenter les limites PHP

memory_limit, max_execution_time et upload_max_filesize adaptés à la boutique, dans php.ini ou .user.ini selon l'hébergeur.

Restaurer une sauvegarde

Si aucune correction rapide n'aboutit et que la boutique perd des ventes, restaurez la dernière sauvegarde saine puis analysez la cause sur une copie.

Quand contacter un professionnel ?

  • L'erreur cite une classe du cœur, une surcharge ou un module sur mesure que vous ne pouvez pas corriger.
  • L'erreur touche le paiement ou la validation de commande : chaque heure représente des ventes perdues.
  • La boutique est bloquée au milieu d'une mise à jour et vous ne savez pas si la base de données est cohérente.
  • Vous n'avez pas de sauvegarde récente ni d'environnement de test pour reproduire l'erreur.
  • Le problème est apparu après une migration de serveur et implique la configuration Apache, Nginx ou PHP-FPM.

L'intervention proposée par Agencei

  1. 1

    Diagnostic

    Activation contrôlée du mode debug, lecture des journaux PrestaShop et serveur, identification du module, de la surcharge ou de la configuration en cause.

  2. 2

    Remise en ligne

    Désactivation ou correction du composant fautif, vidage des caches, ajustement de PHP ou du serveur, avec sauvegarde préalable de la boutique.

  3. 3

    Correction durable

    Mise à jour ou remplacement du module, correction du code sur mesure, finalisation de la mise à jour du cœur, régénération du .htaccess.

  4. 4

    Tests de la boutique

    Parcours complet : navigation, recherche, panier, transporteurs, paiement, compte client, back-office, e-mails de commande.

  5. 5

    Prévention

    Mise en place d'une préproduction, de sauvegardes automatiques et d'une procédure de mise à jour testée pour les modules et le cœur.

Questions fréquentes

Comment voir le message d'erreur exact sur PrestaShop ?

Activez _PS_MODE_DEV_ dans config/defines.inc.php ou le mode debug dans le back-office. L'erreur complète s'affiche à l'écran. Les journaux dans var/logs et l'error_log du serveur contiennent la même information sans exposer les visiteurs.

Puis-je laisser le mode debug activé ?

Non. Il affiche des informations sensibles (chemins, requêtes SQL) et ralentit la boutique. Désactivez-le dès que le diagnostic est terminé.

L'erreur 500 vient-elle forcément du dernier module installé ?

C'est le suspect le plus probable, mais un changement de version de PHP par l'hébergeur, un cache obsolète ou une permission modifiée par une sauvegarde peuvent survenir au même moment. Les journaux tranchent.

Pourquoi PHP 8 casse-t-il ma boutique 1.6 ?

PrestaShop 1.6 utilise des fonctions et des syntaxes supprimées dans les versions récentes de PHP. Il faut soit rester sur une version de PHP compatible, soit migrer vers PrestaShop 8, ce qui est généralement la meilleure option à moyen terme.

Combien de temps pour corriger une erreur 500 PrestaShop ?

Lorsque la cause est un module ou le cache, souvent moins d'une heure. Une mise à jour interrompue ou un conflit de surcharges peuvent demander plusieurs heures.

Parlez-nous de votre projet

Décrivez votre besoin en quelques lignes : nous revenons vers vous avec une première analyse et les prochaines étapes.