Sesi ialah mekanisme yang sangat biasa digunakan dalam PHP Ia menyimpan data yang dijana oleh pengguna semasa lawatan ke tapak web ke pelayan supaya data boleh digunakan dalam operasi seterusnya. Contohnya, dalam tapak web beli-belah, selepas pengguna menambah item pada troli beli-belah, dia boleh menggunakan data troli beli-belah yang disimpan dalam Sesi pada halaman daftar keluar.
Walau bagaimanapun, dalam PHP, Sesi disimpan pada pelayan dalam bentuk fail secara lalai. Walaupun kaedah ini mudah, ia mempunyai beberapa masalah yang berpotensi. Sebagai contoh, jika tapak web mempunyai bilangan lawatan yang tinggi, sejumlah besar fail Sesi akan dijana pada pelayan, yang boleh menyebabkan masalah prestasi pelayan dengan mudah Selain itu, memandangkan Sesi disimpan secara setempat pada pelayan, ia juga akan terjejas oleh masalah seperti ranap pelayan dan fail Sesi dipadamkan.
Oleh itu, untuk meningkatkan kestabilan dan prestasi Sesi, adalah perlu bagi kami untuk membuat beberapa pelarasan pada Sesi. Di bawah, kami mengambil versi PHP 7.2 sebagai contoh untuk memperkenalkan cara mengubah suai konfigurasi PHP Sesi.
Dalam PHP, session.save_handler ialah nama pemproses storan Sesi Anda boleh melaraskan cara Sesi disimpan dengan mengubah suai ini parameter.
Untuk tapak web yang mempunyai trafik tinggi, kami boleh menetapkan session.save_handler kepada redis atau memcached untuk menyimpan Sesi dalam cache. Ini boleh mengurangkan dengan ketara bilangan fail Sesi pada pelayan dan meningkatkan prestasi pelayan.
Contoh kod berikut menunjukkan cara menyimpan Sesi dalam redis:
session_save_path('tcp://127.0.0.1:6379?database=0'); ini_set('session.save_handler', 'redis');
dalam PHP, session.gc_probability dan session.gc_divisor ialah parameter mekanisme kutipan sampah Sesi. Ia digunakan untuk mengawal kekerapan kitar semula Sesi.
Secara lalai, nilai session.gc_probability ialah 1, yang bermaksud setiap permintaan mempunyai kebarangkalian tertentu untuk mencetuskan kitar semula Sesi manakala nilai session.gc_divisor ialah 100, yang bermaksud setiap permintaan mempunyai tertentu kebarangkalian mencetuskan kitar semula Sesi Kebarangkalian mencetuskan kitar semula Sesi adalah satu. Ini akan menjadikan kutipan sampah sangat kerap dan menjejaskan prestasi pelayan.
Oleh itu, kami boleh melaraskan nilai session.gc_probability dan session.gc_divisor dengan sewajarnya untuk mengurangkan bilangan pencetus mekanisme kitar semula Sesi.
Contoh kod berikut menunjukkan cara menetapkan nilai session.gc_probability dan session.gc_divisor kepada nilai yang lebih besar, dengan itu mengurangkan bilangan pencetus mekanisme kitar semula:
ini_set('session.gc_probability', 50); ini_set('session.gc_divisor', 1000);
Dalam PHP, session.gc_maxlifetime ialah parameter kitaran hayat Sesi. Ia menunjukkan masa penyimpanan maksimum fail Sesi yang melebihi masa ini akan dipadamkan secara automatik.
Secara lalai, nilai session.gc_maxlifetime ialah 1440 saat (24 minit), yang bermaksud fail Sesi hanya boleh bertahan selama 24 minit. Bagi sesetengah aplikasi yang perlu menyimpan Sesi untuk masa yang lama, kali ini mungkin terlalu singkat, menyebabkan Sesi hilang.
Oleh itu, kami boleh memanjangkan masa kelangsungan Sesi dengan sewajarnya dengan mengubah suai parameter session.gc_maxlifetime.
Contoh kod berikut menunjukkan cara menetapkan nilai session.gc_maxlifetime kepada 3600 saat (1 jam):
ini_set('session.gc_maxlifetime', 3600);
Dalam PHP, session.cookie_lifetime ialah parameter kitaran hayat bagi Kuki Sesi. Ia mewakili masa kemandirian ID Sesi sebelah pelayan dalam kuki sebelah pengguna. Apabila masa ini tamat, pengguna perlu menjana semula ID Sesi baharu.
Secara lalai, nilai session.cookie_lifetime ialah 0, yang bermaksud bahawa Kuki Sesi akan tamat tempoh selepas pengguna menutup penyemak imbas. Dengan cara ini, dalam sesetengah aplikasi yang perlu menyimpan Sesi untuk masa yang lama, pengguna perlu log masuk semula selepas menutup penyemak imbas.
Oleh itu, kami boleh melanjutkan masa kemandirian Kuki Sesi dan memaksimumkan peranan Sesi dengan mengubah suai parameter session.cookie_lifetime.
Contoh kod berikut menunjukkan cara menetapkan nilai session.cookie_lifetime kepada 3600 saat (1 jam):
ini_set('session.cookie_lifetime', 3600);
Ringkasan
Dengan melaraskan konfigurasi PHP Sesi , Kami boleh mengoptimumkan dan meningkatkan Sesi untuk meningkatkan prestasi dan kestabilan pelayan. Konfigurasi PHP yang diperkenalkan di atas boleh digunakan sebagai rujukan, dan pembangun boleh melaraskannya mengikut keperluan sebenar mereka.
Atas ialah kandungan terperinci Bagaimana untuk mengubah suai konfigurasi sesi dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!