그누보드5 여러개 설치, 회원관련 공유(세션포함)에 대한 질문입니다. 채택완료
여러개의 그부보드5를 하나의 도메인, 호스팅계정, 단일DB에 설치한 후, 회원은 모든 곳에서 공유릃 하고자 합니다.
즉,
http://www.domain.com/">www.domain.com/ (prefix: g5_) (www/ 또는 public_html/ 에 main용 그누보드5 설치)
http://www.domain.com/g5sub1">www.domain.com/g5sub1 (prefix: s1g5_)
http://www.domain.com/g5sub2">www.domain.com/g5sub2 (prefix: s2g5_)
:
:
와 같이 여러개의 그누보드5를 각가의서브디렉토리에 설치 후 회원(세션포함)만 공유 하려고 합니다.
(공통적으로 공유가 될 table의 prefix는 g5_ (즉, 최상위에 설치된 그누보드5임)로 지정)
이 경우
http://www.domain.com/">www.domain.com/ 즉, 최 상위에는 메인으로 사용할 그누보드5 설치하여 초기 접속시
http://www.domain.com/index.php에서">www.domain.com/index.php에서 각각 다른 서브디렉토리로 link를 연결하여
http://www.domain.com/g5sub1/index.php로">www.domain.com/g5sub1/index.php로 분기,
http://www.domain.com/g5sub2/index.php로">www.domain.com/g5sub2/index.php로 분기,
:
와 같이 지정하고 메인에서 처리가 되도록 하구요.
질문의 요지는,
dbconfig.php에서 정의한 각종 테이블 중에서 공통적으로 사용하기 위해
변경이 되어야 하는 것이 어떤 테이블들인지요?
단순 member table만이 아닐 듯 싶어서요.
$g5['auth_table'] = G5_TABLE_PREFIX.'auth'; // 관리권한 설정 테이블 $g5['config_table'] = G5_TABLE_PREFIX.'config'; // 기본환경 설정 테이블 $g5['group_table'] = G5_TABLE_PREFIX.'group'; // 게시판 그룹 테이블 $g5['group_member_table'] = G5_TABLE_PREFIX.'group_member'; // 게시판 그룹+회원 테이블 $g5['board_table'] = G5_TABLE_PREFIX.'board'; // 게시판 설정 테이블 $g5['board_file_table'] = G5_TABLE_PREFIX.'board_file'; // 게시판 첨부파일 테이블 $g5['board_good_table'] = G5_TABLE_PREFIX.'board_good'; // 게시물 추천,비추천 테이블 $g5['board_new_table'] = G5_TABLE_PREFIX.'board_new'; // 게시판 새글 테이블 $g5['login_table'] = G5_TABLE_PREFIX.'login'; // 로그인 테이블 (접속자수) $g5['mail_table'] = G5_TABLE_PREFIX.'mail'; // 회원메일 테이블 $g5['member_table'] = G5_TABLE_PREFIX.'member'; // 회원 테이블 $g5['memo_table'] = G5_TABLE_PREFIX.'memo'; // 메모 테이블 $g5['poll_table'] = G5_TABLE_PREFIX.'poll'; // 투표 테이블 $g5['poll_etc_table'] = G5_TABLE_PREFIX.'poll_etc'; // 투표 기타의견 테이블 $g5['point_table'] = G5_TABLE_PREFIX.'point'; // 포인트 테이블 $g5['popular_table'] = G5_TABLE_PREFIX.'popular'; // 인기검색어 테이블 $g5['scrap_table'] = G5_TABLE_PREFIX.'scrap'; // 게시글 스크랩 테이블 $g5['visit_table'] = G5_TABLE_PREFIX.'visit'; // 방문자 테이블 $g5['visit_sum_table'] = G5_TABLE_PREFIX.'visit_sum'; // 방문자 합계 테이블 $g5['uniqid_table'] = G5_TABLE_PREFIX.'uniqid'; // 유니크한 값을 만드는 테이블 $g5['autosave_table'] = G5_TABLE_PREFIX.'autosave'; // 게시글 작성시 일정시간마다 글을 임시 저장하는 테이블 $g5['cert_history_table'] = G5_TABLE_PREFIX.'cert_history'; // 인증내역 테이블 $g5['qa_config_table'] = G5_TABLE_PREFIX.'qa_config'; // 1:1문의 설정테이블 $g5['qa_content_table'] = G5_TABLE_PREFIX.'qa_content'; // 1:1문의 테이블 $g5['content_table'] = G5_TABLE_PREFIX.'content'; // 내용(컨텐츠)정보 테이블 $g5['faq_table'] = G5_TABLE_PREFIX.'faq'; // 자주하시는 질문 테이블 $g5['faq_master_table'] = G5_TABLE_PREFIX.'faq_master'; // 자주하시는 질문 마스터 테이블 $g5['new_win_table'] = G5_TABLE_PREFIX.'new_win'; // 새창 테이블 $g5['menu_table'] = G5_TABLE_PREFIX.'menu'; // 메뉴관리 테이블
또한 세션을 공유하기 위해서는
common.php의 어느 부분을 회원공유와 관련하여 수정이 되어야 하는지요?
질문이 장황하고 혼란스러운 것 같아 죄송합니다.
의견 부탁 드립니다.
감사합니다.
답변 1개
회원만 공유하실 생각이시라면 공통적으로 공유될 테이블은 주로 회원과 관련된 부분을 g5_ 접두어로 지정하면 될 것 같습니다.
예를 들면,
$g5['login_table'] = G5_TABLE_PREFIX.'login'; // 로그인 테이블 (접속자수) $g5['mail_table'] = G5_TABLE_PREFIX.'mail'; // 회원메일 테이블 $g5['member_table'] = G5_TABLE_PREFIX.'member'; // 회원 테이블 $g5['memo_table'] = G5_TABLE_PREFIX.'memo'; // 메모 테이블 $g5['poll_table'] = G5_TABLE_PREFIX.'poll'; // 투표 테이블 $g5['poll_etc_table'] = G5_TABLE_PREFIX.'poll_etc'; // 투표 기타의견 테이블 $g5['point_table'] = G5_TABLE_PREFIX.'point'; // 포인트 테이블 $g5['scrap_table'] = G5_TABLE_PREFIX.'scrap'; // 게시글 스크랩 테이블 $g5['visit_table'] = G5_TABLE_PREFIX.'visit'; // 방문자 테이블 $g5['visit_sum_table'] = G5_TABLE_PREFIX.'visit_sum'; // 방문자 합계 테이블
이정도 될 텐데, 상황에 따라 더 필요한 부분은 추가하거나 필요없는 부분은 빼야 하겠지요.^^
그런데 서브디렉토리에 그누보드를 다른 접두어(s1g5_, s2g5_)로 개별 설치하려면
install 관련 파일(gnuboard5.sql, install_db.php)에서 공통적으로 공유될 테이블에 대한 내용을 지우셔야 할 겁니다.
그리고 세션을 공유하기 위해서는 서브디렉토리에 설치된 그누보드의
common.php의 188번째 쯤 라인에 session_save_path(G5_SESSION_PATH); 의 G5_SESSION_PATH를 메인 디렉토리의 세션경로로 수정하면 될 겁니다.
g5sub1 서브디렉토리에 설치된 그누보드의 session_save_path 경로 수정 예시
</p><p>//session_save_path(G5_SESSION_PATH); // 이부분 주석처리 후 아래와 같이 추가</p><p>$root_path = str_replace('/g5sub1', '', str_replace('\\', '/', dirname(__FILE__)));</p><p>session_save_path($root_path.'/data/session'); </p><p>
이 외에도 좀 더 생각해 보아야 할 부분은 서브디렉토리에 설치된
config.php 파일에서의 path와 url 설정입니다.
또한, 관리자 페이지의 회원 관련 내용도 살펴보아야 할 것 같구요....
이러한 부분은 모두 설치한 후 각각 어떻게 작동하는 지 상황을 보면서 적절히 수정하셔야 할 것 같네요....
답변에 대한 댓글 2개
$root_path = str_replace('/g5sub1', '', str_replace('\\', '/', dirname(__FILE__)));
이부분이 관리자 페이지주소도 변경하는거 같은데 그때문인지 로그인 페이지가 페이지 없음으로 뜹니다...
한글사이트에서는 현재경로/adm 을 붙여주는 str_replace를 써서 그런거 같은데 어떻게 해야 할까요
많이 공부해야 될것같습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
예상했던 것 이상으로 작업범위가 상당히 크군요.
말씀하신 부분에 대하여 적용해 보고 궁금한 점 다시 질문 드려야겠네요.
고맙습니다.