Erreur 500 sur votre PrestaShop ?
on la corrige aujourd'hui.
Diagnostic et correction d'erreur 500 PrestaShop par un expert certifié
HTTP ERROR 500, Internal Server Error, page blanche avec un 500 en en-tête :
votre boutique est visible mais inutilisable. On lit les logs, on identifie la cause racine,
on remet le site en ligne en moins de 2 h dans 9 cas sur 10.
Les 9 visages de l'erreur 500 PrestaShop
Décrivez ce que vous voyez. Plus c'est précis, plus le diagnostic est rapide.
HTTP ERROR 500
This page isn't working
→ Erreur serveur fatale
500 Internal Server Error
The server encountered an
internal error...
→ Page Apache par défaut
500 Internal Server Error
nginx/1.x.x
→ PHP-FPM down ou crashé
Fatal error: Allowed memory
size of 134217728 bytes
exhausted
→ Memory limit dépassé
PHP Fatal error: Uncaught
Error: Class "XYZ" not
found in /classes/...
→ Override cassé / classe manquante
PHP Fatal error: Uncaught
Exception in /modules/
monmodule/hook.php:42
→ Module défaillant
mod_fcgid: HTTP_INTERNAL_
SERVER_ERROR error,
premature end of script
→ Timeout PHP-CGI
Invalid command 'RewriteEngine',
perhaps misspelled or
defined by a module not
included...
→ Régénération .htaccess
RuntimeException:
The service "..." has a
dependency on a non-existent
service "..."
→ Container Symfony cassé
Les 7 causes les plus fréquentes d'une 500 PrestaShop
Identifiées sur plus de 80 interventions d'urgence. Une seule peut être présente, ou plusieurs cumulées.
memory_limit PHP
Le plus fréquent (≈ 35 % des cas). Provoqué par un hook gourmand sur actionProductSave qui charge toutes les combinaisons en mémoire, une migration Doctrine qui boucle, ou un export catalogue trop volumineux. Visible dans error_log avec Allowed memory size of X bytes exhausted. Fix : augmenter memory_limit à 512M voire 1024M dans php-fpm pool ou php.ini, mais surtout identifier le hook coupable.
.htaccess corrompu ou mal régénéré
≈ 20 % des cas. Survient après une régénération depuis le BO (Préférences → SEO & URL), une migration de domaine, ou une mise à jour PrestaShop qui a écrasé des directives custom (compression, redirections). Erreur Apache typique : Invalid command 'RewriteEngine'. Fix : comparaison avec la version git précédente, restauration des règles custom, vérification de la présence du module mod_rewrite.
≈ 15 %. Après une mise à jour PrestaShop, vos overrides dans /override/classes/ et /override/controllers/ peuvent référencer des méthodes qui ont changé de signature ou disparu. PHP balance alors Fatal error: Class "X" not found ou Cannot redeclare method Y. Fix : désactiver temporairement /override/ en le renommant, identifier le fichier coupable, le porter sur la nouvelle version.
≈ 12 %. Un module conçu pour PrestaShop 1.7 qui n'a jamais été audité contre PHP 8.x, ou un module externe qui n'a pas suivi une montée 1.7 → 8.x. PHP refuse alors un type strict (TypeError) ou une syntaxe deprecated. Fix : désactivation du module en SQL (UPDATE ps_module SET active=0 WHERE name='X') ou en supprimant le dossier, identification du correctif côté éditeur, déploiement d'un patch local si besoin.
≈ 8 %. Survient typiquement après une restauration FTP brutale, ou un transfert d'hébergeur. PHP-FPM ne peut plus lire /var/cache/prod/, écrire dans /var/logs/, ou exécuter un script CLI. Apache log : Permission denied. Fix : chmod -R 755 dirs / 644 files, chown -R www-data:www-data sur l'arborescence sensible.
≈ 6 %. Spécifique aux versions modernes. Un module qui déclare un service avec une dépendance qui n'existe pas, ou un services.yml mal nommé. PrestaShop renvoie une 500 dès le bootstrap, avant même de toucher Smarty. Fix : vider /var/cache/prod/, lancer php bin/console cache:clear, inspecter services.yml du module suspect, déclarer le service manquant ou supprimer la dépendance fantôme.
≈ 4 %. OPCache qui sert encore du code obsolète après un déploiement, display_errors=Off qui masque la vraie cause, max_execution_time trop bas qui tue les scripts longs (import CSV, génération de sitemap). Fix : redémarrage de PHP-FPM, audit du phpinfo(), alignement de php.ini CLI vs FPM.
Chronologie d'une 500 corrigée en 1 h 47
Cas réel · Boutique cosmétiques bio · PrestaShop 8.1.5 · Hébergement OVH Performance · Avril 2026.
tail -f /var/log/apache2/error.log en SSH. Première erreur visible : PHP Fatal error: Allowed memory size of 268435456 bytes exhausted in /modules/xfilters/classes/FilterCollection.php on line 217.
xfilters chargeait toutes les combinaisons de tous les produits en mémoire pour calculer ses agrégats. Sur 2 800 produits × 12 combinaisons en moyenne, ≈ 33 600 combinaisons d'un coup → memory_limit explose.
FilterCollection.php : lecture des combinaisons par lots de 500 (générateur PHP). Tests OK sur 4 fiches produit représentatives.
(1 h 47 × 60 €/h)
Tarifs annoncés d'avance
Diagnostic offert. Pour l'intervention, vous savez exactement combien ça coûte avant que je touche au code.
Diagnostic
- Lecture error_log +
php-fpm.log - Cause racine identifiée (memory_limit, .htaccess, override...)
- Devis chiffré envoyé immédiatement
- Vous décidez si vous continuez
Intervention ciblée
- Sauvegarde fichiers + BDD avant intervention
- Correction ciblée de la 500 (hook, .htaccess, override, module)
- Tests front + back-office + tunnel d'achat
- Rapport écrit cause racine + correctif
- Garantie 30 jours sur le correctif
Maintenance mensuelle
- Monitoring 5 min · alerte SMS avant vos clients
- Sauvegardes auto quotidiennes externalisées
- Intervention prioritaire en cas de 500
- Veille CVE PrestaShop + hotfix appliqués
Erreur 500, ce n'est pas...
Les bugs voisins se confondent souvent. Vérifions que vous êtes au bon endroit.
Si votre site affiche rien du tout, juste du blanc, sans message d'erreur, c'est une page blanche PrestaShop (display_errors=Off masque la vraie erreur). Ce n'est pas une 500 affichée par le serveur.
Une 502 (Bad Gateway) signifie que Nginx ne reçoit pas de réponse de PHP-FPM (souvent un crash PHP-FPM). Une 504 (Gateway Timeout) signifie que PHP a dépassé son temps d'exécution. Les causes sont liées mais les fix sont différents.
Si votre site répond mais met 15 s à charger une fiche produit, ce n'est pas une 500 (le serveur répond bien, juste lentement). C'est un problème de performance : cache, BDD, modules, hébergement.
Voir la fiche performance →Questions fréquentes sur les erreurs 500 PrestaShop
memory_limit PHP (souvent provoqué par un hook de module sur les fiches produit), un .htaccess corrompu après une mise à jour, un override de classe cassé suite à un update PrestaShop, des permissions de fichiers incorrectes, ou un module qui jette une exception non capturée pendant le bootstrap. Le diagnostic exige toujours la lecture de error_log Apache et php-fpm.log, jamais un guess.memory_limit, .htaccess, hook fatal), le site est remis en ligne en moins de 2 h après la prise en main, dont 15 à 30 min de diagnostic. Pour les cas complexes (override corrompu, conflit de modules après update majeur), il faut compter une demi-journée à une journée. Le délai exact vous est annoncé après le diagnostic gratuit initial, jamais après..htaccess, config/defines.inc.php, ou un override. Cela nécessite un accès FTP ou SSH au serveur. Si vous avez perdu vos accès, nous récupérons d'abord les identifiants auprès de votre hébergeur. C'est généralement faisable en 1 à 4 h selon l'hébergeur.Évitez la prochaine 500 avant qu'elle n'arrive
Surveillance 24/7, sauvegardes quotidiennes, hotfix de sécurité, intervention prioritaire : à 50 €/mois sans engagement, le contrat de maintenance amortit largement une seule erreur 500 évitée.
Voir les formules maintenance →500 sur votre site en ce moment ?
Décrivez ce que vous voyez, on regarde sous 30 min en heures ouvrées. Diagnostic gratuit, devis sous 24 h ouvrées.