Erreur 500 PrestaShop : causes et solutions
Comment corriger une erreur 500 sur PrestaShop. Diagnostic, 8 causes frequentes et solutions pas a pas pour relancer votre boutique rapidement.
Romain Kersuzan
Expert PrestaShop Freelance
L’erreur 500 sur PrestaShop : comprendre avant d’agir
L’erreur 500, ou Internal Server Error, est l’une des pannes les plus stressantes pour un commercant en ligne. Votre boutique affiche une page blanche ou un message d’erreur generique, vos clients ne peuvent plus commander, et vous ne savez pas d’ou vient le probleme. Contrairement a une erreur 404 qui pointe vers une page inexistante, l’erreur 500 signifie que le serveur a rencontre un probleme interne qu’il ne sait pas identifier lui-meme.
Le message “Internal Server Error” est volontairement vague pour des raisons de securite. C’est a vous de mener l’enquete. La bonne nouvelle : dans la grande majorite des cas, la cause est identifiable et corrigeable en quelques minutes. Je couvre ici les 8 causes les plus frequentes que je rencontre en intervention, avec pour chacune une solution concrete. Pour une vue d’ensemble, consultez egalement mon article sur les erreurs courantes sur PrestaShop.
Diagnostic : comment identifier la cause de l’erreur 500
Avant de tester des solutions au hasard, commencez par localiser la source du probleme. PrestaShop et votre serveur generent des fichiers de logs qui contiennent la reponse.
Verifier les logs PrestaShop
Les logs applicatifs se trouvent dans le dossier var/logs/ a la racine de votre installation (ou log/ sur les anciennes versions). Ouvrez le fichier le plus recent via FTP ou SSH :
tail -100 var/logs/prod.log
Cherchez les lignes contenant “CRITICAL” ou “ERROR”. Elles indiquent generalement le fichier et la ligne de code responsable du probleme.
Consulter les logs du serveur
Les logs Apache se trouvent dans /var/log/apache2/error.log ou /var/log/httpd/error_log. Pour Nginx : /var/log/nginx/error.log. Votre hebergeur propose souvent un acces depuis son panel (cPanel, Plesk).
Activer le mode debug de PrestaShop
Si les logs ne sont pas assez explicites, activez le mode debug. Editez le fichier config/defines.inc.php et modifiez la ligne suivante :
define('_PS_MODE_DEV_', true);
Rechargez la page. PrestaShop affichera desormais le message d’erreur PHP complet au lieu de la page blanche. N’oubliez pas de remettre cette valeur a false une fois le probleme resolu. Laisser le mode debug actif en production est un risque de securite pour votre boutique.
1. PHP memory limit depasse
C’est la cause la plus frequente. PrestaShop consomme beaucoup de memoire, surtout lors de l’import de produits ou du chargement du back-office avec de nombreux modules actifs.
Symptome
Le log affiche : Fatal error: Allowed memory size of X bytes exhausted.
Solution
Augmentez la directive memory_limit dans votre fichier php.ini :
memory_limit = 512M
Si vous n’avez pas acces au php.ini, ajoutez cette ligne dans .htaccess :
php_value memory_limit 512M
PrestaShop 8 necessite un minimum de 256 Mo. Je recommande 512 Mo pour une boutique avec plus de 1 000 produits. Ce point est crucial pour les performances de votre boutique.
2. Fichier .htaccess corrompu
Le fichier .htaccess gere la reecriture d’URL, les redirections et certaines configurations PHP. Une modification maladroite ou un module qui y ecrit des regles incorrectes peut provoquer une erreur 500 immediate.
Symptome
L’erreur apparait sur toutes les pages du site, front-office et back-office inclus.
Solution
Renommez le fichier pour le desactiver temporairement :
mv .htaccess .htaccess.backup
Si le site revient, le probleme est confirme. Regenerez un fichier propre depuis le back-office : Parametres de la boutique > Trafic et SEO, puis cliquez sur “Generer le fichier .htaccess”. Si le back-office est inaccessible, copiez le .htaccess par defaut depuis une installation vierge de la meme version.
3. Module incompatible ou defectueux
Un module incompatible avec votre version de PrestaShop ou de PHP, ou en conflit avec un autre module, peut provoquer une erreur 500.
Symptome
L’erreur apparait apres l’installation ou la mise a jour d’un module. Le log mentionne un fichier dans /modules/nom_du_module/.
Solution
Si le back-office est inaccessible, desactivez le module via la base de donnees ou renommez son dossier par FTP :
UPDATE ps_module SET active = 0 WHERE name = 'nom_du_module';
mv modules/nom_du_module modules/nom_du_module_disabled
PrestaShop ne pourra plus charger le module et l’erreur devrait disparaitre. Contactez le developpeur du module pour obtenir une version corrigee.
4. Version PHP incompatible
Chaque version de PrestaShop est compatible avec une plage specifique de versions PHP. PrestaShop 1.6 ne fonctionne pas avec PHP 8. PrestaShop 8 necessite au minimum PHP 7.2.5 et fonctionne de maniere optimale avec PHP 8.1.
Symptome
L’erreur apparait apres un changement de version PHP par votre hebergeur ou une migration de serveur.
Solution
Verifiez la version PHP utilisee : php -v en SSH. Consultez la documentation officielle PrestaShop pour connaitre les versions compatibles avec votre installation. Votre hebergeur propose generalement un selecteur de version PHP dans son panel.
5. Permissions de fichiers incorrectes
Des permissions trop restrictives empechent le serveur web de lire ou d’executer les fichiers PHP de PrestaShop.
Symptome
L’erreur apparait apres un transfert FTP, un changement de serveur ou une modification manuelle des droits.
Solution
Appliquez les permissions standard :
find /chemin/vers/prestashop -type f -exec chmod 644 {} \;
find /chemin/vers/prestashop -type d -exec chmod 755 {} \;
Verifiez que les dossiers var/cache/, var/logs/, upload/, download/, img/ et config/ sont bien en 755 ou 775 selon la configuration serveur.
6. Erreur de connexion a la base de donnees
Si PrestaShop ne parvient pas a se connecter a MySQL, il renvoie une erreur 500. Cela survient apres un changement de mot de passe, une migration de serveur ou un probleme de disponibilite MySQL.
Symptome
Le log affiche une erreur de type PDOException ou SQLSTATE[HY000].
Solution
Verifiez les parametres de connexion dans le fichier de configuration : app/config/parameters.php (PrestaShop 1.7+) ou config/settings.inc.php (PrestaShop 1.6). Assurez-vous que le serveur (database_host), le nom de la base (database_name), l’utilisateur et le mot de passe sont corrects. Testez la connexion :
mysql -u votre_utilisateur -p -h localhost votre_base
Si la connexion echoue, contactez votre hebergeur pour verifier l’etat du service MySQL.
7. Cache corrompu
PrestaShop utilise un systeme de cache qui peut se corrompre apres une mise a jour, un changement de theme ou une modification de configuration.
Symptome
L’erreur apparait apres une modification dans le back-office ou une mise a jour de module.
Solution
Supprimez manuellement le cache via FTP ou SSH :
rm -rf var/cache/prod/*
rm -rf var/cache/dev/*
Sur PrestaShop 1.6, le dossier est cache/smarty/compile/ et cache/smarty/cache/. PrestaShop regenerera automatiquement les fichiers au rechargement. Si le probleme revient regulierement, envisagez un systeme de cache plus robuste comme Redis, ce qui amelerera egalement les performances de votre boutique.
8. Probleme de configuration serveur
Certaines erreurs 500 proviennent de la configuration du serveur web, et non de PrestaShop.
Causes frequentes
- Apache : module
mod_rewritedesactive (activez-le aveca2enmod rewrite), directiveAllowOverridesurNoneau lieu deAll, timeout PHP trop court pour les operations lourdes. - Nginx :
fastcgi_passpointant vers un socket PHP-FPM inexistant, directiveclient_max_body_sizetrop basse pour les uploads, regles de reecriture mal configurees.
Si vous n’etes pas a l’aise avec la configuration serveur, un contrat de maintenance PrestaShop couvre ce type d’intervention.
Quand faire appel a un professionnel
La majorite des erreurs 500 sont resolvables en suivant les etapes ci-dessus. Mais certaines situations justifient de faire appel a un expert PrestaShop.
L’erreur persiste malgre vos tentatives
Si vous avez teste les 8 causes listees ici et que l’erreur revient, le probleme est probablement plus profond : conflit entre plusieurs modules, corruption de la base de donnees ou probleme d’infrastructure serveur. Un diagnostic approfondi par un developpeur experimente permet d’identifier la cause racine sans aggraver la situation.
Vous perdez des ventes
Chaque heure d’indisponibilite a un cout direct. Sur une boutique qui realise 500 euros de chiffre d’affaires quotidien, une journee d’erreur 500 represente une perte seche, sans compter l’impact sur la confiance de vos clients et votre referencement Google.
Vous n’etes pas a l’aise avec l’acces serveur
Modifier des fichiers de configuration PHP, executer des requetes SQL, manipuler les permissions : ces operations comportent des risques si elles sont mal executees. Une erreur dans parameters.php peut rendre tout le site inaccessible.
Si vous etes dans l’une de ces situations, un service de maintenance PrestaShop vous garantit une prise en charge rapide et un suivi preventif pour eviter que le probleme ne se reproduise. N’hesitez pas a me contacter pour un diagnostic de votre situation.
En resume
L’erreur 500 sur PrestaShop est rarement fatale. Dans la grande majorite des cas, elle provient d’un manque de memoire PHP, d’un fichier .htaccess corrompu, d’un module defectueux ou d’un probleme de cache. Procedez methodiquement : commencez par les logs, activez le mode debug si necessaire, puis testez les causes une par une.
Mettez en place une routine de maintenance reguliere pour prevenir ces incidents : surveillance des logs, mises a jour de securite, nettoyage du cache et sauvegardes automatisees.