【PHP】session的存活時間 / 垃圾收集者(GC) / 設定

正常的php.ini,session 的預設存活時間為 24 分鐘(1440秒)

session.gc_maxlifetime = 1440

但如果時間到了,session 卻還存在,沒有被刪除是怎麼回事呢 ?

原來垃圾收集者(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