블로그 이미지
BJcomm
bjcomm

공지사항

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

calendar

1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
11-22 14:53

PHP Session 공유 (memcached 이용)

2014. 11. 25. 17:23 | Posted by bjcomm

PHP 세션 공유 - memcache 이용

PHP Session 을 파일이 아닌 memcache 를 이용해 보도록 하겠습니다.

우선 memcache를 설치를 합니다. 설치 방법 (http://www.lovelgw.com/Blog/94)

PHP 의 환경 설정 파일에서 session 부분을 아래와 같이 변경 합니다.

session.save_handler = memcache
session.save_path = "tcp://127.0.0.1:11211"

위와 같이 셋팅을 합니다. 셋팅을 완료한 후에는 Apache 를 재시작 해주시면 설정이 적용이 됩니다.
PHP 세션을 file이 아닌 memcache를 이용해 저장을 하는 방식입니다. 다른 머신의 웹 서버에서 세션을 공유할 때 위와 같이 사용하시면 됩니다

PHP 테스트 파일입니다.

01.<?
02.    session_start();
03.      
04.    // 서버 정보 표시
05.    echo 'SERVER_NAME : ' . $_SERVER['SERVER_NAME'] . '<BR />';
06.    echo 'SERVER_ADDR : ' . $_SERVER['SERVER_ADDR'] . '<BR />';
07.    echo 'SERVER_SERVER_SOFTWARE : ' . $_SERVER['SERVER_SOFTWARE'] . '<BR />';
08.    echo 'session.save_handler : ' . ini_get('session.save_handler') . '<BR />';
09.    echo 'session.save_path : ' . ini_get('session.save_path') . '<BR /><BR />';
10.          
11.    // 세션이 정상적으로 생겼으면
12.    if($_SESSION['check'])
13.    {
14.        echo 'increment count <br />' ;
15.        // 카운트를 증가 시킨다.
16.        $_SESSION['reflashCnt']++;
17.    }
18.    else 
19.    {
20.        // 없을 경우 세션 정보를 입력한다.
21.        echo 'create session information <br />' ;
22.        $_SESSION['check'] = true;
23.        $_SESSION['name'] = 'lovelgw';
24.        $_SESSION['age'] = 21;  
25.        $_SESSION['reflashCnt'] = 0;
26.    }
27.      
28.    foreach ($_SESSION as $key => $value)
29.        echo $key . ' => ' . $value . '<BR>';
30.          
31.?>


 

 

lovelgw.com 서버에서 호출한 화면

 

localhost 에서 호출한 화면 (hosts 파일 변경 후 동작)

세션이 공유를 테스트 하기 위해 %SystemRoot%\system32\drivers\etc\hosts 파일을 변경하였습니다.
127.0.0.1    lovelgw.com
위와 같이 설정을 변경한다음 로컬 서버와 원격지와 세션을 공유 해보았습니다.

memcache 를 이용해 세션을 공유하는 방법입니다. ^^ (참 쉽죠? )</scRIPT></IFRAME>