Situs yang saya kelola tiba-tiba (mungkin 2 minggu lalu - dari statistik GA, dan baru dilaporkan sekarang) mulai menjatuhkan item keranjang saat Anda melihat keranjang, atau pergi ke checkout.
Bagian atas 'mini-cart' menunjukkan item dalam dropdown, sampai Anda menelusuri ke troli / checkout, dan Anda kemudian berakhir di troli, dengan pesan 'Tidak ada item di troli Anda'.
Sepertinya masalah sesi. Itu tidak terjadi ketika login.
Menghapus semua opsi validasi sesi di 'system-> web-> pengaturan validasi sesi', dan mengaktifkan yang mengatakan 'Gunakan SID di Frontend'. Ini memang memecahkan masalah, tetapi karena pengaturan ini tidak berubah dalam 3 bulan terakhir, saya tahu ada beberapa masalah mendasar.
Ini kemudian menunjuk ke masalah dengan masalah sore-id? Entah bagaimana situs ini kehilangan id toko apa itu, dan menjatuhkan data sesi / keranjang? Mungkin beberapa pengamat / acara / penulisan ulang oleh beberapa modul.
Saya tidak dapat mereplikasi masalah pada pengembang lokal, atau di server UAT. DB pada UAT adalah 2 minggu dari live, jadi ini bisa menunjukkan masalah / pengaturan db?
Hal yang saya coba: Saya sibuk menarik live db saat ini ke UAT untuk mendapatkan yang terbaru, untuk melihat apakah saya dapat mereplikasi masalah di sana. akan memperbarui ketika itu selesai.
Setelah saya dapat mereplikasi masalah di area non-live, saya akan secara sistematis menonaktifkan modul, melihat apakah ada sesuatu yang mucking dengan id toko (dimulai dengan MageMonkey dan sweettooth, karena mereka diperbarui 2 minggu yang lalu)
Pertanyaannya adalah - apa lagi yang bisa saya coba? Adakah petunjuk ke tempat saya dapat memecahkan beberapa breakpoints dan langkah kode untuk melihat apakah saya dapat melacak masalah ini?
tidak ada sistem cache tambahan seperti pernis atau memcache diinstal. Server adalah instalasi cpanel standar. menguji pada uat saya menonaktifkan semua cache.
pembaruan lebih lanjut: akan terlihat bahwa ketika saya beralih ke tema default saya tidak dapat mereproduksi. Saya secara sistematis memindahkan folder override tema kembali.
Saya juga menggunakan git untuk melacak kode dan masalahnya tetap ada di setiap hash.
Pembaruan: Sudah lama sejak saya punya waktu untuk ini. Beban kerja tinggi.
Saya memindahkan sesi ke file berdasarkan dan masalah telah hilang. Karena klien tidak bermaksud menggunakan beberapa server dalam waktu dekat, dan karena beban kerja saya, ini dibiarkan begitu saja. Kemungkinan besar akan kembali menggigit saya nanti.
Dukungan Magento menyarankan masalah ini terkait dengan modul gigi manis memperluas kelas sesi, tapi saya telah menonaktifkan modul itu, dan masalah tetap ada.
akan memperbarui ketika saya mendapatkan hasil lebih banyak.
Jawaban:
Di kotak cPanel kami, aset yang hilang melayani seluruh halaman Magento.
Default cPanel untuk
ErrorDocument 404 /404.shtml
tetapi/404.shtml
tidak ada di root dokumen Magento, sehingga .htaccess dieksekusi lagi dan dialihkan/404.shtml
keindex.php
(menggunakan mod_rewrite)..Htaccess default Magento harus menentukan 404, 500, dan penangan kesalahan lainnya secara eksplisit.
Untuk memperbaiki beahviour ini, kami menambahkan yang berikut ke .htaccess kami:
ErrorDocument 404 /errors/404.php
Kami mungkin juga harus menambahkan 500-an:
ErrorDocument 500 /errors/500.php
sumber
Apakah Anda menggunakan Varnish di server?
Kami telah melihat sejumlah implementasi di mana orang menghapus cookie SEBELUM mengambil konten statis (gambar / css / js) - jadi jika gambar / js / css tidak ada; itu memuat bootstrap Magento dan 404's - ini menghapus sesi cookie dan situs sepenuhnya.
sumber
Satu masalah mungkin Magento tidak menyimpan data sesi ketika beralih dari HTTP ke HTTPS . Pastikan pengaturan yang diperlukan untuk SSL dll. Diatur dengan benar.
Masalah lain mungkin ISP pelanggan mengubah alamat ip mereka, seperti yang didokumentasikan di sini .
Untuk memperbaiki masalah ini:
Ubah pengaturan Validasi Sesi di Admin Magento, ditemukan di bawah System> Configurations> Web , menjadi 'no' pada semuanya kecuali " Validasikan HTTP_USER_AGENT ." Setelah melakukan ini, buka System> Cache Management dan segarkan cache konfigurasi untuk menerapkan perubahan.
sumber
Kami telah mengamati masalah ini ketika ada gambar yang hilang pada halaman, terutama jika gambar tersebut hilang dari semua halaman misalnya di header atau footer. Tampaknya halaman 404 yang dikembalikan Magento atau server web memecah cookie sesi frontend, menyebabkan hilangnya sesi. Ada dalam daftar kami untuk diperbaiki, tetapi solusinya adalah untuk memastikan tidak ada gambar yang hilang ...
sumber
Ini bisa menjadi masalah tanggal cookie / server. Hal pertama yang perlu diperiksa adalah header cookie. Periksa header (menggunakan sesuatu seperti Firebug, Charles atau Fiddler).
Anda harus melihat sesuatu seperti berikut:
Jika nilai untuk bidang kedaluwarsa di masa lalu, maka kemungkinan waktu di server Anda salah. Ini bisa terjadi ketika layanan seperti ntpd gagal memulai. Jika itu masalahnya, periksa waktu di server. Jika waktu tidak aktif, periksa status ntpd (atau layanan daemon mana saja yang menjaga waktu server diperbarui).
sumber
Pengumpulan sampah PHP sedang membersihkan sesi sebelum waktunya. Saya telah melihat ini sendiri di situs dengan lalu lintas tinggi .
Beberapa kiat pemecahan masalah:
ls -laht [mageroot]/var/session/ | tail
- jika Anda tidak memiliki sesi yang lebih lama dari beberapa minggu atau lebih, pengumpulan sampah cenderung disalahkanSaya telah memperbaiki ini dalam salah satu dari dua cara:
php_value session.gc_maxlifetime 2592000
Lebih banyak bacaan: http://www.php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime
sumber
Kami memiliki masalah serupa. Dalam kasus kami, itu adalah konfigurasi Varnish (Seperti Ben Lessani - menyarankan). Kami telah mengonfigurasi Varnish kami ke cache 404 untuk 120an sehingga server kami tidak akan dipalu ketika ada kesalahan 404 pada halaman.
Jadi masalahnya adalah untuk 404an Magento merespons dengan Set-Cookie di header untuk cookie frontend dan frontend_cid, yang mengatur ulang sesi pelanggan.
Solusi kami untuk ini adalah menghapus Set-Cookies apa pun untuk 404 respons,
sumber
Hal-hal bodoh yang telah merusak sesi PHP untuk saya di masa lalu dan mungkin perlu diperiksa:
sumber