正常的php.ini,session 的預設存活時間為 24 分鐘(1440秒)
session.gc_maxlifetime = 1440
但如果時間到了,session 卻還存在,沒有被刪除是怎麼回事呢 ?
原來垃圾收集者(GC),並不是一定時間到就會工作,而是是透過機率來工作。
讓 iZO 來說明一下。
在 php.ini – GC的預設值如下:
讓 iZO 來說明一下。
在 php.ini – GC的預設值如下:
session.gc_probability = 1 session.gc_divisor = 100
這代表著,有100分之一的機率會清除session
我們只要將其更改為下方,,並重啟 httpd 服務:
session.gc_maxlifetime = 216000 session.gc_probability = 1 session.gc_divisor = 1
就代表 存活24hrs並100%清除session