Unix/Ubuntu

Dokuwiki 설치하기

ForceCore 2009. 2. 24. 14:36
우분투나 데비안 공통으로, 패키지가 존재한다.
# apt-get install dokuwiki
쉽죠?

주의: dokuwiki는 은근히 자주 업데이트 되는데, 이렇게 하면, 패키지를 통해서만 업데이트 하겠다는 선언이나 마찬가지다. -_-

중간에, 접속주소를 묻는데, 필자는 http://서버명/dokuwiki 가 너무 길다고 생각하여 http://서버명/wiki 로 설치되도록 했다. 그리고 패키지 삭제시 데이터 디렉토리도 삭제할것이냐고 묻는데... 당연히 no. (ㄷㄷㄷ) 이런거 함부로 삭제하게 하면, 피 보는 수가 있다.

이 설정은 어디서 또 바꿀 수 있냐면...
/etc/apache2/conf.d/dokuwiki.conf 에서 변경할 수 있다. 이걸 열어보면, allow from 127.0.0.1 로 다른 서버에서는 접속이 불가능하도록 매우 안전하게 해놓았다. all로 바꾸면 어느 곳에서나 접속할 수 있다. (이거 안 고치면, forbidden뜸). 교내 IP대역만 접속하도록 만들고 싶을수도 있겠다...

위키의 데이터는 /var/lib/dokuwiki에 저장된다. 역시, 700권한의 매우 안전한 -_- 곳으로 되어 있다.

설정의 fine-tuning은 좀 해야 한다. 그냥 놔두면 anonymous wiki가 되는 것 같은데... 필자는, OpenLDAP의 사용자만 이 위키를 볼 수 있도록 제한하고 싶다. 로그인 안 한 사람은 아무것도 할 수 없어야 하고, 로그인 한 사람은 읽고 쓰고 다 할 수 있어야지 된다.

/etc/dokuwiki 에서.
cp local.php.dist 를 local.php로 이름을 바꾼다.
<?PHP 는 있는데 ?>로 닫진 않는 파일로 되어 있는데, 그대로 놔두면 됨.

이제 이 파일을 취향에 맞게 고치면, 필자가 원하는 설정이 나올 것이다.
http://www.dokuwiki.org/auth:ldap
이 문서를 컨닝했다.

거의 긁어 붙여도 동작 했는데, ldap protocol을 3이라고 해야지 되었음.
그리고... ldap의 사람들이 관리권한을 갖도록 해야 하니...

드디어 관리페이지로 왔군. 휴...
여기까지 설정:
<?php
/*
  This is an example of how a local.php coul look like.
  Simply copy the options you want to change from dokuwiki.php
  to this file and change them
 */

$conf['title']       = 'LAB internals';        //what to show in the title

$conf['superuser']    = '@lab_people'; // ssl_people group is superuser

$conf['useacl']      = 1;
$conf['openregister']= 0;
$conf['authtype']    = 'ldap';
 
# $conf['auth']['ldap']['server']      = 'localhost';
# $conf['auth']['ldap']['port']        = 389;
$conf['auth']['ldap']['version'] = '3';
$conf['auth']['ldap']['server']      = 'ldap://localhost:389'; #instead of the above two settings
$conf['auth']['ldap']['usertree']    = 'ou=People,dc=xxx,dc=ac,dc=kr';
$conf['auth']['ldap']['grouptree']   = 'ou=Groups,dc=xxx,dc=ac,dc=kr';
$conf['auth']['ldap']['userfilter']  = '(&(uid=%{user})(objectClass=posixAccount))';
$conf['auth']['ldap']['groupfilter'] = '(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))';

# authentication debugging
# $conf['auth']['ldap']['debug']      = 1;

이렇게 되어 있다.

이제 dokuwiki에 로그인하면, admin 기능 버튼이 보인다. disable Dokuwiki actions 에서, register기능을 못 하게 했다. 아무나 가입하면 곤란하니까.

$conf
['disableactions'] = 'register';
이 한 줄을 추가했다.

이제 또 뭐가 문제인고 하니... 위키 페이지를 누구나 보고 바꿀 수 있다는 점이다.
Amin페이지에서, Access Control List Management 를 잘 -_- 수정해준다.
@ALL의 권한을 none으로 해주면 됨.