Erreur 500 sur PrestaShop : diagnostic complet et solutions
Découvrez comment diagnostiquer et corriger une erreur 500 sur PrestaShop 1.7 et 8.x. Mode debug, modules incompatibles, logs serveur : guide complet.
En bref : L'erreur 500 sur PrestaShop se diagnostique en activant le mode debug pour obtenir la stack trace, puis en vérifiant les modules, la version PHP, les overrides et les logs serveur. La cause la plus fréquente est un module incompatible qu'il suffit de désactiver pour restaurer le site.
Comprendre l'erreur 500 sur PrestaShop
L'erreur 500 (Internal Server Error) est l'un des problèmes les plus fréquents — et les plus frustrants — rencontrés par les marchands et développeurs PrestaShop. Derrière ce message générique se cache une multitude de causes possibles : module défaillant, incompatibilité PHP, fichier corrompu, ou encore dépassement de mémoire.
Le véritable enjeu n'est pas l'erreur elle-même, mais sa localisation. Sans diagnostic méthodique, on risque de patcher à l'aveugle et d'aggraver la situation.
Étape 1 : activer le mode debug
La toute première action à entreprendre est d'activer le mode debug de PrestaShop. Sans lui, vous n'obtiendrez jamais le détail de l'exception qui provoque l'erreur 500.
Sur PrestaShop 8.x
Modifiez le fichier .env à la racine de votre installation :
# Remplacer
APP_DEBUG=0
APP_ENV=prod
# Par
APP_DEBUG=1
APP_ENV=dev
Sur PrestaShop 1.7
Éditez le fichier config/defines.inc.php :
// Ligne à modifier
define('_PS_MODE_DEV_', true);
Sur PrestaShop 1.6
Le même fichier config/defines.inc.php :
define('_PS_MODE_DEV_', true);
Une fois le mode debug activé, rechargez la page fautive. Au lieu d'un simple « Erreur 500 », vous obtiendrez une stack trace complète avec le nom de l'exception, le fichier concerné et le numéro de ligne.
Important : ne laissez jamais le mode debug activé en production. Il expose des informations sensibles (chemins serveur, variables d'environnement, requêtes SQL).
Étape 2 : analyser les logs serveur
Si le mode debug ne suffit pas (par exemple si l'erreur survient avant même le chargement du framework), consultez les logs serveur :
# Apache
tail -f /var/log/apache2/error.log
# Nginx
tail -f /var/log/nginx/error.log
# Logs PHP-FPM
tail -f /var/log/php-fpm/www-error.log
Sur un hébergement mutualisé, ces logs sont généralement accessibles depuis le panneau d'administration (cPanel, Plesk) ou dans un dossier logs/ à la racine.
Étape 3 : identifier les causes fréquentes
Modules incompatibles
Les modules sont la cause numéro un des erreurs 500 sur PrestaShop. Un module non mis à jour après une montée de version PHP ou PrestaShop peut provoquer des exceptions fatales.
Exemple classique : le module Mail Alerts (ps_emailalerts) a longtemps provoqué une InactiveScopeException sur PrestaShop 1.7, causant une erreur 500 systématique.
Pour isoler un module fautif :
# Renommer le dossier du module suspect
mv modules/ps_emailalerts modules/ps_emailalerts_disabled
# Vider le cache
rm -rf var/cache/*
Si le site revient, vous avez identifié le coupable. Cherchez alors une mise à jour du module ou contactez son éditeur.
Dépassement de mémoire PHP
Une erreur 500 peut masquer un Fatal error: Allowed memory size exhausted. Augmentez la limite dans php.ini :
memory_limit = 512M
max_execution_time = 300
Ou via .htaccess si votre hébergeur le permet :
php_value memory_limit 512M
php_value max_execution_time 300
Incompatibilité de version PHP
PrestaShop 8.x requiert PHP 7.2.5 minimum (PHP 8.1 recommandé). Une version trop ancienne ou trop récente peut provoquer des erreurs fatales :
Fichier .htaccess corrompu
Un .htaccess mal configuré ou corrompu peut bloquer le serveur. Pour tester :
# Renommer temporairement
mv .htaccess .htaccess.bak
# Si le site revient, régénérer depuis le back-office :
# Préférences > SEO & URLs > Générer le fichier .htaccess
Overrides en conflit
Sur PrestaShop 1.7+, les overrides sont une source fréquente de conflits. Si l'erreur survient après l'installation d'un module :
# Vérifier les overrides récemment ajoutés
ls -lt override/classes/
ls -lt override/controllers/
# Supprimer le cache des overrides
rm -f var/cache/prod/class_index.php
rm -f var/cache/dev/class_index.php
Étape 4 : procédure de récupération complète
Si votre back-office est également inaccessible, voici la procédure de secours :
- **Activez le mode debug** via FTP (fichiers mentionnés ci-dessus)
- **Désactivez tous les modules non natifs** en renommant leurs dossiers
- **Videz le cache** : supprimez tout le contenu de `var/cache/`
- **Réactivez les modules un par un** pour isoler le coupable
- **Vérifiez les droits fichiers** :
- **Testez toujours sur un environnement de préproduction** avant de mettre à jour un module ou PrestaShop
- **Faites un backup complet** (fichiers + base de données) avant toute opération critique
- **Maintenez vos modules à jour**, en particulier après une montée de version PHP
- **Surveillez vos logs** : configurez une alerte sur les erreurs 500 pour réagir rapidement
- **Utilisez une version stable de PrestaShop** : les versions majeures fraîchement sorties contiennent souvent des régressions. Attendez les premiers patchs correctifs avant de migrer en production
- **Page produit** : image corrompue, description contenant du HTML invalide
- **Page catégorie** : nombre excessif de produits sans pagination
- **Checkout** : module de paiement ou de livraison défaillant
# Droits corrects pour PrestaShop
find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;
chmod -R 775 var/ img/ upload/ download/ mails/ themes/
Bonnes pratiques pour éviter les erreurs 500
Cas particulier : erreur 500 uniquement sur certaines pages
Si l'erreur 500 ne touche qu'une page produit, une catégorie ou le tunnel de commande, le problème est probablement lié aux données plutôt qu'au code :
Activez le mode debug pour obtenir l'exception exacte, puis ciblez votre correction.
Questions fréquentes
Tout ce que vous devez savoir sur ce sujet.
Un projet PrestaShop ?
Discutons-en directement.
193 projets livrés
Lire sur le blog

Alexandre Carette
Expert PrestaShop & Architecture E-commerce
Développeur PrestaShop depuis 2014, 193 projets livrés. Je conçois des architectures headless Nuxt + PrestaShop et des outils d'automatisation IA pour les e-commerçants.