로그인 할 때 오래된 세션파일 삭제하기 정보
로그인 할 때 오래된 세션파일 삭제하기
관련링크
http://g4.miwit.com/
261회 연결
첨부파일
본문
그누보드는 data/session/ 디렉토리에 세션파일이 생성됩니다.
이 파일들은 php 설정에 따라 일정 시간이 지나면 삭제가 되야 하는데
사실 삭제가 안되는 경우가 대부분입니다.
세션 파일들이 오래 쌓이다 보면 디렉토리 안에 파일 갯수가 방대해지고
리눅스 쉘에서 rm -f * 명령어로도 한번에 삭제가 안됩니다.
관리자 메뉴에 세션파일삭제 기능이 들어있지만
관리자가 직접 실행해 줘야 하고 파일이 많을경우 브라우져가 다운되기도 합니다.
가장 좋은 방법이라고 생각한 것은 사용자 로그인시 마다 하루가 지난 세션파일을 삭제하는 것입니다.
관리자가 굳이 신경 쓰지 않아도 자동으로 관리가 되는 것이지요.
방법은 첨부된 파일을 skin/member/basic(사용중인스킨)/ 디렉토리에 업로드하여 덮어씌우시면 됩니다.
만약 login_check.skin.php 파일을 수정하여 사용중이시라면 아래 코드를 추가해주시면 됩니다.
하루에 한번 실행되도록 수정했습니다.
이 파일들은 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_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);
}
$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
6
댓글 10개
오호...세션 그런게 있는지도 몰랐어요;ㅅ;ㅎㅎ
감사합니다 좋은팁
감사합니다 좋은팁
감사합니다^^

감사합니다. 그렇지 않아도 Session 파일이 많이 생기고 있어 걱정 이었는데..

좋은 팁 감사합니다.
요즘 열정적이십니다.
요즘 열정적이십니다.

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

좋은 팁입니다.
저같은 경우도 로그인파일 때문에 갑자기 사이트가 느려지는 일이 종종 일어 납니다. 그때마다 호스팅회사에 연락해서 조치했는데 좋은 팁이네요. 바로 적용하였습니다.
저같은 경우도 로그인파일 때문에 갑자기 사이트가 느려지는 일이 종종 일어 납니다. 그때마다 호스팅회사에 연락해서 조치했는데 좋은 팁이네요. 바로 적용하였습니다.
오래된 세션파일 삭제하기

감사합니다 잘 쓸께요 ^^

감사합니다~^_^;

하루에 한번 실행하는 코드에 문제가 있습니다. 아래 게시물을 확인해주세요.
http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=15945
http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=15945