CI 묻고 답하기

제목 www(pc웹)와 m(모바윌웹) 세션 공유가 되지 않습니다 ㅠ
글쓴이 프리모아개발자 작성시각 2016/06/20 14:21:33
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 20126   RSS

1%라도 해본 질문 vs. 1%도 안해본 질문, 여러분은 어떤 질문에 손이 가십니까?

 

저희 회사의 모바일웹 오픈을 앞두고 질문드립니다.

 

현재 www.woorihoisa.net을 운용 중에 있고(도메인은 가칭)

거기에 이어 m.woorihoisa.net의 오픈 예정 중에 있습니다.

 

현재 두 사이트는 코드이그나이터 3.0 기반으로 views를 제외한 모든 소스를 공유하여 사용중이며..

디렉토리 구조는 대략..

 

_common -> applicaion, system

www -> index.php, views, public, .htaccess, robots.txt

m -> index.php, views, public, .htaccess, robots.txt

이런 구조로 되어 있습니다...(www와 m이 각각 도메인의 root입니다.)

 

_common/applicaion/config/config.php의 설정을 알려드리자면,

$config['base_url'] = THIS_URL; //여기서 THIS_URL은 각 index.php에 있는 각 도메인 이름입니다.(www.woorihoisa.net, m.woorihoisa.net)

 

$config['sess_driver'] = 'files';

$config['sess_cookie_name'] = 'dfasfdsa';

$config['sess_expiration'] = 7200;

$config['sess_save_path'] = NULL;

$config['sess_match_ip'] = FALSE;

$config['sess_time_to_update'] = 300;

$config['sess_regenerate_destroy'] = FALSE;

 

$config['cookie_prefix']    = 'sdfho_';

$config['cookie_domain']    = '.woorihoisa.net';

$config['cookie_path']        = '/';

$config['cookie_secure']    = FALSE;

$config['cookie_httponly']     = FALSE;

 

문제는 m과 www의 세션 공유가 되지 않습니다..

각각 따로노는 문제도 아니고 www에서 로그인을 하면 m에서 로그인이 풀리고,

m에서 로그인을 하면 www에서 로그인이 풀립니다.

 

세션공유가 되지도 않을 뿐더러 저런 문제까지 발생합니다.

 

혹시나 해서 서버 session이 저장되는 곳의 경로를 찾아 확인해보았으나,

각각 다른 값이 암호화되어 번갈아 바뀌는 것을 확인하였습니다.

(쿠키 이름과 값은 서로 같습니다.., 고로 세션파일명도 같습니다.)

XaJ1heeynYILREgchW9SU47POLB07UKP6nzUZYDGImnb_w7em69lEsW7pCYDLzmQFLfwSnf8lqP-7IqHUNWFOw..

EQ6zXc8ZyXkRiQLsjp78Yru30qRccSUXCF87aGs8XpJgAWSrzSv6uDwWRIbvZtsZwAcTWuajSpNKi1nQs7UFGQ..

 

그래서 이것이 ci 3.0의 버그인지 아닌지 모르겠네요...

해당 문제를 해결할 수 있는 방법이 있는지, 아니면 session 라이브러리를 콘솔 찍어가면서 일일히 디버깅해봐야 하는것인지, 명쾌하게 알려주셨으면 합니다..

(참고로 데이터베이스 세션도 동일한 증상 발생합니다... 레디스와 멤캐시는 쓸줄몰라서 ㅠㅠ)

 

코드이그나이터 고수님들의 조언 부탁드립니다. 감사합니다.

태그 세션,서브도메인,공유
 다음글 게시판 페이징 처리시 페이지 목록을 안보이는게 할수 있... (4)
 이전글 컨트롤에서 뷰페이지로 값을 넘길시 이해가 되지 않아 올... (6)

댓글

변종원(웅파) / 2016/06/20 14:27:18 / 추천 1

버그가 아니라 당연한건데요. ^^

$config['cookie_domain']    = '.woorihoisa.net'; 이 부분 셋팅을 바꿔주셔야 합니다.

아래 링크 참고하세요.

http://stackoverflow.com/questions/22748422/codeigniter-sessions-across-sub-domains

프리모아개발자 / 2016/06/20 15:54:33 / 추천 0

@변종원(웅파)

감사합니다.. 링크 있는대로 cookie_prefix를 수정했습니다만, 여전히 공유되지 않습니다..ㅠㅠ

어떻게 해야될까요?ㅠ

변종원(웅파) / 2016/06/20 16:39:01 / 추천 1
프리모아개발자/ 링크에 있는거 잘 보세요. 밥은 해드렸습니다. ^^;
프리모아개발자 / 2016/06/20 17:36:24 / 추천 0

@변종원(웅파) 해결했습니다.. 수호신이 문제였습니다...

수호신이 설치되어 있다면 php.ini에 추가해줘야 해결되는거였군요..

suhosin.cookie.cryptdocroot=Off
suhosin.session.cryptdocroot=Off

계속 찾다보니 어렵게(?) 해결했습니다.

http://ani2life.com/wp/?p=1047

 

도움 주셔서 감사합니다^^