Pengguna masuk ke situs web PHP> Saya me-restart Apache> Pengguna harus masuk lagi.
Bagaimana cara mencegahnya? (Saya tidak ingin pengguna harus masuk lagi)
Pengguna masuk ke situs web PHP> Saya me-restart Apache> Pengguna harus masuk lagi.
Bagaimana cara mencegahnya? (Saya tidak ingin pengguna harus masuk lagi)
Jawaban:
Menyimpan token sesi di lokasi alternatif sebagai cadangan akan mencegah masalah ini. Anda masih bisa menyimpan informasi utama Anda $_SESSION
, tetapi tetap menyimpan token cadangan di:
Anda mungkin menemukan bantuan dalam pertanyaan StackOverflow ini: praktik terbaik untuk waktu tunggu sesi dan login persisten di php .
Data sesi Anda tidak boleh hilang hanya karena Apache dimatikan atau dihidupkan ulang kecuali data sesi disimpan dalam memori dan tidak dicadangkan ke disk (baik oleh sistem file atau database). Jika tidak, Anda dapat me-restart seluruh server dan sesi masih akan tetap ada. Data sesi dirancang untuk disimpan jangka panjang. Satu-satunya waktu sesi hilang adalah jika:
SID hilang. Data sesi masih ada di sisi server, tetapi klien tidak dapat memulihkan SID, jadi tidak dapat memulai kembali sesi yang sama. Ini dapat terjadi jika cookie SID berakhir (jika itu cookie) atau tautan sesi hilang (jika SID adalah parameter URL) atau SID tidak disetel pada sisi-server atau diubah tanpa memberi tahu klien.
Data sesi dihapus di sisi server. Ini biasanya terjadi ketika Pengumpul Sampah Sesi PHP berjalan dan melihat file sesi lebih lama dari session.gc_maxlifetime (yang 24 menit secara default). Kalau tidak, itu bisa terjadi jika aplikasi secara eksplisit menghapus sesi . Pada beberapa server, administrator mungkin juga mengonfigurasi cronjob untuk membersihkan data sesi lama secara teratur.
Dimungkinkan dengan menggunakan argumen yang tepat dengan Apache:
apache2ctl -k graceful
Apache akan memulai ulang tanpa kehilangan sesi saat ini.