PrestaShoperreurmaintenancetutoriel

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

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_rewrite desactive (activez-le avec a2enmod rewrite), directive AllowOverride sur None au lieu de All, timeout PHP trop court pour les operations lourdes.
  • Nginx : fastcgi_pass pointant vers un socket PHP-FPM inexistant, directive client_max_body_size trop 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.

A lire aussi

Articles similaires

Disponible pour de nouveaux projets

Vous avez un projet PrestaShop ?

Discutons de votre projet. Premier échange gratuit et sans engagement pour comprendre vos besoins et vous proposer la meilleure solution.