Jump to content

[RESOLU] Bébé Prestashop 1.6.0.13 cherche sa maman


david.

Recommended Posts

Résolu tout fonctionne très bien plus de lenteur : médaille d'or et merci à J. Danse qui a trouvé la solution dans /classes/controller/AdminController.php :

 

placer :

 

public function isFresh($file, $timeout = 604800)

{
return true;
}

 

au lieu de :

 

public function isFresh($file, $timeout = 604800)

{
 
if (($time = @filemtime(_PS_ROOT_DIR_.$file)) && filesize(_PS_ROOT_DIR_.$file) > 0)
return ((time() - $time) < $timeout);
 
return false;
}
 
 
--------
 
Le module cronjob na rien à avoir avec la lenteur, mais meme désactivé il est appelé par les serveurs de prestashop.
 
--------

 

Bonjour à tous,

 

Sous ce titre un peu abstrait voici mes constatations :

 

Dans mon error.log apache, car j'ai mis un htaccess qui n'autorise que mon ip sur le répertoire d'admin j'ai à plusieurs jours / reprises :

 

91.240.109.1 - - [20/Mar/2015:06:50:23 +0100] "GET /adminXXXXXXXXXX/index.php?controller=AdminCronJobs&token=XXXXXXX HTTP/

 

où adminXXXX est mon répertoire d'admin que normalement moi seul connais le dossier.

 

Question numéro 1 : sachant que l'ip correspond à gate-prestashop.cust.alionet.net, pourquoi prestashop essaye t-il de se connecter à mon dossier d'administration tout seul ?

 

Ensuite :

 

J'ai dans mon fichier host mis ceci :

 

127.0.0.1       localhost.localdomain localhost api.prestashop.com api.addons.prestashop.com prestashop.com gamification.prestashop.com www.prestashop.com

 

Ce qui a pour effet de rediriger vers mon localhost toutes les requêtes vers prestashop. S'il y a un module à installer, je décommente et il n'y a pas de soucis. Ca me permet de ne pas avoir de surprise "automatique", comme le hack sur l'admin prestashop 1.4 suite au hack des serveurs prestashop pour les plus anciens qui se souviendront de l'affaire.

 

Dans mon access.log apache j'ai alors :

 

91.240.109.1- - [20/Mar/2015:06:50:23 +0100] "GET /adminXXXXXXXXXX/index.php?controller=AdminCronJobs&token=XXXXXXX HTTP/$

127.0.0.1 - - [20/Mar/2015:07:33:25 +0100] "POST / HTTP/1.0" 302 283 "-" "-"
127.0.0.1 - - [20/Mar/2015:07:33:35 +0100] "POST / HTTP/1.0" 302 283 "-" "-"
127.0.0.1 - - [20/Mar/2015:07:33:44 +0100] "POST / HTTP/1.0" 302 283 "-" "-"
127.0.0.1 - - [20/Mar/2015:07:33:55 +0100] "POST / HTTP/1.0" 302 283 "-" "-"
 
Je vois que 4 requêtes se font vers les serveur prestashop redirigé en 127.0.0.1.
 
Le plus ennuyant, c'est la durée de chargement de l'admin passe à plus de 6 secondes sur toutes les pages, au lieu de 0.1 seconde habituel, et ca tout le temps.
 
Bizarrement le problème se résous lorsque je commente mon fichier host comme ceci :
#127.0.0.1       localhost.localdomain localhost api.prestashop.com api.addons.prestashop.com prestashop.com gamification.prestashop.com www.prestashop.com
 
Le petit prestashop a bien contacté sa mère et est content pour les prochaines 24h : on peut alors enlever le commentaire # et tout fonctionnera pendant 24h.
 
Ce qui signifie que :
 
- il faut obligatoirement une connexion aux serveurs prestashop au moins toutes les 24 heures sous peine de lenteurs dans le back office uniquement
 
Le question qui se pose alors est celle de la transparence : pourquoi ? est-ce possible de le désactiver ? qu'est-ce qui est transmis exactement ?
 
Le problème n'est pas présent sur un prestashop 1.4.10 / 1.6.0.5 / 1.6.0.9
 
Qu'en pensez-vous ? Avez-vous des solutions ?
 
David.
Edited by david. (see edit history)
  • Like 1
Link to comment
Share on other sites

Bonjour,

 

Tout d'abord, vu les informations données, je suis prêt à parier que le module gamification est d'ores et déjà désinstallé, pas besoin donc d'en parler. Si jamais, faites le ;-)

 

Concernant le module CronJobs, pour lequel l'URL avec le dir. admin est appelée, avez-vous ce module d'installé et éventuellement une tâche listée ?

 

Sinon, vous avez notamment quelques méthodes/foncions qui font un refresh toutes les 24h, sur certains fichiers XML (comme le listing des modules).

J'en pointe une, mais ce n'est pas la seule: https://github.com/PrestaShop/PrestaShop/blob/1.6/classes/controller/AdminController.php#L2038

 

Cette méthode est appelée dans initContent() de AdminController. Autant dire, à chaque chargement dans le Back Office. C'est à investiguer, à ce sujet.

 

Mais, en attendant, et dans votre cas... Vous pouvez faire une surcharge de AdminController avec cette méthode:

public function isFresh($file, $timeout = 604800)
{
  return true;
}

Vous n'aurez d'ores et déjà plus certains appels forcés.

  • Like 2
Link to comment
Share on other sites

Prestashop renifle tous les jour ton prestashop (homepage + logo.jpg) - bien sur en se "cachant"

91.240.109.91 - - [20/Mar/2015:06:44:30 +0100] "GET / HTTP/1.1" 200 81892 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0"
91.240.109.103 - - [20/Mar/2015:06:44:31 +0100] "GET /themes/*********/img/logo.png HTTP/1.1" 200 3487 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0"
91.240.109.107 - - [20/Mar/2015:06:44:31 +0100] "GET /themes/*********/img/logo.png HTTP/1.1" 200 3487 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0"
 

une 1.3 ici

 

A chaque nouvelle version de nouveaux trackers et autres mécanismes publicitaires forcés sont ajoutés. Nombre de tech s'en sont émus mais comme pour la plupart les marchands sont resté de marbre et bien PrestaShop continue... Ne pas oublier aussi la montagne de cookies injectés.

Link to comment
Share on other sites

Je suis en version 1.6.0.9, le module gamification désactivé, mon BO est lent et plante quelques fois.

Vous dites que pour la version 1.6.0.9 le problème n'existerait pas.

Que puis je faire pour remédier à cette lenteur récurente ?

Merci

Link to comment
Share on other sites

Bonjour,

 

Tout d'abord, vu les informations données, je suis prêt à parier que le module gamification est d'ores et déjà désinstallé, pas besoin donc d'en parler. Si jamais, faites le ;-)

 

Concernant le module CronJobs, pour lequel l'URL avec le dir. admin est appelée, avez-vous ce module d'installé et éventuellement une tâche listée ?

 

Sinon, vous avez notamment quelques méthodes/foncions qui font un refresh toutes les 24h, sur certains fichiers XML (comme le listing des modules).

J'en pointe une, mais ce n'est pas la seule: https://github.com/PrestaShop/PrestaShop/blob/1.6/classes/controller/AdminController.php#L2038

 

Cette méthode est appelée dans initContent() de AdminController. Autant dire, à chaque chargement dans le Back Office. C'est à investiguer, à ce sujet.

 

Mais, en attendant, et dans votre cas... Vous pouvez faire une surcharge de AdminController avec cette méthode:

public function isFresh($file, $timeout = 604800)
{
  return true;
}

Vous n'aurez d'ores et déjà plus certains appels forcés.

Salut, Merci J Dance ça fonctionne pour moi aussi, même la connexion au backoffice est plus rapide ! Amitiés 

Edited by Soyons Solidaires (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...