도쿠위키와 그누보드 연동 > 그누4 팁자료실

그누4 팁자료실

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

도쿠위키와 그누보드 연동 정보

도쿠위키와 그누보드 연동

본문

도쿠위키와 그누보드 연동입니다.
http://oxch.net/wiki/system:gnu_dokuwiki

도쿠위키에 작성한 내용을 그누보드에도 남깁니다.
누군가에겐 도움이 되기를 :)




그누보드와 Dokuwiki 연동


도쿠위키를 설치한다.
서브도메에 설치할 경우 쿠키, 세션공유에 문제가 있을 수 있으니
그누보드와 같은 단계, 또는 하위에 설치한다.


내도메인 / g4

내도메인 / dokuwiki
내도메인 / g4
내도메인 / g4 / dokuwiki



수정해야 할 것들


dokuwiki/conf/dokuwiki.php


require_once('mysql.conf.php'); // 상단에 추가 

$conf[‘authtype’] = ‘mysql’; // plain 에서 mysql 로 변경


상단에 mysql.conf.php 파일을 인클루드 하고 각 항목을 찾아 수정.



dokuwiki/conf/mysql.conf.php


$conf['auth']['mysql']['server']   = 'localhost';

$conf['auth']['mysql']['user'] = '디비 ID';
$conf['auth']['mysql']['password'] = '디비 Password';
$conf['auth']['mysql']['database'] = '디비이름';

$conf['auth']['mysql']['forwardClearPass'] = 1;

$conf['auth']['mysql']['checkPass'] = "SELECT mb_password as `pass`
FROM g4_member
WHERE mb_id='%{user}'
and ( mb_password=password('%{pass}') or mb_password='%{pass}') ";

$conf['auth']['mysql']['getUserInfo'] = "SELECT mb_password, mb_nick AS name, mb_email AS mail
FROM g4_member
WHERE mb_id='%{user}'";

$conf['auth']['mysql']['getGroups'] = "SELECT gr_id as `group`
FROM g4_group_member g, g4_member u
WHERE g.mb_id = u.mb_id
AND u.mb_id='%{user}'";


각 항목을 찾아 수정


dokuwiki/conf/local.php


$conf['useacl'] = 1; // acl 사용

$conf['superuser'] = '@sysop';
$conf['openregister'] = '0'; // 도쿠위키에서 회원가입 금지


$conf['superuser'] 에는 그누보드에서 정한 관리자 유저그룹을
@그룹이름 형태로 넣는다.
관리자는 반드시 그누보드에서 접근가능한 그룹에 속해 있어야 한다.


그누보드에서 '게시판 그룹관리' 메뉴 중 관리자만 접근할 수 있도록
접근사용에 체크를 하고 '회원관리' 에서 관리자를 접근가능그룹을 넣어줘야 한다.
그 그룹 이름을 $conf['superuser'] = '@그룹이름' 으로 지정한다.


dokuwiki/inc/auth.php


설정 외의 곳을 손 대긴 싫지만, 그누보드는 회원가입시 기본 그룹이 정해지지 않기 때문에
이 파일을 수정해야만 한다.


대략 1070 번째 줄 쯤에 auth_setCookie 라는 메소드가 있다.
5줄 정도 내려가서 보이는 $USERINFO = $auth->getUserData($user); 다음 줄에
if($user && empty($USERINFO['grps']) ) $USERINFO['grps'][] = 'user'; 를 추가해 준다.


$USERINFO = $auth->getUserData($user); // 이거 다음 줄에 아래를 추가

if($user && empty($USERINFO['grps']) ) $USERINFO['grps'][] = 'user';

여기까지 하면 그누보드의 회원명으로 dokuwiki에 로그인 할 수 있고,
관리자 그룹에 속한 아이디로 로그인하여 도쿠위키 관리를 할 수 있다.
일반 그누보드 유저가 로그인 하면 user 그룹에 속하게 된다.




그누보드 로그인 쿠키 공유 ( 동시 로그인 )


서브도메인 등을 사용하고 있을때는 쿠키나 세션 공유에 어려움이 있기 때문에 주의한다.


도메인/g4/bbs/login_check.php


마지막 goto_url($link); 을 아래와 같이 수정한다.


if($auto_login) $auto_login_doku = 1;

else $auto_login_doku = 0;
?>

<script type="text/javascript">
var request=null;
if(window.ActiveXObject) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e1) {
request = null;
}
}
} else if(window.XMLHttpRequest) {
request = new XMLHttpRequest();
} else {
request = null;
}

var url = "/wiki/doku.php";
var query = "do=login&u=<?=$mb[mb_id]?>&p=<?=$mb[mb_password]?>&r=<?=$auto_login_doku?>";
request.open("POST", url, false);
request.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
request.send(query);
</script>

<?
goto_url($link);
?>

var url = "/wiki/doku.php" 은 자신이 설치한 wiki 의 경로에 맞춘다.


/g4/bbs/logout.php


마찬가지로 맨 하단의 goto_url($link)를 변경한다. 위의 내용과 같으나
var query = "do=logout" 으로 하면 된다.




ACL 관련 ( 접근 제어 관리 )


그누보드에서 접근가능한 그룹을 사용하여 회원을 관리한다면


/conf/acl.auth.php


*  @ALL 1

* @user 4

그누보드에 있는 그룹을 사용하기 위해서는 이 파일에 그룹을 추가해 주면 된다.


*  @ALL  1

* @user 4
* @manager 4
* @babos 4


도쿠위키 관리 페이지의 접근 제어 목록 관리에서 그룹이 나타나고 관리할 수 있다.




그누보드에서 로그인을 하고 도쿠위키로 이동해 보면 로그인이 되어있다.
이것으로 그누보드와 도쿠위키의 연동 완료.


이 내용은 제로보드4와 Dokuwiki연동 글을 보고 그누보드용으로 컨버팅 한 것이다.



추천
1

댓글 8개

안녕하세요. 좋은 정보 감사합니다 :)
그런데 위와 같이 적용을 하고 위키로 들어가면 "사용자 인증이 일시적으로 불가능합니다. 만일 계속해서 문제가 발생하면 관리자에게 문의하기 바랍니다." 라고 나옵니다. 로그인을 했던 하지 않았던 똑같이 나옵니다. 혹시 해결방법이 있을까요?
이렇게 저렇게 해보니 mysql.conf.php의 문제가 아닐까 생각해봅니다.

설치는 gnuboard4와 동일한 폴더에 했습니다.
아. 문제가 발생하셨군요
문서로 남겨놓을때는 보지 못했던 현상인데
현재 그누보드를 사용하고 있지 않아서 테스트를 바로 해 볼 수가 없네요 ;(

예상되는 것은 말씀하신대로 mysql.conf.php 부분인 듯 한데.
그누보드나 도쿠위키 버전이 변경되면서 바뀐 것이 있는지도 체크를 해 봐야할텐데
시간이 난다면....(!?)
테스트 해보고 댓글 드릴께요...



시간이 난다면... orz
전체 3,313 |RSS
그누4 팁자료실 내용 검색

회원로그인

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