ini_set('session.gc_probability',1);
ini_set('session.gc_divisor',1);
이 두 가지로 인해 PHP는 사이트의 모든 조회수에 대해 세션 정리 스크립트를 실행해야합니다. GC의를 실행하는 PHP의 공식은 : 지금 당신이 1/1있어
if (random() < (gc_probability/gc_divisor)) then
run_session_garbage_collector()
}
때문에 가비지 컬렉터 실행되고 100 %의 확률. 타임 아웃 기간을 늘리는 것이 좋지만 콜렉터가 전혀 실행되지 않는 경우도 줄일 수 있습니다. 그렇지 않으면 PHP가 모든 세션 파일을 전체 검사하고 각 파일을 구문 분석하여 사이트의 모든 조회에 대해 만료 된 홀수 한두 개를 찾습니다.
가비지 수집기를 완전히 비활성화하려면 gc_probability를 0으로 설정하십시오.
물론, ini_set()을 사용하여 스크립트 내에서 설정을 변경해도 다른 스크립트가 사용하는 시간 초과/기본값은 변경되지 않습니다. 이 스크립트는 더 긴 타임 아웃과 변경된 확률을 가질 수 있지만, 다른 스크립트가 기본 타임 아웃 (10 분 또는 그 이상)을 가지고 있다면, 그들은 "낡은"세션을 행복하게 누설 할 것입니다.
세션 시간 제한/정리 설정을 지정하는 적절한 위치는 php.ini 수준에 있으므로이 스크립트가 사이트의 모든 스크립트에 적용됩니다.