Sito live vuoto in frontend o continua a caricare e non caricare mai


23

Sto affrontando il problema più strano di sempre in Magento. stiamo usando la versione 1.9.0.

negli ultimi 2 mesi, il nostro sito live è "vuoto" o "continua a caricare" per i browser usati. Significa che in questo browser abbiamo visitato il sito molte volte.

in alcuni browser, funziona bene. in alcuni mostrano in bianco.

ma il backend funziona bene in tutti i browser.

stiamo riscontrando problemi in Chrome, Mozilla, Opera e tutti gli altri browser.

1) Se cancelliamo la cronologia del browser [cache e cookie], che funziona.

2) Se apriamo lo stesso sito in una finestra privata, funziona.

3) Se apriamo il sito con browser appena installati, funziona da tempo. di nuovo vuoto dopo che abbiamo utilizzato il sito.

4) Se cancelliamo la cartella var / session, allora inizierà a funzionare per tutti i browser per qualche tempo. di nuovo sito vuoto.

5) a volte il sito continuerà a caricarsi e non verrà mai caricato ....

Ho controllato system.log & exception.log . ma sembra che non ci siano errori relativi a questo. stiamo usando https per pagine sicure . anche noi abbiamo l' app Andriod live per questo sito. a volte avremo errori fatali:

**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

impostiamo memory_limit = 1512 Mb in php.ini

in .htaccess abbiamo i seguenti file.

php_value memory_limit 1512M php_value max_execution_time 18000

abbiamo commentato questo:

ini_set('display_errors', 1);

ma nessun errore visualizzato nel frontend. Questo è il log degli errori di Apache :

child pid 23845 segnale di uscita Errore di segmentazione (11), possibile coredump in / etc / apache2

Lottando davvero per risolvere questo problema. Questo problema è correlato al nostro codice o è relativo al lato server?

è il cookie del browser il problema principale? In tal caso, cosa è necessario fare per risolvere questo problema relativo ai cookie per tutti i browser. perché ha iniziato a funzionare una volta cancellata la cartella della sessione?

affrontiamo questi problemi durante la navigazione del nostro sito. inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine


è possibile che si tratti di un problema con i cookie? stackoverflow.com/questions/15491819/...
pzirkind

il link che ho incollato è per il back-end ma il front-end potrebbe avere anche un problema con i cookie ... potrebbe essere dovuto alla durata del cookie e il timestamp del server è spento
pzirkind

@pzirkind nel nostro caso il backend va bene per tutti i browser. di quanto dobbiamo aumentare la durata dei cookie attraverso il codice? e non ho avuto timestamp del server è spento. dobbiamo farcela?
Baby in Magento,

@Babby in Magento a volte se il server non ha il timestamp corretto genererà un cookie che scade prima della data corrente, quindi quando il cliente ricarica il sito e magento verifica che il cookie non sia valido
pzirkind

@pzirkind C'è qualche possibilità che l'errore apache pubblicato nella domanda o il timestamp possa essere il motivo di questa pagina vuota?
Baby in Magento,

Risposte:


10

Per prima cosa abilita la modalità sviluppatore nel tuo .htaccessfile, aggiungi quanto segue alla fine del file:

SetEnv MAGE_IS_DEVELOPER_MODE "true"

Quindi modifica index.phpe decommenta la riga:

#ini_set('display_errors', 1);

Riga di riferimento:

Successivamente accedi tramite SSH e cerca un file di dump principale /tmpcome errore di segmento menzionato. A volte può essere anche nella radice /o nella directory principale del sito stesso, ad esempio: /var/www/html/videomergerapp/.

Se non riesci a individuare alcun file di dump principale, potresti voler aggiungere alcune direttive aggiuntive a PHP / Apache.

Dai un'occhiata qui:

Una volta che hai i file core di dump, puoi usare gdb(se --enable-debug) è stato usato quando è stato configurato PHP. È possibile effettuare questa determinazione emettendo quanto segue dalla riga di comando:

php -i | grep debugo semplicemente creando un file di script php nel tuo root del server web con: <?php phpinfo(); ?>nei suoi contenuti e visualizza il file tramite browser web per vedere i valori di configurazione di PHP.

Se non è stato abilitato, non sarai in grado di ottenere un backtrace completo in PHP stesso ma solo chiamate di sistema di livello superiore e / o backtrace di apache:

Se hai accesso al file di dump principale che emette qualcosa di simile al seguente ti darà una backtrace per aiutarti a trovare il punto di errore:

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


Se si verificano solo problemi casuali sul frontend e mai sul backend, la maggior parte dei segni indica un possibile problema con la codifica del modello. Quando si verificano le pagine vuote (e / o viene visualizzato l'errore se è stata abilitata la modalità sviluppatore e la visualizzazione dell'errore). Accedi al tuo amministratore e disabilita tutte le cache e svuota tutte le cache e gli archivi di cache.

Quindi andare su app/etc/local.xmle impostare i moduli locali di disabilitazione su true.

<disable_local_modules>true</disable_local_modules>

Ciò disattiverà il caricatore automatico dal caricamento di qualsiasi modulo app/code/local.

Per disabilitare i moduli della comunità è più semplice esaminare ciascuno dei file di definizione dei moduli trovati app/etc/modulese disabilitati impostando il nodo attivo su false in questo modo:

<active>false</active>

In questo modo puoi aiutare a escludere se un modulo di terze parti sta causando la fonte del problema attraverso il processo di eliminazione. NOTA: non puoi disable_local_modulese semplicemente passare attraverso tutti i tuoi moduli NON-CORE (qualsiasi cosa Mage_ * ignori!).

Se i problemi persistono, proverei temporaneamente un pacchetto di modelli predefinito andando su Sistema> Progettazione e definendo un nuovo design di qualcosa come default o base. Se i pacchetti di modelli stock funzionano, saprai che la causa dell'errore risiede nei file di progettazione del modello (.phtml).

Molti modelli in cui mi imbatto sono pessimi nell'utilizzare i Mage::getModel()->load()cicli foreach poiché questa è una cattiva pratica e alla fine può consumare grandi quantità di memoria e risorse del server.

Magento ha uno strumento di analisi del codice che può aiutarti a scansionare i tuoi file modello per determinare se c'è una di queste cattive parti di codice:

Ulteriori letture:

Inoltre, può essere utile per tutti in quale cache e spazio di archiviazione della sessione si sta utilizzando app/etc/local.xml.

Spero che sia di aiuto!


proverò questo e ti farò sapere ....
Baby in Magento,

abbiamo cancellato la cartella var / session. di aver risolto il nostro problema fino ad oggi. ma oggi questo problema si è nuovamente verificato. di quanto ho aggiunto in .htaccess: SetEnv MAGE_IS_DEVELOPER_MODE "true" e decomment ini_set ('display_errors', 1); questa linea. e <disable_local_modules> true </disable_local_modules>. Di quando ho ricevuto questo errore: magento.stackexchange.com/questions/94559/…
Baby in Magento,

non sto cancellando alcuna sessina dopo aver fatto alcune chnages, se pulisco automaticamente la sessione risolverà tutto il problema. non pensi che sia cookie o sessioni relativi a qualcosa? C'è un modo per risolverlo ?
Baby in Magento,

@BabyinMagento Sei riuscito a risolvere il problema in base alle informazioni fornite? In caso affermativo, qual è stato il problema per coloro che hanno riscontrato un problema simile? Grazie.
B00MER,

1
Grazie mille per il tuo supporto. abbiamo cancellato la cartella della sessione e nascosto cose relative ai cookie in varien.php. ma dobbiamo ancora aspettare ancora un po 'di tempo per verificare se abbiamo ottenuto una soluzione permanente o meno. giusto abbiamo ottenuto la soluzione quando abbiamo cancellato la cartella della sessione.
Baby in Magento,

3

Suppongo che ci sia una ricorsione nel tuo codice. Modifica il file lib/Varien/Db/Adapter/Pdo/Mysql.phpe imposta $_debuge $_logCallStacksu true. Questo dovrebbe registrare lo stack di chiamate in un var/debug/pdo_mysql.logfile che dovrebbe darti un'idea se c'è una ricorsione nel tuo codice quando impiegherà un'eternità a caricarsi. Nota che questo file continuerà a crescere molto rapidamente, quindi abilitalo idealmente quando pensi che il problema sia iniziato sul posto.

L'altro modo è disabilitare i moduli / le estensioni con errori che si ritiene possano causare questo. Questa potrebbe essere anche la tua semplice estensione dei prezzi configurabile, prova a disabilitarla temporaneamente e vedi se aiuta a prevenire il problema.


ho cambiato i valori di "$ _debug" e "$ _logCallStack" su true, ora sto aspettando il file pdo_mysql.log. e le nostre cartelle di log si stanno riempiendo troppo, ci sono quasi 90 gb di log lì. ho installato la semplice estensione configurabile prima di 2 settimane, questo problema era presente da 2 mesi. ma ho ancora bisogno di guardare altri moduli buggy.
Baby in Magento,

Finora non ho trovato questo file var / debug / pdo_mysql.log, ma sono stati creati i registri di sistema e delle eccezioni. posso vedere questo registro principalmente: "lib / Varien / Simplexml / Config.php on line 510"
Baby in Magento,

90 GB di log? Wow! Esegui il backup in un posto diverso e svuota i file. ciò dovrebbe almeno aiutare a migliorare in qualche modo la velocità del tuo sito.
Kalpesh,

si hai ragione. continuiamo a cancellare dopo alcune volte. quei registri sono a causa di questo problema? e fino ad ora non ho trovato alcun pdo_mysql.log
Baby in Magento,

Controlla il valore $_debugFilenel file Mysql.php e assicurati che la tua vardirectory disponga delle autorizzazioni necessarie per creare una cartella e un file.
Kalpesh,

2

Ho avuto lo stesso problema nel sito Web di un cliente. Controlla il tuo Magento per malware.

Questo è uno scenario ben noto, di solito si tratta di un walware che reindirizza il contenuto dei messaggi dell'utente a un sito Web esterno.

Inizia a controllare index.php, di solito lo hackerano. Scorri il codice fino alla fine, controlla anche a destra e tra le righe commentate nell'intestazione della licenza. Gli hacker vengono utilizzati per nascondere il codice in questo modo.

Hai il "caricamento per sempre" perché tenta di contattare i siti Web bloccati dal tuo ISP.

Dovrebbe essere abbastanza facile trovare il malware, cercare le stringhe "base64", "eval", "mcrypt".


questo è il nostro indice.php => pastebin.com/N8xnWMa7
Baby in Magento

il nostro sito è stato violato prima di 3 mesi, dopo che è arrivato solo questo problema. ma in seguito abbiamo adottato molte misure di sicurezza dal lato server. ma pensi che il codice compromesso sia ancora presente nel sito e crei problemi ?.
Baby in Magento,

Bene, il tuo index.php va bene, ma i tuoi sintomi sono davvero come quelli che ho visto in alcuni webist hackerati dai clienti. Ti suggerisco di eseguire una ricerca completa cercando i seguenti schemi: "base64", "eval", "mcrypt", "$ _POST". Ti daranno tonnellate di falsi positivi, quindi devi controllarli. Se non trovi nulla di sbagliato ti suggerisco un'analisi cachegrind o un'analisi passo-passo di xdebug.
Phoenix128_RiccardoT

cercherò quelle parole nei file del nostro sito.
Baby in Magento,

sto trovando un numero illimitato di volte: "base64" codifica e decodifica testi ........
Baby in Magento,

2

Ho avuto un comportamento simile su un Magento che aveva due siti Web. Il sito si stava caricando bene per alcune pagine e poi si caricava per sempre.

La configurazione degli URL di base era errata. L'impostazione dell'URL di base protetta è stata impostata sul sito Web errato mentre l'URL di base non protetta è stata impostata correttamente.

Quindi, per risolvere questo problema se l'amministratore non funziona nemmeno correttamente, i valori devono essere modificati nella tabella core_config_data per il sito Web giusto, ovvero impostare l'URL giusto con "http: //" e una barra finale nel campo valore corrispondente a il percorso "web / unsecure / base_url" e "web / secure / base_url" per l'ambito_id corretto che rappresenta l'ID del sito Web.

inserisci qui la descrizione dell'immagine

Si noti che l'URL sicuro è http solo perché era un sito Web demo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.