로그인 할 때 오래된 세션파일 삭제하기 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

로그인 할 때 오래된 세션파일 삭제하기 정보

로그인 할 때 오래된 세션파일 삭제하기

첨부파일

login_check.skin.php (755byte) 84회 다운로드 2008-05-29 08:18:12

본문

그누보드는 data/session/ 디렉토리에 세션파일이 생성됩니다.
이 파일들은 php 설정에 따라 일정 시간이 지나면 삭제가 되야 하는데
사실 삭제가 안되는 경우가 대부분입니다.

세션 파일들이 오래 쌓이다 보면 디렉토리 안에 파일 갯수가 방대해지고
리눅스 쉘에서 rm -f * 명령어로도 한번에 삭제가 안됩니다.
관리자 메뉴에 세션파일삭제 기능이 들어있지만
관리자가 직접 실행해 줘야 하고 파일이 많을경우 브라우져가 다운되기도 합니다.

가장 좋은 방법이라고 생각한 것은 사용자 로그인시 마다 하루가 지난 세션파일을 삭제하는 것입니다.
관리자가 굳이 신경 쓰지 않아도 자동으로 관리가 되는 것이지요.

방법은 첨부된 파일을 skin/member/basic(사용중인스킨)/ 디렉토리에 업로드하여 덮어씌우시면 됩니다.
만약 login_check.skin.php 파일을 수정하여 사용중이시라면 아래 코드를 추가해주시면 됩니다.

$mw_sess_path = session_save_path();
$mw_cache_time = 86400; // 하루, 초단위 (60*60*24)
if (is_dir($mw_sess_path)) {
    if ($mw_handle = opendir($mw_sess_path)) {
        while (false !== ($mw_file = readdir($mw_handle))) {
            if (substr($mw_file, 0, 1) != "." && $mw_file != "index.php") {
                $mw_file = "$mw_sess_path/$mw_file";
                $mw_diff_time = $g4[server_time] - filemtime($mw_file);
                if ($mw_diff_time > $mw_cache_time) {
                    @unlink($mw_file);
                }
            }
        }
    }
}
closedir($mw_handle);


하루에 한번 실행되도록 수정했습니다.

$mw_sess_path = session_save_path();
$mw_cache_time = 86400; // 하루, 초단위 (60*60*24)
if ($g4[server_time] - fileatime($mw_sess_path) > $mw_cache_time) {
    if ($mw_handle = @opendir($mw_sess_path)) {
        while (false !== ($mw_file = @readdir($mw_handle))) {
            if (substr($mw_file, 0, 1) != "." && $mw_file != "index.php") {
                $mw_file = "$mw_sess_path/$mw_file";
                $mw_diff_time = $g4[server_time] - filemtime($mw_file);
                if ($mw_diff_time > $mw_cache_time) {
                    @unlink($mw_file);
                }
            }
        }
    }
    @closedir($mw_handle);
}
추천
6

댓글 10개

적용해 봐야겠습니다..
늘 이용자쪽의 편의만 생각하고..
관리자는 노가다를 해도 괜찮다고 생각했는데...
슬슬 게을려지네요..^^

감사히 이용하겠습니다.
좋은 팁입니다.
저같은 경우도 로그인파일 때문에 갑자기 사이트가 느려지는 일이 종종 일어 납니다. 그때마다 호스팅회사에 연락해서 조치했는데 좋은 팁이네요. 바로 적용하였습니다.
하루에 한번 실행하는 코드에 문제가 있습니다. 아래 게시물을 확인해주세요.
http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=15945
전체 3,309 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT