문서의 을 확인하세요.
모니위키 MoniWiki | |
사이트 | [1] |
[clearfix]
1. 개요
오픈소스 위키 엔진. PHP 기반이며 라이센스는 GPL. 나무마크의 전신이나 다름없다.2024년 2월 5일 기준 최신 버전은 1.2.10 릴리스이다. 2015년 6월 이후 1.2.5 버전이 리그베다 위키에 적용되고 있었는데, 12월 18일 1.2.5 릴리스를 적용한 것으로 보인다.
원래 파이썬용으로 되어 있던 위키 엔진인 모인모인을 PHP로 흉내내어 만든 물건이다. 개발자 wkpark는 php로 만든 phiki라는 php3 구형 소스가 모니위키 본체 소스였다고 밝히고 있으며, 사실 phiki 역시 pikipiki라는 모인모인의 모체가 되었던 작은 위키 엔진을 흉내내어 만든 것. 그 외에도 phpwiki 등등의 다양한 오픈소스 위키 엔진을 참조하였다고 한다.
우리나라에서 많이 쓰이고 있는 위키 엔진이라고 알려져 있지만, 인터넷에서는 도쿠위키나 미디어위키 추천 글을 더 많이 볼 수 있다. 도쿠위키는 개인 PC, USB에 설치할 수 있으며, 미디어위키는 위키백과의 엔진으로 널리 알려져 있기에 사용자가 계속 증가하고 있으며 모니위키 사용자는 생각만큼 많지 않다.
리그베다 위키의 모니위키는 기존 엔하위키에서 사용되던 오위키에 있던 문서와의 호환성을 위해 일부 태그 처리 방식 등을 수정한 커스텀 버전을 사용하고 있었으며, 2010년 10월부터 1.1.5 커스텀 버전을, 2013년 8월부터 2015년 4월까지 1.2.0 커스텀버전이 사용되었다.
아래 목록을 봐도 알겠지만 원래는 소규모 개인 위키나 커뮤니티 위키에 적합한 엔진이었다. 하지만 커뮤니티 위키 중 하나였던 엔젤하이로 위키[2]가 점점 커져서 리그베다 위키가 되면서 본의 아니게 대형 위키에도 쓰이는 엔진이 되었다. 리그베다 위키의 규모가 커지면 커질수록 대형 위키를 운용하기에는 한계가 많은 모니위키의 약점이 드러나게 되었으며 리그베다 위키와 wkpark의 상호 소통을 통해 이를 보완해나가고 있다. 덕분에 신버전 배포가 매우 더디기로 유명했던 모니위키는 2010년대 중반엔 미친듯한 업데이트 속도를 보여주고 있었으며, 리그베다 위키는 본의 아니게 모니위키 기반 위키위키의 첨병 역할을 하는 중이었다. 하지만 2015년 리그베다 위키 사유화 사태 이후 보안 취약점이 크게 부각되면서 신규 위키 사이트가 전부 모니위키 대신 미디어위키나 도쿠위키를 사용하게 되었고[3], 가뜩이나 리그베다 위키 이외에는 사용하는 곳이 없던 모니위키인 터라, 2016년 들어서는 개발이 굉장히 더디게 진행되고 있다.
개발자 박원규는 리그베다 위키의 위키지기[4]로 활동하고 있으며 종종 리그베다 위키 게시판에 모니위키 관련 여러 게시물을 작성하고 있다. 캐시 서버를 설치하는 등 모니위키를 '대규모 위키에 최적화' 시키기 위한 노력을 하고 있다.
2. 장단점
2.1. 장점
- 개발자가 한국인이다.
- 중/소규모 접속에 대해서는, 시스템 자원을 적게 차지하며 속도가 빠르다.
- 2003년부터 시작되어 2015년 현재까지, 개발 및 개선이 비교적 활발하게 이루어지고 있다.
- 모든 문서(페이지)가 텍스트 파일로 저장되어, MySQL같은 데이터베이스 관리기가 필요없다.
- 플러그인을 통해 다양한 기능을 추가할 수 있다.
- 개인 PC에 설치해서 사용할 수 있다. 버전 1.2.0부터는 USB에도 설치 가능.
2.2. 단점
- 대규모 위키의 경우 검색에 취약하다. 다만, ElasticSearch 검색 엔진과 같은 전문 검색 엔진을 붙일 수 있다.
- 보안 취약점이 존재했다. 특히 2015년 리그베다 위키 사유화 사태 당시 취약점으로 대문(FrontPage)이 털렸을 뿐만 아니라 페이지 변경 이력이 삭제되는 일이 발생했다. 심지어 index.php 파일 내용이 바뀌는 일까지 발생, 리그베다 위키는 이러한 문제 때문에 서버를 닫을 수밖에 없었고 나무위키에게 한국어 위키 1위 자리를 넘겨주게 되었다. 이후 뒤늦게 보안 문제를 해결한 패치가 업데이트되었지만 2021년경 다시 취약점이 발견된 상태[5]이다.
- 일부 호스팅 업체에서는 RCS가 설치되어 있지 않거나 오류를 일으키는 문제로 인해 제대로 사용할 수 없다.
- 문서를 텍스트 파일로 저장한다는 특성 상 대규모 서버에서의 관리가 불리하다. 문서 역사가 개별 파일로 관리되는 특성상 해당 파일이 손상되면 이전 리비전 열람이 불가능해진다.[6]
- 동결처리 시 특정 문서만이 아니라 특정 단어가 들어간 제목을 지닌 문서까지 억울하게 동결처리되는 경우도 있다. 단순히 파일명을 이용해 권한을 설정하는 것에서 오는 단점이다.
- 일부 항목에서 제목이 이상하게 표시되는 문제가 있었다. 리그베다 위키 시절의 Theme of EZ2Dj(커뮤니티) 문서의 경우 #title 문법을 사용해 문서명을 바꿔 둔 것을 볼 수 있다.
- php언어의 popen을 비활성화한 호스팅업체에서는 사용이 불가능하다.[7] 즉, 호스팅에 올리기 전에 phpinfo()를 통해 disable_functions 에 popen이 없는지 확인해봐야 하며 있을 경우엔 다른 호스팅을 알아봐야한다.
- 마지막 업데이트가 2017년 12월로 오랫동안 업데이트가 없다. 그나마 PHP7 대응 패치가 2020년 11월경 적용되었지만 문제는 해당 시기 PHP8이 출시되며 또다시 업데이트가 필요하게 되었다는 점이다.
2.3. 비고
- 기본적으로는 검색을 5천 페이지 단위로 나누어서 하기 때문에 서버에 무리를 주지는 않는다. 제로보드 같은 게시판에서 검색을 해보면 일정 단위로 잘라서 검색을 하는 것을 알 수 있는데, 그것과 같은 것이라고 보면 된다. 작은 위키의 경우에는 regex 검색도 가능하다.
- 1.2.5부터는 MySQL을 이용한 검색을 옵션으로 지원하게 되었다.(제목/본문 검색 및 페이지 개수 세기)
- 일부에서 역링크를 지원하지 않는다고 알려져 있는데, 역링크도 지원한다. 모니위키 1.2.0 이전의 경우에는 전체 검색을 통해 지원되어서 대규모 위키에서 쓰지 못했으나, 1.2.0 이후 버전에서는 역링크 기능이 검색이 아닌 다른 방법으로 구현되었으며, 리다이렉트도 표시되어 나온다.
- 개발자가 한국인임에도 불구하고 한글 지원에 되려 소홀한 면이 없지 않았으나 1.1.3 버전 이후로 도움말이 꾸준히 추가되고 있다.
- 사실 미디어위키도 제목 필드는 256문자로 제한이 있으며, 나무위키도 마찬가지다. 단, 모니위키의 경우 urlencode 형태로 저장하기때문에 한글의 경우 한 글자가 9바이트를 차지하게 된다. 미디어위키의 경우에는 한글은 3바이트(UTF-8 표준)로 저장된다. 이 문제는 1.2.5부터 도입된 새로운 방식을 사용하면 한글을 3바이트로 저장하게 되어 제목의 글자 제한이 대폭 완화되게 된다.
- 일부 특수문자를 사용할 수 없는 것은 미디어위키도 마찬가지다. 모니위키는 알파벳 이외의 문자는 urlencode로 저장하므로 미디어위키에서 사용할 수 없는 글자도 사용할 수 있다.
- 본체 wiki.php 및 wikilib.php 코드는 수천줄이며 읽기가 힘들다고들 한다. PHPWiki를 모방한 객체지향이 맞다. 그러나 객체지향이라고 해서 코드가 읽기 어려운 것은 별개의 문제. 파서가 복잡할 뿐 전체적 구조는 심플하다. 나무위키의 개발자 namu가 새로운 엔진을 개발할 때 모니위키를 참조하려 하였으나 파서를 읽기 어렵다는 이유로 그냥 바닥부터 개발했다고 한다.[8]
3. 개발 상황
3.1. 2003년
- 8월 10일 - 모니위키 1.0 발표.
- 8월 19일 - 모니위키 1.0.1 - 속도 개선 및 버그 수정.
- 8월 25일 - 모니위키 1.0.2 발표.
- login버그 고침
- locale데이터 빠진것 추가 (1.0.1의 패키징 실수)
- rss_rc 개선.
- 8월 30일 - 모니위키 1.0.3 - 버그 수정 및 rss_rc, rss_blog등을 개선.
- 10월 14일 - 모니위키 1.0.4 - 로그인을 간편하게 조정, rss2_blog, register_globals= Off에서 안되던 문제 수정
- 11월 25일 - 모니위키 1.0.5 - 1.0.4의 버그 수정.
- 12월 31일 - 모니위키 1.0.6 발표.
새해 복 많이 받으세요- ["이런 링크"]가 작동하지 않던 문제
- Gallery매크로 버그
- UploadFile, DeleteFile 문제 수정
- 기타 버그 - 인터위키 아이콘[9], blog 버그, pre-block 랜더링 버그 수정
3.2. 2004년
- 1월 8일 - 모니위키 1.0.7 - 보안 관련 버그 수정, 각종 이미지 업데이트.
- 새로운 매크로 추가: BabelFish, MailTo, Trail 몇가지 모인모인 1.1문법 추가및 보완
- 8월 14일 - 모니위키 1.0.8 발표.
- 10월 20일 - 블로그에 관련된 기능들이 개선된 1.0.9 발표.
- BlogChanges 대폭 개선
- External Link 문법 추가[10]
- 기타 수많은 기능 개선 및 버그 수정.
- 11월 4일 - 패키징 실수와 중요한 버그 고친 1.0.9.1 발표.
- 11월 15일 - UploadFile.php 보안버그 수정 및 기타 몇가지 수정 포함한 1.0.9.2 발표.
- rename 버그
--취소선--
문법의 오류 수정
3.3. 2005년
- 8월 8일 - 1.1.0 발표.
[attachment:big.png attachment:small.png]
지원 버그 수정- antispam 기능 추가
- 기타 버그 수정
3.4. 2006년
- 2월 25일 - 1.1.0을 개선한 1.1.1 발표.
- 7월 23일 - 1.1.1에서 새로 나왔던 버그 수정 및 기능 개선한 1.1.2 발표.
- 새로이 발견되었던 XSS 보안문제 해결
- ACL을 실험적으로 지원
3.5. 2009년
- 1월 3일 - 약 2년 5개월여만에 모니위키 1.1.3이 릴리즈되었다. WYSIWYG 에디터의 지원, 캐시 시스템의 개선, 파일 다중 업로드 지원, 시스템 메시지와 WikiSeed의 한글화 등 올라간 버전에 맞지 않게 많은 부분이 추가/개선되었다.
- 1월 9일 - WYSIWYG 에디터로 저장이 제대로 되지 않는 문제 등을 고친 버그 패치판인 1.1.3.1이 릴리즈되었다.
- 10월 24일 - 1.1.3 에서 나타난 몇 가지 버그를 해결하고 속도를 향상시킨 모니위키 1.1.4가 릴리즈되었다.
3.6. 2010년
- 4월 23일 - 모니위키 1.1.5를 개발중이니, 문제점이나 건의사항을 올려달라는 글이 모니위키 게시판에 올라왔다.
- 9월 1일 - 1.1.5가 정식으로 릴리즈 되었다.
- 9월 7 ~ 9일 - 엔하위키에서는 기존 모니위키 커스텀 버전 대신에 1.1.5으로 교체했다. 커스텀 버전과 1.1.5과의 차이점에서 발생하는 문제점이나 버그는 구 엔하위키 게시판을 통해서 보고/수정되었다.
- 9월 10일 - 엔하위키를 1.1.5로 업그레이드 하는 과정에서 발견된 버그를 수정한 1.1.6 CVS가 릴리즈 되었다.
3.7. 2011년 ~ 2012년
- 1.1.5 버그 수정을 목표로 한 1.1.6과 wiki 엔진 코어 리팩토링 작업을 거치게 될 1.2.0가 개발 중이다.
- 이 기간 동안 KLDP.net 서비스 종료 등으로 배포처 변경과 업데이트가 뜸해져 모니위키에 대한 몇 안되는 위키 사용자의 관심이 줄어들었다.
3.8. 2013년
- 엔하위키 미러 IP 차단 논란 즈음부터 개발자 wkpark이 위키 게시판에 자주 나타나더니, 청동의 협력을 얻어 고도화 업데이트가 계속 진행 중이다.
- 2010년 : 100회 이상(모니위키 1.1.5 및 1.1.6/1.2.0 개발 시작)
- 2011년 : 8회
- 2012년 : 5회
- 2013년 : 200여회 이상
리그베다와 모니위키 서로에게 윈윈인 듯하다.
- 4월 19일 : 잦은 업데이트를 하는 페이지 카운터와 페이지 목록에서 부하 발생 되는 것을 확인하여 관련 내용을 수정한 듯.
- 4월 22일 : 인덱스를 이용한 검색 기능 기능 추가, 자동완성 기능 추가
- 4월 27일 : 다용 모바일 테마와 패치 공개
- 4월 28일 : 4월 19일 패치를 했음에도, 페이지 목록에 계속 업데이트 되는 문제가 랜덤페이지 때문임을 발견. 이를 해결할 수 있는 기능 추가
- 5월 중순부터 지속적으로 버전 1.2.0 릴리스 후보가 나오고 있다.
- 7월 모니위키 1.2.0 릴리스되었다.
- 10월 4일 : 모니위키 1.2.1이 릴리스되었다.(1.2.0의 자잘한 버그 수정 및 실험적 기능 추가)
- Fetch Plugin : 위키 문서에 외부 이미지 주소가 있을 경우, 해당 주소로 가서 이미지를 가져와 저장하는 기능. 이글루스 등에서 이미지 불러오면 차단되는 문제 해결하기 위함.
3.9. 2014년
- 1월 12일 : 모니위키 1.2.2가 릴리스되었다.(1.2.1의 자잘한 버그 수정 및 기능 개선)
- pull 액션 : 위키 클라이언트 처럼 가능.
- 2월 : github 등에서 널리 쓰이고 있는 markdown 문법을 모니위키에 사용할 수 있도록 새 위키 프로세서(파서) Mixdown 개발 중. Parsedown을 기반으로 한다고. 모니위키 1.3.0에 들어갈 예정이다. 이 프로세서를 적용하면 모니위키 문법과 마크다운 문법을 짬뽕해서 사용 가능한 듯.('#'은 주석 처리 되므로, 타이틀로 쓰고 싶을 때 끝나는 '#'을 사용해 닫아야 하는 차이점은 있음)
- 2월 25일: 모니위키 1.2.3이 릴리스되었다.(1.2.2의 자잘한 버그 수정 및 기능 개선)
3.10. 2015년
- 리그베다 위키 사태가 지난 얼마 후에 보안버그 소식이 개발자에게 25일 전달되었고 25일 이후로 보안버그를 수정한 패치 릴리스가 연이어 나오고 있다.
- 1.2.4 패치 릴리스가 연이어 나왔다.
- 보안 기능 향상, 1.2.5 안정화를 위해 베타테스트를 계획 중이다.
- 1.2.5 버전에서 문서 이동 기능을 제대로 사용할 수 있게 된다.(그 이전에도 이 기능이 있었으나, 관리자 전용 기능이었다.)
- 기여 철회를 위한 전용 액션 추가.
- 어뷰즈 필터, 틀 역링크 등 기능 개선.
- 삭제 및 문서 이동을 하면 RCS 로그에 기록이 남게 고쳐졌다.(1.2.4까지는 삭제 및 문서이동 및 롤백이 RCS 로그 기록에 남지 않았다.)
- 12월 3일 - 미디어위키식 분류 지원
- 12월 12일 - 그 이후로 700여개의 커밋이 추가되었고 릴리스 후보인 1.2.5-RC13 버전 발표.
- 12월 18일 - 1.2.5 정식 릴리스 - 이는 약 7개월만의 릴리스이다.
3.11. 2016년
- 1월 5일 - 1.2.5p1 패치 릴리스 - 로그인 버그를 고침.
- 1월 31일 - 1.2.5p2 패치 릴리스 - PHP 5.3 이하버전 + 윈도우 사용시 발생하는 버그를 잡음과 동시에 모니위키 1.2.6 개발 시작.
4. 문법 호환성
대부분의 모니위키 문법은 나무마크에서도 호환되고 그 반대도 성립하지만, 일부 차이가 존재한다. 다음은 모인모인 1.x, 모인모인 1.9 및 모니위키와 나무마크 문법 호환성에 대한 테이블이다.위키엔진/문법 | 모인모인 1.0 | 모인모인 1.9 | 모니위키 | 나무마크 | 비고 | WikiCreole 호환성 |
<<매크로>> | 미지원 | 지원 | 지원 | 미지원 | 호환 | |
[[매크로]] | 지원 | 지원 | 지원 | [매크로] [11] | 비호환 | |
$ LaTeX $ 수식 | 미지원 | 미지원 | 지원 | 미지원 ([math] 매크로 지원) | 비호환 | |
[문서이름] 연결 | 미지원 | 미지원 | 지원[A] | 미지원[B] | 비호환 | |
wiki:문서이름 연결 | 지원 | 지원 | 지원[A] | 미지원[B] | 비호환 | |
---- 수평줄(하이픈 네개 이상) | 지원 | 지원 | 지원 | 10개 이상까지 정상 랜더링 | 호환 | |
테이블 배경색 <#000000> | 지원 | 지원 | 지원 | 지원 중단 예정 | 비호환 |
모인모인 계열 문법과 호환성 설명
[[목차]]
문법은 모인모인 계열에서 지원하지 않으며, 모니위키에서는 별명 매크로로 처리된다. 나무마크에서는[목차]
문법을 써야 한다.wiki:문서
문법은 모인모인 계열에서 지원 된다. 모니위키에서는 지원하지만 권장되지 않는다.- 모인모인 계열의 경우
-
문자 네개 이상은 모두 수평줄로 랜더링되지만 나무마크는 10개 이하까지만 정상적으로 랜더링 된다. - 모인모인 계열의 리스트문법은 섞어쓸 수 없다. 또한 리스트간에 두줄 이상의 공백을 넣어도 여전히 이전의 리스트에 이어지는 순서로 번호가 붙어 랜더링된다. 나무위키는 그렇지 않다.
- 모인모인 계열의 경우
[[파일:이름|인자]]
문법은 지원하지 않는다. 모인모인 계열의 위키엔진 식으로 한다면[[파일(이름,인자...)]]
형식으로 써야 한다.
5. 문제점
5.1. Cafe24 설치 문제
Cafe24에 모니위키를 설치하면 "Revision History"가 제대로 동작하지 않는다. 모니위키는 버전 관리에 RCS를 사용한다. rcs는 diff라는 프로그램을 사용한다. cafe24의 diff는 /home/bin 경로에 있는데 rcs의 경로지정이 잘못돼서 오작동을 일으킨다. 이 문제는 다음 방법으로 해결할 수 있다.- 해결방법 1 - config.php 파일에 "$version_class='RcsLite';" 한 줄을 추가하면 된다. RCS 바이너리 대신 PHP로 구현한 것을 사용하는 방법으로, 위키의 용량이 크면 느려지는 단점이 있다.
- 해결방법 2 - rcs 소스 파일을 다른 리눅스 시스템에 다운받아 컴파일해서 서버에 업로드해서 사용한다. /home/bin 디렉토리를 만든 다음 diff, diff3 파일을 복사하자. 그리고 다음처럼 설정하고 컴파일해서 나온 실행파일을 사용하면 된다.
- export DIFF=diff
- export DIFF3=diff3
- export CFLAGS='-static'
- export CXXFLAGS='-static'
5.2. Hostinger 설치 문제
호스팅어는 기본적으로 rcs가 없다. 그래서 따로 설치해야 된다.6. 속도 향상을 위한 팁
위키 게시판에서 모니위키 개발자 wkpark이 밝힌 속도향상 팁은 아래와 같다.- 캐시를 써라 : config.php 파일에 $cachetime=60*60*24; // 라고 넣으면 캐시를 하루 단위로 갱신.
7. 모니위키를 사용하는 위키위키 리스트
- 커뮤니티
- 개인위키
8. 기타
- 설정, 테마, 도움말 등을 일부 한글화하여 사용자 편의성을 높인 모니위키 커스텀 버전이 배포되고 있었다.[23] 이 배포는 개발자 wkpark의 정식 배포가 아니지만, 무료 분양이라는 선택지가 있어 설치의 부담을 줄인 것이 특징이다.(배포, 무료 분양)
9. 관련 문서
[1] KLDP.net 서비스 종료로 인해 github로 이전했으며 KLDP Project:모니위키가 이쪽으로 리다이렉트 된다. 이곳과 리그베다 위키에서 개발되고 있다.[2] 2010년 이전만 해도 오타쿠의, 오타쿠에 의한, 오타쿠를 위한 오덕위키였으며 지금도 그러하다. 다만 2010년대 들어 일반지식을 다루는 문서들이 급격히 늘어서 상당히 희석된 것. 오타쿠 커뮤니티 부속으로 시작된 위키위키가 행정구역 개편이라던가 외교적 수사 같은 내용을 담고 있을거라고 누가 생각하겠는가?(...)[3] 초창기 리브레 위키는 모니위키를 사용하려다 보안 취약점 문제 등으로 미디어위키를 선택했다.[4] 현 리그베다 위키 관리자를 보조하는 특별 권한을 가진 회원.[5] 보안 취약점이므로 악용을 막기 위해 세부 사항은 미공개 상태이지만 업데이트가 늦어진다면 공개될 수 있다.[6] 다만 모니위키를 사용하는 리그베다 위키는 이점을 악용, 고의적으로 역사 파일 열람이 안되게 한 적도 있다.[7] 보안상의 문제로 비활성화 되어있다는 영문 메시지가 웹사이트 상단에 박히면서 위키엔진 동작에 문제가 생긴다.[8] 모니위키 개발브랜치 dev-next에서부터 10년 넘은 낡은 코드를 분리 및 개선하려 하고 있다.[9] 참고로 퍼즐릿 정이 수정했다고 한다.[10] 모인모인 호환.[11] 초기에는
[[매크로]]
형태도 지원했다.[A] 리그베다 위키에서는 비권장 문법이었다.[B] 초기에는 지원됐으나, 개발자측에서 지원을 중단했다.[A] 리그베다 위키에서는 비권장 문법이었다.[B] 초기에는 지원됐으나, 개발자측에서 지원을 중단했다.[16] 위키엔진 자체개발.[17] 2011년 11월 20일 기준 폐쇄되어 접속되지 않는다.[18] 호스팅서비스 기간만료[19] 접속은 되나, 간신히 검색에 성공해도 문서에 들어갈 수가 없다. 사실상 폐쇄된 것이나 다름없다.[20] 폐쇄되었으며, 현재 404 페이지로 리다이렉트된다.[21] 호스팅서비스 기간만료[22] 위키엔진 변경[23] 현재는 중단되었다.