Site vierge en direct en frontend ou continuez à charger et ne chargez jamais


23

Je fais face au problème le plus étrange jamais rencontré dans magento. nous utilisons la version 1.9.0.

depuis 2 mois, notre site en direct est "vierge" ou "continue de charger" pour les navigateurs utilisés. Signifie dans ce navigateur que nous avons visité le site de nombreuses fois.

dans certains navigateurs, cela fonctionne bien. dans certains montrant vide.

mais le backend fonctionne bien dans tous les navigateurs.

nous sommes confrontés à des problèmes dans Chrome, Mozilla, Opera et tous les autres navigateurs.

1) Si nous effaçons l'historique du navigateur [cache et cookies], son fonctionnement.

2) Si nous ouvrons le même site en fenêtre privée, son fonctionnement.

3) Si nous ouvrons le site dans des navigateurs fraîchement installés, cela fonctionnera pendant un certain temps. à nouveau vide après avoir utilisé le site.

4) Si nous effaçons le dossier var / session, cela commencera à fonctionner pour tous les navigateurs pendant un certain temps. nouveau site vierge.

5) parfois, le site continuera de se charger et ne se chargera jamais ....

J'ai vérifié system.log & exception.log . mais il semble qu'il n'y ait aucune erreur liée à cela. nous utilisons https pour les pages sécurisées . même nous avons l' application Andriod en direct pour ce site. parfois nous obtiendrons des erreurs fatales:

**Fatal error**: Allowed memory size of 536870912 bytes exhausted (tried to allocate 85 bytes) in /lib/Zend/Db/Statement/Pdo.php or lib/Varien/Object.php or /lib/Varien/Db/Select.php or app/code/core/Mage/Core/Model/Config.php

nous définissons memory_limit = 1512 Mo dans php.ini

dans .htaccess, nous avons les fichiers suivants.

php_value memory_limit 1512M php_value max_execution_time 18000

nous avons commenté ceci:

ini_set('display_errors', 1);

mais aucune erreur d'affichage en frontend. Ceci est le journal des erreurs apache :

signal de sortie du pid enfant 23845 Défaut de segmentation (11), coredump possible dans / etc / apache2

Vraiment du mal à résoudre ce problème. Ce problème est-il lié à notre code ou est-ce lié au côté serveur?

est le cookie du navigateur est le principal problème? Si oui, que devez-vous faire pour résoudre ce problème de cookie pour tous les navigateurs. pourquoi son a commencé à fonctionner une fois que nous avons effacé le dossier de session?

nous sommes confrontés à ces problèmes lors de la navigation sur notre site. entrez la description de l'image ici entrez la description de l'image ici entrez la description de l'image ici


est-il possible que ce soit un problème de cookie? stackoverflow.com/questions/15491819/…
pzirkind

le lien que j'ai collé est pour le backend mais le frontend peut également avoir un problème de cookie ... cela peut être dû à la durée de vie du cookie et à l'horodatage du serveur
pzirkind

@pzirkind dans notre backend de cas est bien pour tous les navigateurs. que devons-nous augmenter la durée de vie des cookies grâce au code? et je n'ai pas eu d'horodatage du serveur est éteint. faut-il continuer?
Bébé à Magento

@Babby dans Magento parfois si le serveur n'a pas d'horodatage correct, il générera un cookie qui expire avant la date actuelle, donc lorsque le client recharge le site et que magento vérifie que le cookie est invalide
pzirkind

@pzirkind Y a-t-il une possibilité qu'une erreur Apache publiée dans la question ou l'horodatage soit la raison de cette page vierge?
Bébé à Magento

Réponses:


10

Activez d'abord le mode développeur dans votre .htaccessfichier, ajoutez ce qui suit à la fin du fichier:

SetEnv MAGE_IS_DEVELOPER_MODE "true"

Modifier suivant index.phpet décommentez la ligne:

#ini_set('display_errors', 1);

Ligne référencée:

Ensuite, connectez-vous via SSH et recherchez un fichier de vidage de mémoire sous /tmpcomme l'erreur de défaut de segment mentionnée. Parfois , il peut aussi être à la racine /ou dans le répertoire racine du site lui - même , par exemple: /var/www/html/videomergerapp/.

Si vous ne parvenez pas à localiser de fichiers de vidage de mémoire, vous souhaiterez peut-être ajouter des directives supplémentaires à PHP / Apache.

Jetez un œil ici:

Une fois que vous avez le ou les fichiers de vidage principaux, vous pouvez utiliser gdb(si --enable-debug) a été utilisé lors de la configuration de PHP. Vous pouvez effectuer cette détermination en émettant ce qui suit à partir de la ligne de commande:

php -i | grep debugou simplement créer un fichier de script php dans la racine de votre serveur Web avec: <?php phpinfo(); ?>dans son contenu et afficher le fichier via un navigateur Web pour voir les valeurs de configuration PHP.

S'il n'était pas activé, vous ne pourrez pas obtenir une trace complète dans PHP lui-même, mais uniquement des appels système de niveau supérieur et / ou une trace arrière Apache:

Si vous avez accès au fichier de vidage principal, émettre quelque chose comme ce qui suit vous donnera une trace pour vous aider à trouver le point de défaillance:

gdb /usr/local/apache2/bin/httpd /tmp/core.2027


Si vous rencontrez uniquement des problèmes aléatoires sur le frontend et jamais sur le backend, la plupart des signes indiquent un problème possible avec le codage de votre modèle. Une fois que vous rencontrez les pages vierges (et / ou les erreurs s'affichent si vous avez activé le mode développeur et l'affichage des erreurs). Connectez-vous à votre administrateur et désactivez tous les caches et videz tous les caches et les mémoires de cache.

Ensuite, entrez app/etc/local.xmlet définissez les modules locaux désactivés sur true.

<disable_local_modules>true</disable_local_modules>

Cela désactivera le chargeur automatique de charger les modules dans app/code/local.

Pour désactiver les modules de communauté, il est plus facile de parcourir chacun de vos fichiers de définition de modules trouvés dans app/etc/moduleset de désactiver en définissant le nœud actif sur false comme suit:

<active>false</active>

De cette façon, vous pouvez aider à exclure si un module tiers est à l'origine de la source du problème par processus d'élimination. REMARQUE: vous ne pouvez pas disable_local_modulespasser simplement par tous vos modules NON-CORE (tout ce que Mage_ * ignore!).

S'il y a toujours des problèmes, j'essaierais temporairement un package de modèle par défaut en allant dans Système> Conception et en définissant une nouvelle conception de quelque chose comme par défaut ou base. Si les packages de modèles de stock fonctionnent, vous saurez que la cause de l'erreur réside dans vos fichiers de conception de modèles (.phtml).

Beaucoup de modèles que j'ai rencontrés sont mauvais à utiliser Mage::getModel()->load()dans les boucles foreach car c'est une mauvaise pratique et peut finalement consommer de grandes quantités de mémoire et de ressources du serveur.

Magento possède un outil d'analyse de code qui peut aider à analyser vos fichiers de modèle pour déterminer s'il existe l'un de ces mauvais morceaux de code:

Lectures complémentaires:

En outre, il peut être utile pour tout le monde de définir le cache et le stockage de session que vous utilisez app/etc/local.xml.

J'espère que cela t'aides!


je vais essayer ce nad vous le faire savoir ....
Baby in Magento

nous avons effacé le dossier var / session. qu'il n'a résolu notre problème jusqu'à aujourd'hui. mais aujourd'hui, ce problème s'est à nouveau produit. que j'ai ajouté ceci dans .htaccess: SetEnv MAGE_IS_DEVELOPER_MODE "true" et décommente ini_set ('display_errors', 1); cette ligne. et <disable_local_modules> true </disable_local_modules>. Que j'ai eu une erreur tjis: magento.stackexchange.com/questions/94559/…
Baby in Magento

Je n'efface aucun sessin après avoir effectué des modifications, si j'efface automatiquement la session, cela va résoudre tout le problème. ne pensez-vous pas que c'est quelque chose de cookies ou de sessions liés? Est-ce qu'il y a un moyen de résoudre ceci ?
Bébé à Magento

@BabyinMagento Avez-vous pu résoudre le problème sur la base des informations fournies? Si oui, quel était le problème pour les autres personnes rencontrant un problème similaire? Merci.
B00MER

1
Merci beaucoup pour votre soutien. nous avons effacé le dossier de session et caché les choses liées aux cookies dans varien.php. mais nous devons encore attendre un peu plus de temps pour vérifier si nous avons obtenu une solution permanente ou non. à droite, nous avons obtenu la solution en effaçant le dossier de session.
Bébé à Magento

3

Je suppose qu'il y a une récursivité dans votre code. Modifiez le fichier lib/Varien/Db/Adapter/Pdo/Mysql.phpet définissez $_debuget $_logCallStacksur true. Cela devrait enregistrer la pile d'appels dans le var/debug/pdo_mysql.logfichier, ce qui devrait vous donner une idée s'il y a une récursivité dans votre code alors qu'il faut une éternité pour le charger. Notez que ce fichier continuera de croître très rapidement, donc idéalement, activez-le lorsque vous pensez que le problème a commencé sur le site.

Une autre façon consiste à désactiver les modules / extensions buggy qui, selon vous, pourraient provoquer cela. Cela pourrait aussi être votre simple extension de prix configurable, essayez de la désactiver temporairement et voyez si cela aide à prévenir le problème.


j'ai changé les valeurs de "$ _debug" et "$ _logCallStack" en true, maintenant j'attends le fichier pdo_mysql.log. et nos dossiers de journaux se remplissent trop, ses presque 90 Go de journaux sont là. j'ai installé l'extension configurable simple avant 2 semaines, ce problème était là depuis 2 mois. mais encore besoin de regarder d'autres modules buggy.
Bébé à Magento le

je n'ai pas trouvé ce fichier var / debug / pdo_mysql.log jusqu'à présent, mais des journaux système et d'exception ont été créés. je peux voir ce journal principalement: "lib / Varien / Simplexml / Config.php on line 510"
Baby in Magento

90 Go de journaux? Hou la la! Sauvegardez-les dans un endroit différent et videz les fichiers. cela devrait au moins aider à améliorer quelque peu la vitesse de votre site.
Kalpesh

Oui, tu as raison. nous continuons à supprimer après quelques fois. est ces journaux à cause de ce problème? et jusqu'à présent, je n'ai trouvé aucun pdo_mysql.log
Baby in Magento

Vérifiez la valeur de $_debugFiledans le fichier Mysql.php et assurez-vous que votre varrépertoire dispose des autorisations appropriées requises pour créer un dossier et un fichier.
Kalpesh

2

J'ai eu le même problème dans un site Web client. Vérifiez votre Magento pour les logiciels malveillants.

C'est un scénario bien connu, généralement c'est un walware redirigeant le contenu de la publication de l'utilisateur vers un site Web externe.

Commencez à vérifier index.php, ils le piratent généralement. Faites défiler le code jusqu'à la fin, vérifiez également à droite et entre les lignes commentées dans l'en-tête de licence. Les pirates sont utilisés pour masquer le code de cette façon.

Vous avez le "chargement permanent" car il essaie de contacter les sites Web bloqués par votre FAI.

Il devrait être assez facile de trouver le malware, de rechercher les chaînes "base64", "eval", "mcrypt".


c'est notre index.php => pastebin.com/N8xnWMa7
Bébé à Magento le

notre site a été piraté avant 3 mois, après quoi seul ce problème est venu. mais plus tard, nous avons pris beaucoup de mesures de sécurité côté serveur. mais pensez-vous que le code piraté est toujours présent sur le site et crée un problème?.
Bébé à Magento le

Eh bien, votre index.php est très bien, mais vos symptômes sont vraiment comme ceux que j'ai vus dans certains webistes piratés par des clients. Je vous suggère d'effectuer une recherche complète à la recherche des modèles suivants: "base64", "eval", "mcrypt", "$ _POST". Ils vous donneront des tonnes de faux positifs, vous devez donc les vérifier. Si vous ne trouvez rien de mal, je vous suggère une analyse cachegrind ou une analyse étape par étape de xdebug.
Phoenix128_RiccardoT

je vais rechercher ces mots dans nos fichiers de site.
Bébé à Magento le

je trouve des temps illimités: "base64" encode et décode les textes ........
Baby in Magento

2

J'ai rencontré un comportement similaire sur un Magento qui avait deux sites Web. Le site se chargeait bien pendant quelques pages, puis se chargeait pour toujours.

La configuration des URL de base était incorrecte. Le paramètre URL de base sécurisée a été défini sur le mauvais site Web tandis que l'URL de base non sécurisée a été définie correctement.

Donc, pour résoudre ce problème si l'administrateur ne fonctionne même pas correctement, les valeurs doivent être modifiées dans la table core_config_data pour le bon site Web, c'est-à-dire définir la bonne URL avec le "http: //" et une barre oblique de fin dans le champ de valeur correspondant à le chemin "web / unsecure / base_url" et "web / secure / base_url" pour le bon scope_id représentant l'ID du site Web.

entrez la description de l'image ici

Notez que l'URL sécurisée est http uniquement parce qu'il s'agissait d'un site Web de démonstration.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.