
Depuis quelque temps j’étais confronté à une extrême lenteur de ma boutique Prestashop alors que pendant ce temps au niveau du back-office (administration) tout allait bien. En effet il fallait environ 14 secondes à une page pour être chargée, dan ces 14 secondes il y avait environ 13 secondes d’attente pour, toujours environ, une seconde de chargement réel.
Je me suis donc retroussé les manches pour partir à la recherche du problème. J’ai tout d’abord, et rapidement, exploré la piste du serveur mais tout allait bien de ce coté, surtout qu’il y a plusieurs Prestashop en production et un seul posait problème. Cette piste écartée mon regard se tournait naturellement vers cette installation de Prestashop.
Une histoire de cache ?
Le site n’étant pas encore en prod le cache, la réécriture d’URL, la compression, etc. étaient désactivés. J’ai logiquement commencé par le menu Performances de Prestashop pour aller activer le cache de Smarty ainsi que Memcached mais il n’y eut strictement aucune amélioration et la console de debug de Smarty confirmait cela.
Une histoire d’image ?
Récemment il y avait des ajouts massifs d’article et qui dit article dit images de produit. J’ai alors pensé que peut-être le problème pourrait se situer au niveau de la création des miniatures … mais non régénération faite il n’y eu aucun changement dans le chargement des pages.
Une histoire de pack ou de déclinaisons ?
Toujours suite à cet ajout massif d’article, des packs ainsi que des déclinaisons avaient aussi été créé en nombre. Au détour d’un forum j’ai vu qu’un utilisateur de Prestashop avait aussi rencontré des soucis de performances et que celui-ci avait détecté que son problème venait des déclinaisons et des packs d’article. Ni une ni deux je supprime tout ce beau monde … pour rien toujours une quinzaine de secondes de chargement.
C’est à ce moment, arrivé au bout des solutions software, que j’ai pensé aux droits sur les fichiers et à l’utilisateur. En effet sur mes serveurs, par sécurité, les sites sont en espace utilisateur mais Apache s’exécute, comme vous le savez, avec son propre utilisateur, www-data.
Une banale histoire de droit sur les fichiers ? Oui !
J’ai donc donné pleine propriété sur les fichiers de Prestashop à l’utilisateur www-data avec la commande suivante :
chown -R www-data:www-data /chemin/vers/votre/prestashop
Et là ô joie !
- Premier chargement post changement de droit 1,5 seconde
- Second chargement plus qu’une petite seconde, grâce au cache fichier qui ne s’écrivait pas avant malgré le CHMOD correct
On peut en conclure qu’il est préférable avec Prestashop de changer le propriétaire des fichiers, si ce n’est pas le même utilisateur qu’Apache et que le site est en espace utilisateur (/home/etc.), afin de garder de bonnes performances.
En espérant que cela vous aide !
12 commentaires sur “Votre boutique (Front Office) Prestashop est lente ?”
Salut,
Je poste un commentaire pour te remercier de m’avoir apporté LA solution.
Idem, plusieurs sites en prod, différentes versions et après avoir suivi les mêmes démarches que toi (serveur, cache, modules, images, déclis) je suis tombé sur ton article salvateur.
Un grand merci donc : )
Merci pour ton retour d’ expérience 🙂
Mais c’est incroyable, après des jours de galère, j’ai utilisé ta technique de donner le droit à apache (par contre pour mon cas perso l’utilisateur était « apache », et non « www-data », si ça peut aider quelqu’un…)
Je suis passé de +10sec de temps de chargement à 2sec, c’est vraiment énorme un grand MERCI à toi tu m’a sauvé la journée !! 😀
Content d’avoir aider. 🙂
Bonjour, j’est de nombreux problèmes de ralentissement sur mon prestashop, mais je ne sais pas comment mettre en place votre commande. Pouvez vous m’aider. En vous remerciant
Bonjour,
C’est un hébergement mutualisé ou dédié ?
Bonjour, me concernant il s’agit d’un hebergeur centralisé chez ovh. Je suis passé par un cms pour faire mon site. Merci pour votre aide.
Pareil, je suis sur un hebergement mutualisé (pas de commandes) et j’aimerais ajouter ces droits. Comment faire ? 🙁
Effectivement, ça marche !!!
🙂
Bon, j’ai quand même un problème après coup :
comment fait-on si on a besoin de modifier les fichiers sur le serveur ?
Le plus simple est de remettre le propriétaire original si c’est des modifications ponctuelles et de rebasculer le propriétaire après modif. Si c’est un peu chaque jour cela peut vite devenir barbant, il faut alors ajouter l’utilisateur original au groupe www-data (si les fichiers de Presta sont en droit 755, ça je sais plus).
Merci ! Oui ça me parait une bonne idée d’ajouter l’utilisateur au groupe www-data (chez moi c’est apache en fait), ça devrait résoudre le problème. Comment fait-on cela ?
bonjour,
j’ai mis en place la ligne de commande via putty (chown -R www-data:www-data /chemin/vers/votre/prestashop)
J’ai un problème mon site n’est plus accessible le message afficher est
« Link to database cannot be established: SQLSTATE[HY000] [2002] Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2) »
Plus d’accée phpmyadmin et serveur complétement j’ai complétement planté le site qui est en production….
Cordialement,