도쿠위키
1. 개요
DokuWiki.
위키엔진 중의 하나. Document + Wikiwiki를 합성한 이름으로 위키위키의 기반 철학을 이어받았다.
2. 시스템
DB를 사용하지 않는 텍스트 파일 기반의 위키이며 설정이나 기본 사용법이 간단하고 설치 및 백업, 복구 등도 용이한데다가 ACL 기능을 기본적으로 탑재하고 있어 회원제나 완전 비공개 위키를 간단하게 만들 수 있다. 중소형이나 개인용 위키에 적합한 엔진이다. 파일 기반 위키답게 백업도 편리하여 data 폴더를 통째로 복사하면 된다. 다만 DB를 사용하지 않아 대형 위키에서 사용하기에는 비효율적이다.
버전별 명칭은 디스크월드의 캐릭터 이름을 가져오고 있으며 최신 정식 버전은 PHP 5.6.30 기준으로 2018-04-22a "Greebo" 이다. 버전이 교체되면 관리자 로그인 시 상단에 개발 릴리즈 버전과 최신 정식 버전의 알림이 뜬다. 다만 PHP 버전에 따라 사용 가능한 도쿠위키 버전과 플러그인이 달라지기 때문에 버전을 높일 필요가 있다. 만약 낮은 버전의 서버를 사용한다면 이 문서에서 맞는 버전을 찾아 선택하면 된다. PHP 5.3이하에서는 Hrun 버전이 최신버전이며 PHP 5.3.3에서는 Elenor of TSort, 5.4버전에서는 Frusterick Manners가 적절한 위키버전이다.
다운로드 항목이 개편되어 다양한 옵션을 지원한다. 새 버전의 변경점만 다운로드 하거나, 필요 없는 언어팩을 제외하거나, 인기 있는 플러그인을 미리 포함해서 다운로드 할 수 있고 포터블용 도쿠위키도 통합되어 다운로드 시 Include Web server 옵션을 체크하면 포터블 형태로 바로 사용 가능하게 다운된다. 압축을 풀고 run.cmd를 실행하면 자동으로 접속까지 된다.
우분투, 데비안 등 리눅스에서 도쿠위키를 로컬로 사용하려면 이 페이지를 참조하라. 약간의 팁을 말하자면 sudo apt-get install dokuwiki 로 설치하면 패스워드 설정란이 나오는데 패스워드 설정을 해주고 기타 설정을 해 준 뒤에 초기 아이디는 admin 패스워드는 아까 설정한 password로 로그인 하면 된다. sudo dpkg-reconfigure dokuwiki 는 도쿠위키의 설정값을 재설정해 주는 명령어이다. 만약 기존의 문서 파일을 var/lib/dokuwiki/data/page 폴더에 넣었을 때 문서편집이 안된다면 해당 폴더의 권한값을 변경해 주면 된다.
또는 시스템에 php, apache2를 설치한 뒤에 var/www에 설치 파일을 넣고 직접 설치해도 된다.
미디어위키에서 도쿠위키로 변환하는 스크립트는 여길 참조.
3. 장점
- 기본 기능과 메뉴의 한국어 번역이 비교적 잘 되어 있다. 만약 번역이 되어 있지 않은 메시지가 있다면 도쿠위키 홈페이지의 위쪽에 있는 Translate 메뉴로 들어가서 번역할 수 있다.
- 상대적으로 설치가 간단하고 사용 방법도 쉬운 편이다.
- 어드민 페이지가 잘 구성되어 있어 각종 설정 및 플러그인 설치/관리, 유저 관리 등이 용이하다.
- 많은 수의 플러그인이 있어 기능 확장을 쉽게 할 수 있다. 플러그인은 사이트 내에서 개발 버전과 정식버전의 안정적 지원 유무를 알 수 있다.
- 최신 버전에서는 SQLite를 지원하는 플러그인이 있어 달력 스케줄러, 문서정리 등의 편리한 기능 사용과 데이터베이스 관리 플러그인을 만들 수 있다.
- 템플릿 기능으로 공개된 여러 템플릿을 사용해 쉽게 디자인을 바꿀 수 있다. 최신 버전의 기본 템플릿의 디자인이 매우 개선되었으며, 화면 폭에 따라 데스크탑/패드/모바일을 자동 지원한다.
- 네임스페이스를 기본 지원하여 문서의 분류가 용이하다.
- 인덱서가 내장되어 작은 규모의 위키에서 검색속도가 빠르다. 한글 검색이 부실하고 정확하지 않은 편이였으나 Lemming 버전 이후 개선되었다.
- Angua 버전부터는 UTF-8 인코딩 지원으로 인해 한글 문서 이름 그대로 저장이 가능해졌다.
- 링크 시 파일명 내의 첫 제목을 불러와 표기할 수 있다. 짧은 파일명이더라도 긴 제목으로 자동 변환되어 항목의 내용 파악이 용이하며, 파일명이 아닌 제목을 바로 검색하여 찾아갈 수 있다. (설정에서 바꾸어야 한다.) 링크된 파일명을 today라고 하고 문서의 첫 제목을 -201x년 x월 x일- 이라고 설정하면 문서의 하이퍼링크에서도 today가 아닌 201x년 x월 x일으로 표기된다. 첫 제목의 지속적인 수정과 갱신이 이루어지는 문서의 경우라면 역링크의 문서의 수정이 필요없어 매우 편리한 기능이다.
- php, html, javascript, 정규식 등의 프로그래밍 지식이 어느 정도 있다면 간결한 자작 문법 정도는 플러그인으로 만들 수 있다. color 플러그인의 소스를 보면 짧은 길이이면서도 간결하게 동작하도록 구성되어 있는데 도쿠위키의 플러그인 개발 예제로 추천하고 있다.
4. 단점
- 5천 페이지 이상만 되어도 검색이 느려진다.[1] 캐싱을 파일로 저장하기 때문에 서버관리를 하지 않으면 저용량이거나 무료호스팅등에서는 금세 한계용량까지 찬다.
- 도쿠위키의 글을 다른 사이트에 붙여넣기 할 때 한 줄 띄우기가 제대로 표현되지 않는다.
- 일부 필수적으로 보이는 플러그인이 옵션이다. 따라서 최종 사용자가 사용하기 어려울 수 있다.
- 위키 문법이 위키엔진의 주류인 미디어위키나 모니위키와 상이하다. 예를 들어 헤딩표시가 정반대이다.
5. 비고
- DB가 아닌 텍스트 파일 기반은 장점이 될 수도 있고 단점이 될 수도 있다. 소규모 위키의 경우 매우 간단한 백업이 가능하지만 대규모 위키의 경우는 불리하기 때문이다.
- 파일 기반과 검색속도는 아무 상관이 없다. 영리한 인덱서를 만들거나 전문 검색 엔진을 붙일 수도 있으나 이를 지원하고 있지는 않다. 도쿠위키는 소규모 위키에 최적화되어있으며 그걸 잘 수행하고 있다.
- URL 인코딩 보존 방식을 택할 경우, 데이터 파일들이 % 인코딩이 되어서 무슨 데이터인지 곧바로 알 수 있는 방법이 없다. 이는 서버의 설정을 UTF-8을 지원하면 해결된다. 일부 유료 서버에서는 이를 지원하며 무료로 바꿀 수 있다. 아래에 나온 변환 스크립트를 이용하여 바꿀 수 있다. 하지만 서버가 한글 파일명으로 저장할 경우 서버 상에서 삭제가 안되는 등의 단점이 있을 수 있어 이 부분에서는 신중할 필요가 있다.
- 미디어가 파일로 관리되기 때문에, 하나의 폴더에 수백개의 사진이 들어가면 미디어관리자를 불러올 때 매우 시간이 걸린다. 이를 방지하기 위해서는 여러 폴더에 사진을 나누어 저장하는 것이 좋다. 문서의 네임스페이스와 상관없이 적절한 서브폴더에 저장하면 된다.
- 캐시의 데이터가 용량을 많이 차지할 수 있다.
- 일부 필수적으로 보이는 플러그인이 옵션이라서, 랜덤페이지 플러그인 이나 기타 스크립트 같은 것을 쓸 때 php에 지식이 없으면 쓸 수 없다.
- 각 플러그인 제작을 개별적으로 하기 때문에 일부 플러그인에 한해서 사용법이 제대로 표시되어 있지 않거나 버전업시 플러그인이 호환이 안될 수도 있다. 템플릿, 플러그인은 도쿠위키 사이트에서 작동여부를 확인할 수 있으므로 참고할 것. 어떤 버전만 실행되거나 최신버전이 아닌 특정버전만(?!) 안 되는 경우도 있다.
- 도쿠위키의 모토 "It's better when it's simple" 답게 다른 위키엔진에서의 기본기능이 플러그인으로 해결되어야 하는 경우가 많다. 예를 들면, 엔터[2] , 템플릿(틀), 랜덤 페이지, 리다이렉트 등 기본적인(?) 기능을 위해 플러그 인을 사용해야 한다. 2번이상의 엔터는 역슬래시 \\를 넣어 주어야 한다.
- 현재 리다이렉션은 미디어위키처럼 넘겨주기 문서를 작성하는 방식의 pageredirect 혹은 ACL에서 집중 통제하는 redirect로 해당 기능을 추가할 수 있다.
- 검색 기능이 찾으려는 문서가 있어도 직접 보여 주는 것이 아니라 말 그대로 검색만 지원한다. 무슨 말인고 하니, 나무위키[3] 와 위키백과[4] 의 경우엔 검색창에 '도쿠위키'를 입력하면 바로 도쿠위키 문서로 넘어간다. 하지만 도쿠위키의 경우는 제목에 '도쿠위키'가 포함된 문서들을 실시간으로 표시해주고 검색된 항목들에서 클릭을 하면 해당 문서로 넘어간다. [5]
보단 많이
위의 플러그인은 현재 다운로드가 안된다.그리고 원래부터 잘 작동안하기도 했고... 추천플러그인 항목의 singlesearchresult를 쓸것.
- 문서를 UTF-8로 인코딩할 경우, 기존에 URL로 인코딩된 한글 문서는 읽어오지 못한다. URL로 인코딩된 문서를 UTF-8로 바꿔 주는 기능도 제공하고 있지 않기 때문에, 해당 문서들은 수작업으로 바꿔 줘야 한다. 따라서, 초기 설치시부터 UTF-8 사용이 권장된다.
- 위의 스크립트는 파일을 하나씩만 변환시키므로 매우 불편하다.https://forum.dokuwiki.org/thread/7120 이 스크립트를 다운받아서 php 파일로 저장한 후에, startdir 부분만 현재 문서 파일이 위치한 경로로 바꿔 주고 문서 폴더에 php 파일을 넣은 뒤 터미널에서 php 폴더이름.php를 실행시키면 된다.
- 다른 파일 기반 위키들과 마찬가지로 서버의 언어 설정이 EUC_KR로 되어 있는 경우 UTF-8 한글 파일명이 제대로 지원되지 않는다.
- 간단히 말해서 shell에서 locale 이라고 명령했을 때 각종 언어 설정이 UTF-8이라고 확인되어야 한다. 다른 편법을 사용해도 서버의 세팅이 UTF-8이 아니면 실제 서버에는 한글 파일명이 생성되지 않아 괴문자조합으로 저장된다. 이 언어설정은 shell에서 루트 권한으로 작업하기 전에는 바꿀 수 없다.
- FileZilla의 사이트 관리자에서 UTF-8으로 강제 설정하는 방법이 있다. 이 경우 서버에는 괴문자로 저장이 되더라도 유저가 읽고 쓸 때는 괴문자를 정상적인 문자로 변환해 인식하므로 쓰는 것에는 아무런 문제가 없어 보이나, 이는 FTP를 통해 해당 파일에 직접 접근해 수정 가능하다는 파일 기반 위키엔진의 장점 중 하나를 포기하는 것이며, 어떤 요인에 의해 괴문자열을 서버가 인식하지 못하게 되면 자료 유지에 심각한 문제가 생긴다. 고로 기존에 UTF-8 세팅으로 이용 중, 피치 못할 사정으로 UTF-8이 아닌 호스팅 회사로 이동해야 된다거나 하는 경우에만 이 방법을 쓰는 것이 좋다.
- 2015-08-10 "Detritus" 버전부터 요구 사양이 PHP 5.3.3 이상으로 올라갔다. 국내의 웹호스팅에서 설치 불가능한 곳이 많으니 설치하기 전에 웹호스팅 서버 사양을 미리 확인해야 한다. 다행히 2015년부터 XpressEngine, 워드프레스 등 여러 솔루션의 요구 사양이 PHP 5.3 이상으로 올라가면서 PHP를 업그레이드하는 호스팅이 늘어나고 있다. 호스팅 업체나 버전마다 도쿠위키가 잘 작동하지 않는 경우도 있으므로 주의할 것.
6. 알려진 버그와 해결방식
- 섹션 편집이 제대로 되 질 않는다. - linebreak 플러그인 버그이다. 지우거나 xbr 플러그인으로 대체하면 해결 가능.
7. 추천 플러그인
도쿠위키의 플러그인은 개발자 이외에도 많은 사람들이 참여하여 올리기 때문에 다양한 플러그인 중에서도 서로 충돌을 일으키는 경우가 있거나 버전업이 되면서 지원하지 않거나 오류가 생기는 경우도 있다. 필요한 플러그인을 찾고 충돌(conflict)하는 플러그인을 서로 깔지 않도록 주의해야 한다.
도쿠위키 버전은 최신버전을 추천하지만 서버가 php 5.2이하의 버전이라면 Hrun을 추천한다. 최신 버전에서 오류를 일으키는데 Hrun에서는 멀쩡히 돌아가는 유용한 플러그인이 몇 개 있기 때문이다.
틀 기능을 구현하는 플러그인이다. 문서 외에도 네임스페이스를 통째로 집어넣을 수도 있다. (변수 기능을 지원하지 않으므로 변수 기능이 필요하다면 Wikimedia-Style Template를 쓸 수는 있으나, 유지관리가 중단된 듯 하다.)
자동 문서 목록을 만들어 준다. 문서를 영화 관련 정보따위로 묶을 때 요긴한 플러그인
강제 줄 바꿈을 할 수 있게 해 준다. 하지만 두 번 이상의 엔터에는 역슬래시 두 번을 써야 한다.
discussion 플러그인은 "토론" 기능이다. 독립적으로 작동할 수 없기에 pagelist plugin이 필요하다. 해당 문법을 문서내에 작성하면 미디어위키처럼 따로 탭이 생성되는 것이 아닌 블로그처럼 하단에 댓글을 달 수 있는 공간이 생성된다.
소스 코드 강조
소스 코드 강조
WYSIWYG 에디터를 사용할 수 있다.기존 도쿠위키 에디터와 전환 가능하다. 하지만 몇몇 플러그인과 충돌이 있어 설치 시 주의할 것.
- randompage2 랜덤페이지 플러그인
- singlesearchresult 다른 위키엔진처럼 검색단어에 해당되는 페이지가 있으면 그 페이지를 바로 띄어주는 플러그인이다.
7.1. 문법 추가
tag 플러그인은 "카테고리" 혹은 "분류" 기능이다. 독립적으로 작동할 수 없기에 pagelist plugin이 필요하다.
DB 정리가 가능해진다. 태그 정리와는 비슷하면서도 다른 느낌이며, 결정적으로 사용법이 약간 어렵다. 선행으로 sqlite plugin이 필요하다.
tag 플러그인과 상호호환도 된다. 잘 쓰면 tag 플러그인만 쓰는 것보다 훨씬 깔끔하게 태그 정리가 가능해진다.
tag 플러그인과 상호호환도 된다. 잘 쓰면 tag 플러그인만 쓰는 것보다 훨씬 깔끔하게 태그 정리가 가능해진다.
Structured Data 플러그인과 유사하지만, 입력할 데이터의 스키마(필드명, 자료형, 복수 입력 등)를 사전에 정의하고, 그 정의된 스키마를 문서나 네임스페이스에 할당시키는 식으로 동작한다. 보다 데이터베이스에 가까운 구조를 하고 있는 플러그인. 대신 문서 자체에 특수한 문법을 써서 데이터를 넣는 것이 아니라 편집창 아래쪽에 별도의 폼을 만들어 보여주기 때문에 편집만 하는 입장에서는 더 간단하다. 이렇게 입력된 데이터들은 리스트, 표, 태그 클라우드의 형태로 문서에 삽입할 수 있다.
간단한 문법으로 글자 색을 변경할 수 있다. 글자색 버튼 또한 추가된다. (도쿠위키는 HTML 태그가 먹히지 않기에 필요.)
간단한 문법으로 글자 크기를 변경할 수 있다. (도쿠위키는 HTML 태그가 먹히지 않기에 필요.)
표 너비를 임의로 조정할 수 있다. 단위는 em, px, %가 가능하다. Hrun에서만 제대로 동작하며 이후 버전에서는 스타일시트를 약간 수정해야 한다.
경고나 알림 박스, 열, 버튼, 아코디언 메뉴, 탭 등 다양한 문법 기능을 하나로 묶어 놓은 플러그인.
각종 부트스트랩의 요소(버튼, 그리드, 접고 펼치는 단락, 라벨, 콜아웃, 메뉴, 경고 등)를 쓸 수 있게 해 주는 플러그인. 부트스트랩 호환 템플릿과 같이 사용되어야 효과가 있다. 편집창 위에 추가되는 버튼을 사용하면 별도의 입력창에서 편하게 요소를 집어넣을 수 있다.
이미지 갤러리를 자동으로 만들어 문서에 넣을 수 있다.
터미널처럼 보이는 bash 스크립트 구문 강조 플러그인
8. UTF-8 지원 호스팅 사이트
앞서 말했다시피 서버 세팅이 UTF-8이어야 한다. DB만 UTF-8이면 UTF-8 언어 세팅을 할 수 없다.
- 호스팅어 http://www.hostinger.kr/
- 인피니티프리 https://infinityfree.net/
- 워드프레스닷컴 https://wordpress.com - 서비스형 워드프레스 서비스를 제공하는 워드프레스닷컴의 비즈니스요금제를 사용하면 sftp를 통해 도쿠위키를 설치[6] 해서 사용 할 수 있다. 한글 입출력도 무리 없이 지원된다.
9. 참조 사이트
- 공식 사이트:http://www.dokuwiki.org/dokuwiki
- 한국어 사이트: http://www.dokuwiki.org/ko:dokuwiki
- 공식 포럼: http://forum.dokuwiki.org/
- 다운로드: http://download.dokuwiki.org/ [7]
- 저장소: https://github.com/splitbrain/dokuwiki [8]
- 기본적인 문법 : http://wiki.mnwiki.net/%EB%AC%B8%EB%B2%95_%EB%8F%84%EC%9B%80%EB%A7%90
10. 사용 사이트
- 넥스32 위키: http://wiki.nex32.net/
- 누리창작: http://nuriwiki.ncity.net/Giraffe/
- 다이위키: http://diywiki.net
- 애니민트넷 작품노트: http://www.animint.net/note/
- Elf's Note: http://elfism.com/
- 오픈위키: http://openwiki.kr/
- 위키리크스 코리아: http://www.wikileaks-kr.org
- 위키메이슨: https://archive.wikimasonry.org
- 이브온라인 펀즈위키: http://funzinnu.com/EVEwiki/
- 작화위키: http://sakuga.kr
- 초소형국민체 위키: http://wiki.mnwiki.net/FrontPage
- 카페아쿠아-아쿠아리움 수족관 열대어 정보 위키: http://cafeaqua.kr
- EV Wiki: http://evwiki.org
- 카위키: http://carcaroh.club/doku.php
- 국어교육위키: http://koredu.new21.net
[1] 속도 개선을 위해 설정에서 인덱스의 캐싱을 설정해볼 수 있지만, 원천해결은 안된다. 몇 천 단위로 가면 조금씩 느려짐을 느낄 수 있다.[2] 최신 버전에는 xbr 플러그인이 기본 지원되며, 오래된 버전은 제작자가 linebreak보다는 xbr을 권장하고 있다.[3] the seed 기반[4] 미디어위키 기반[5] https://www.dokuwiki.org/start?id=ko:search 참조 [6] 워드프레스닷컴은 DB 계정을 지원하지 않는다. 하지만 도쿠위키는 DB가 필요 없기에 비즈니스요금제의 경우 워드프레스닷컴에 도쿠위키를 설치 할 수 있다.[7] 포터블로 받으려면 Include Web server 항목을 체크해서 다운로드 하면 된다[8] github에 있다