Jika Anda menggunakan pekerjaan cron untuk menghapus semua sesi, Anda akan menghapus semua keranjang belanja pelanggan dan orang-orang akan membuat situs Anda marah.
Saya sarankan Anda melihat file sesi Anda dan melihat apakah mereka terlihat mencurigakan.
Coba periksa di mana alamat IP pengunjung Anda berasal dari sini: https://www.iplocation.net/
Jika, misalnya, Anda menemukan banyak IP Cina dan situs web Anda bukan Cina, ini mungkin bot yang menghabiskan bandwidth Anda. Anda harus memblokir rentang IP mereka di pengaturan Apache Anda atau di .htaccess
.
(Saya percaya Anda bahkan dapat melakukan penyaringan berbasis negara di Apache tapi saya pikir itu memperlambat waktu respons. Saya belum mencobanya.)
Magento 1.x (tidak yakin tentang 2.x) juga tampaknya memiliki bug di mana ia membuat sesi baru untuk setiap permintaan ketika klien tidak menerima cookie. Jadi bot seperti Googlebot, Bingbot, SemrushBot, dan lainnya, semua menghasilkan banyak file sesi.
Untuk server saya, satu-satunya hal yang perlu saya lakukan adalah menyingkirkan file sesi bot tersebut. Sampai saya punya waktu untuk menemukan dan memperbaiki bug Magento, saya memiliki skrip shell yang dijalankan oleh cron untuk menghapus semua file sesi yang berisi string ini:
- Googlebot
- bingbot
- laba-laba
- Semrush
- AhrefsBot
- UptimeRobot
- spbot
Daripada menggunakan skrip khusus, akan lebih masuk akal untuk membuat PHP menjernihkannya untuk Anda dengan menentukan nilai yang tepat dalam
php.ini
file Anda . Jika Anda memastikan yangsession.gc_maxlifetime
memiliki nilai yang relatif kecil (tetapi> = batas waktu cookie sesi Anda) eg1440 dansession.gc_probability
diatur ke 1, maka pemulung sampah sesi PHP yang dibangun harus menghapus file untuk Anda.sumber
Magento menyimpan data sesi pelanggan di folder var / sesi jika Anda menghapus folder ini, ia akan menghapus semua data sesi pelanggan
Mari kita asumsikan salah satu pelanggan tamu Anda menambahkan 3 produk ke troli jika Anda menghapus data sesi, itu akan menghapus semua 3 produk dari troli dan itu pengalaman buruk bagi pelanggan daripada menghapus data sesi Anda dapat menyimpan sesi ke database
Untuk menggunakan database untuk penyimpanan sesi, cukup simpan ini di aplikasi Anda / etc / local.xml :
atau Anda dapat menggunakan sesi redis / cache Sesi Memcached untuk menyimpan data dalam cache redis / Sesi Memcached
Untuk menggunakan toko sesi memcached di Magento Anda harus memiliki ini di aplikasi Anda / etc / local.xml :
Untuk informasi lebih lanjut tentang penyimpanan sesi, kunjungi tautan ini
sumber
Salah satu solusinya adalah Anda dapat membuat pekerjaan cron yang berjalan sekali per hari untuk menghapus file yang Anda inginkan.
Di sini Anda dapat melihat cara mengatur pekerjaan cron: /ubuntu/2368/how-do-i-set-up-a-cron-job
tutorial cpanel untuk cronjob: http://support.hostgator.com/articles/cpanel/how-do-i-create-and-delete-a-cron-job
Anda dapat membuat skrip bash atau php yang akan melakukan operasi menghapus file. Dan letakkan skrip ini di cron, untuk dieksekusi waktu server 3 atau 4 pagi, ketika server kurang digunakan. Untuk menguji skrip berfungsi, Anda dapat menjalankannya secara manual.
sumber
Buat file sh di root dokumen. Masukkan kode di bawah ini di dalamnya.
ubah jalur dengan jalur document_root Anda tanpa tanda kutip. Jalankan kode ini ketika ada lebih sedikit klik situs.
DIBUAT !!
sumber