Situs langsung kosong di frontend atau tetap memuat dan tidak pernah memuat

23

Saya menghadapi Masalah Aneh yang pernah ada di Magento. kami menggunakan versi 1.9.0.

dari 2 bulan terakhir, situs langsung kami "kosong" atau "terus memuat" untuk peramban bekas. Berarti di browser ini kami mengunjungi situs banyak kali.

di beberapa browser, ini berfungsi dengan baik. dalam beberapa menunjukkan kosong.

tapi backend bekerja dengan baik di semua browser.

kami menghadapi masalah di chrome, mozilla, opera, dan semua browser lainnya.

1) Jika kita menghapus riwayat browser [cache dan cookie], ini tidak akan berfungsi.

2) Jika kita membuka situs yang sama di jendela pribadi, ini berfungsi.

3) Jika kita membuka situs di browser yang baru diinstal, itu berfungsi untuk beberapa waktu. lagi kosong setelah kami menggunakan situs.

4) Jika kita menghapus folder var / session, maka itu akan mulai berfungsi untuk semua browser untuk beberapa waktu. lagi situs kosong.

5) kadang-kadang, situs akan terus memuat dan tidak akan pernah memuat ....

Saya memeriksa system.log & exception.log . tapi sepertinya tidak ada kesalahan yang terkait dengan ini. kami menggunakan https untuk halaman aman . bahkan kami memiliki aplikasi Android langsung untuk situs ini. terkadang kita akan mendapatkan kesalahan fatal:

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

kita atur memory_limit = 1512 Mb di php.ini

di .htaccess kami memiliki file berikut.

php_value memory_limit 1512M php_value max_execution_time 18000

kami membatalkan komentar ini:

ini_set('display_errors', 1);

tetapi tidak ada kesalahan ditampilkan di frontend. Ini adalah log kesalahan apache :

child pid 23845 keluar sinyal Segmentasi kesalahan (11), mungkin coredump di / etc / apache2

Benar-benar berjuang untuk menyelesaikan masalah ini. Apakah masalah ini terkait dengan kode kami atau apakah masalah ini terkait dengan sisi server?

apakah cookie browser adalah masalah utama? Jika demikian, apa yang perlu dilakukan untuk mengatasi masalah cookie ini untuk semua browser. mengapa ini mulai berfungsi setelah kami menghapus folder sesi?

kami menghadapi masalah ini saat menjelajahi situs kami. masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Baby di Magento
sumber
mungkinkah ini masalah cookie? stackoverflow.com/questions/15491819/…
pzirkind
tautan yang saya tempel adalah untuk backend tetapi frontend mungkin memiliki masalah cookie juga ... mungkin karena masa pakai cookie dan timestamp server tidak aktif
pzirkind
@ pzirkind dalam kasus backend kami baik-baik saja untuk semua browser. daripada kita harus meningkatkan umur cookie melalui kode? dan saya tidak punya tentang timestamp server tidak aktif. Apakah kita harus berhasil?
Baby in Magento
@Babby di Magento kadang-kadang jika server tidak memiliki stempel waktu yang benar, itu akan menghasilkan cookie yang kedaluwarsa sebelum tanggal saat ini, jadi ketika pelanggan memuat ulang situs dan magento memeriksa cookie itu tidak valid
pzirkind
@ pzirkind Apakah ada kemungkinan kesalahan apache yang diposting di pertanyaan atau cap waktu mungkin menjadi alasan untuk halaman kosong ini?
Baby in Magento

Jawaban:

10

Pertama-tama aktifkan mode Pengembang di .htaccessfile Anda , tambahkan berikut ini di akhir file:

SetEnv MAGE_IS_DEVELOPER_MODE "true"

Edit berikutnya index.phpdan batalkan komentar pada baris:

#ini_set('display_errors', 1);

Baris yang dirujuk:

Selanjutnya login melalui SSH dan cari file dump inti di bawah /tmpsebagai kesalahan segmen kesalahan yang disebutkan. Kadang-kadang juga bisa di root /atau direktori root dari situs itu sendiri misalnya: /var/www/html/videomergerapp/.

Jika Anda tidak dapat menemukan file dump inti, Anda mungkin ingin menambahkan beberapa arahan tambahan ke PHP / Apache.

Lihatlah di sini:

Setelah Anda memiliki file dump inti, Anda dapat menggunakan gdb(jika --enable-debug) digunakan ketika PHP dikonfigurasi. Anda dapat menentukan ini dengan mengeluarkan yang berikut dari Command Line:

php -i | grep debugatau hanya membuat file skrip php di root server web Anda dengan: <?php phpinfo(); ?>dalam isinya dan melihat file melalui browser web untuk melihat nilai-nilai konfigurasi PHP.

Jika tidak diaktifkan, maka Anda tidak akan bisa mendapatkan backtrace penuh ke dalam PHP itu sendiri tetapi hanya panggilan sistem tingkat tinggi dan / atau backtrace apache:

Jika Anda memiliki akses ke file dump inti yang mengeluarkan sesuatu seperti berikut ini akan memberi Anda backtrace untuk membantu menemukan titik kegagalan:

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


Jika Anda hanya mengalami masalah acak di frontend dan tidak pernah backend, maka sebagian besar tanda menunjukkan kemungkinan masalah dengan pengkodean template Anda. Setelah Anda mengalami halaman kosong (dan / atau kesalahan ditampilkan jika Anda telah mengaktifkan mode pengembang dan tampilan kesalahan). Masuk ke admin Anda dan nonaktifkan semua cache dan siram semua cache dan penyimpanan cache.

Kemudian masuk ke app/etc/local.xmldan atur agar modul lokal yang dinonaktifkan menjadi true.

<disable_local_modules>true</disable_local_modules>

Ini akan menonaktifkan pemuat otomatis dari memuat modul apa pun di app/code/local.

Untuk menonaktifkan modul komunitas, paling mudah untuk menelusuri setiap file definisi modul Anda yang ditemukan app/etc/modulesdan dinonaktifkan dengan mengatur simpul aktif ke false seperti:

<active>false</active>

Dengan cara ini Anda dapat membantu mengesampingkan jika modul pihak ke-3 menyebabkan sumber masalah melalui proses eliminasi. CATATAN: Anda tidak dapat disable_local_modulesdan cukup membaca semua modul NON-CORE Anda (apa pun yang Mage_ * abaikan!).

Jika masih ada masalah maka saya akan mencoba paket templat default sementara dengan masuk ke System> Design dan mendefinisikan desain baru dari sesuatu seperti default atau base. Jika paket templat saham berfungsi maka Anda akan tahu penyebab kesalahannya adalah tinggal di file desain templat Anda (.phtml).

Banyak template yang saya temui buruk tentang penggunaan Mage::getModel()->load()dalam loop foreach karena ini adalah praktik yang buruk dan pada akhirnya dapat mengkonsumsi sejumlah besar memori server dan sumber daya.

Magento memang memiliki alat Analisis Kode yang dapat membantu memindai file template Anda untuk menentukan apakah ada bagian kode yang salah:

Bacaan lebih lanjut:

Juga, mungkin bermanfaat bagi semua orang cache dan penyimpanan sesi yang Anda gunakan yang didefinisikan app/etc/local.xml.

Semoga ini membantu!

B00MER
sumber
Saya akan mencoba nad ini membiarkan Anda tahu ....
Baby in Magento
kami membersihkan folder var / session. daripada memecahkan masalah kita sampai hari ini. tetapi hari ini masalah ini kembali terjadi. daripada saya menambahkan ini dalam .htaccess: SetEnv MAGE_IS_DEVELOPER_MODE "true" dan batalkan komentar ini_set ('display_errors', 1); garis ini. dan <disable_local_modules> true </disable_local_modules>. Daripada saya mendapatkan kesalahan ini: magento.stackexchange.com/questions/94559/…
Baby in Magento
saya tidak menghapus sessin apa pun setelah saya melakukan beberapa chnages, jika saya menghapus sesi secara otomatis itu akan menyelesaikan semua masalah. bukankah itu sesuatu yang berhubungan dengan cookie atau sesi? apakah ada cara untuk menyelesaikan ini?
Baby in Magento
@BabyinMagento Apakah Anda dapat menyelesaikan masalah berdasarkan informasi yang diberikan? Jika demikian, apa masalah bagi mereka yang mengalami masalah serupa? Terima kasih.
B00MER
1
Terima kasih banyak atas dukungannya. kami membersihkan folder sesi dan menyembunyikan hal-hal terkait cookie di varien.php. tetapi kita masih harus menunggu beberapa saat lagi untuk memeriksa apakah kita mendapatkan solusi permanen atau tidak. benar kami mendapat solusi saat kami membersihkan folder sesi.
Baby in Magento
3

Dugaan saya adalah ada rekursi dalam kode Anda. Mengedit file lib/Varien/Db/Adapter/Pdo/Mysql.phpdan set $_debugdan $_logCallStackke true. Ini harus mencatat tumpukan panggilan dalam var/debug/pdo_mysql.logfile yang akan memberi Anda ide jika ada rekursi dalam kode Anda ketika dibutuhkan selamanya untuk memuat. Perhatikan bahwa file ini akan terus tumbuh sangat cepat sehingga idealnya mengaktifkannya ketika Anda berpikir masalah telah dimulai di situs.

Cara lain adalah dengan menonaktifkan modul kereta / ekstensi yang menurut Anda bisa menyebabkan ini. Ini juga bisa berupa ekstensi harga yang mudah dikonfigurasi, coba nonaktifkan untuk sementara dan lihat apakah itu membantu mencegah masalah.

Kalpesh
sumber
saya mengubah nilai "$ _debug" dan "$ _logCallStack" menjadi true, sekarang saya menunggu file pdo_mysql.log. dan folder log kita mengisi terlalu banyak, hampir 90 gb log ada di sana. saya menginstal ekstensi sederhana yang dapat dikonfigurasi sebelum 2 minggu, masalah ini sudah ada sejak 2 bulan. tapi masih perlu melihat modul kereta lainnya.
Baby in Magento
saya tidak menemukan file ini var / debug / pdo_mysql.log sampai sekarang, tetapi sistem dan log pengecualian dibuat. saya dapat melihat log ini terutama: "lib / Varien / Simplexml / Config.php on line 510"
Baby in Magento
90 GB log? Wow! Cadangkan ke tempat yang berbeda dan kosongkan file. yang seharusnya setidaknya membantu meningkatkan kecepatan situs Anda.
Kalpesh
ya kamu benar. kami terus menghapus setelah beberapa kali. Apakah log-log itu karena masalah ini? dan sampai sekarang saya tidak menemukan pdo_mysql.log
Baby in Magento
Periksa nilai $_debugFiledalam file Mysql.php dan pastikan vardirektori Anda memiliki izin yang diperlukan untuk membuat folder dan file.
Kalpesh
2

Saya memiliki masalah yang sama di situs web pelanggan. Periksa Magento Anda untuk mengetahui malware.

Ini adalah skenario yang terkenal, biasanya itu adalah walware yang mengarahkan ulang konten pos pengguna ke situs web eksternal.

Mulai memeriksa index.php, mereka biasanya meretasnya. Gulirkan kode hingga akhir, juga periksa ke kanan dan di antara baris yang dikomentari dalam judul lisensi. Peretas digunakan untuk menyembunyikan kode dengan cara ini.

Anda memiliki "pemuatan selamanya" karena mencoba menghubungi situs web yang diblokir ISP Anda.

Seharusnya cukup mudah untuk menemukan malware, mencari string "base64", "eval", "mcrypt".

Phoenix128_RiccardoT
sumber
ini adalah index.php => pastebin.com/N8xnWMa7 kami
Baby in Magento
situs kami diretas sebelum 3 bulan, setelah itu hanya masalah ini yang datang. tetapi kemudian kami mengambil banyak langkah keamanan dari sisi server. tetapi apakah Anda pikir kode yang diretas masih ada di situs dan menimbulkan masalah?
Baby in Magento
Yah, index.php Anda baik-baik saja, tetapi gejala Anda benar-benar seperti yang saya lihat di beberapa pelanggan web yang diretas. Saya sarankan Anda untuk melakukan pencarian lengkap mencari pola berikut: "base64", "eval", "mcrypt", "$ _POST". Mereka akan memberi Anda banyak positif palsu sehingga Anda perlu memeriksanya. Jika Anda tidak menemukan kesalahan, saya sarankan Anda analisis cachegrind atau analisis xdebug langkah demi langkah.
Phoenix128_RiccardoT
saya akan mencari kata-kata itu di file situs kami.
Baby in Magento
saya menemukan waktu tak terbatas: "base64" menyandikan dan mendekodekan teks ........
Baby in Magento
2

Saya telah mengalami perilaku serupa di Magento yang memiliki dua situs web. Situs itu memuat dengan baik selama beberapa halaman dan kemudian memuat selamanya.

Konfigurasi URL dasar salah. Pengaturan URL Basis Aman diatur ke situs web yang salah sementara URL Basis Tidak Aman diatur dengan benar.

Jadi untuk memperbaikinya jika admin bahkan tidak berfungsi dengan baik, nilai-nilai perlu diubah dalam tabel core_config_data untuk situs web yang benar yaitu mengatur URL yang tepat dengan "http: //" dan garis miring di bidang nilai yang sesuai dengan jalur "web / unsecure / base_url" dan "web / secure / base_url" untuk scope_id yang tepat mewakili ID situs web.

masukkan deskripsi gambar di sini

Perhatikan bahwa url aman adalah http hanya karena itu adalah situs web demo.

Brac
sumber