지각생님의 [웹플 설치 실습: 미디어위키(1)] 에 관련된 글.
점점 위키가 많이 쓰이고 있다. 기업들이 내부적으로 협업 문서 작성을 위해 위키를 적극적으로 쓴다는 것은 잘 알려져 있고, 요즘에는 사회운동하는 사람들의 위키 활용이 부쩍 눈에 띄인다. 진보넷의 정보운동 자료위키, 미디어문화행동 위키(이건 검색에 꽤나 많이 노출되는 듯), 정보공유연대도 내부적으로 위키를 쓰기 시작했고, 지금 아주 중요한 이슈인 "생체전자여권" 대응팀도 위키로 홈페이지를 만들었다. (잠깐 들러서 지금 졸속으로 추진되는 전자여권에 대한 반대 입장을 읽어보시고, 함께 행동해 주시면 좋겠습니다) 그 밖에도 찾아보면 많이 있고.
지각생이 예전에 열심히 참여했던 위키에 가보니 대문(위키의 첫페이지) 페이지가 내용이 없다.
아.. 오셨구나. 인터넷 트래픽의 많은 부분을 차지하고 계신 스팸들이 오셨다. 그냥 한줄 광고만 덧붙이고 가면 좋을 것을 왜 이렇게 기존 데이타까지 날라가게 만드는지.. 보통 사회운동 단체들이 만들고 운영하는 홈페이지는 포털 등 한국 주류 미디어가 따를 시키니 검색에 많이 노출되지 않아서 그런지 스팸이 처음엔 많지 않은 편이다. 그러다 시간이 지나 차차 자료가 쌓이고 예민한 내용들이 있으면 관심받기 시작하고 그럼 아니나 다를까 귀신같이 스팸부터 찾아온다. 그래서 난 스팸이 들어오면 좋은 징조가 아닐까라고 생각하기도 한다. 그러나 이 경우처럼 방치했다가 완전히 사이트 날려먹어서는 대단히 곤란하다. -_- 스팸은 역시 우선적으로 막아놔야된다.
그래서 미디어위키에 간단히 할 수 있는 스팸 방지 조치를 알아보자. 역시 이번에도 지각생의 매뉴얼은 처음부터 끝까지 따라가는 방식입니다. 바로 검색포탈에서 "미디어위키 스팸 방지" 등의 키워드로 검색해도 괜찮은 정보가 나오겠지만 다른 데도 두루 통할 수 있는 방식으로 해보자. 프로그램을 만든 곳의 홈페이지에서 정보를 찾아보는 걸로 시작.
뭔가 시스템에 조치를 가하려 하니까, 저 빨간 원 안에 있는 내용("System Administrators") 중에 있을 것이다. 어두운 길 탐색을 잠깐 직접 해보길 권한다. 그런 과정 없이는 강하게 성장할 수 없다 -_- 이런 것에 익숙해졌다면 어떤 사람은 위 화면을 스크롤해보면 왼쪽에 검색창이 조그맣게 있다는 것을 발견하고 활용할텐데 "spam"이란 키워드를 써서 찾다보면 언젠간 아래 페이지에 도착할 수 있을 것이다. (그러길 바랍니다.)
http://www.mediawiki.org/wiki/Manual:Combating_spam
자, 여기 나온 것 중 두세가지만 해도 왠만한 스팸으로 인한 피해는 싹 줄어든다. 지각생의 시험 결과로는 저 중 "Captcha"기능만 써도 큰 효과를 봤다. Captcha 는 이제 다들 익숙할텐데 스팸 방지를 위해 자동 생성된 이미지를 눈으로 보고 그에 해당하는 글자를 입력한다던지 하는...
그럼 한번 알아봅시다.
위 페이지의 내용을 찬찬히 읽어보면 각자 알 수 있겠지만, 귀찮아서 안 읽는 분들 말고 영어가 싫은 분들을 위해 설명하면, Captcha 기능을 쓰기 위해서는 ConfirmEdit 라는 확장기능을 설치해야 한다. 미디어위키에서 확장기능을 쓰는건 아직까지는 좀 번거로운데, 차차 나아지리라 믿고 일단 시작해봅시다. PHP에 대한 기본적인 지식만 있어도 과정을 이해하며 따라올 수 있지만, 역시 이번에도 그냥 따라올 수 있게 과잉 설명 해보겠습니다.
잘 따라오고 있다면 이 페이지까지 올 수 있었을 겁니다. Installation 과정대로 하면 되는데, 우선 ConfirmEdit 확장기능을 다운받는다. 곳곳에 보이는 Download 링크를 클릭하면 다음 화면처럼 된다. (SSH를 알면 한방 명령어로 죄다 다운받을 수 있긴 하나 역시 여기선 다루지 않습니다)
SVN(Subversion)이라는 툴로 여러 버전이 관리되고 있는데 위의 목록에서 꼭 필요한 건 ConfirmEdit.php ConfirmEdit.i18n.php, ConfirmEdit_body.php 이다. 각각 클릭해서 안으로 들어간 후 "download"를 눌러 자기 컴퓨터에 다운 받자. 이 화면에서 각 링크를 마우스 오른쪽 클릭해서 다운받지 말고 저 링크를 클릭해서 들어간 후 "download"를 누르자.
이 과정을 반복해서 파일들을 다운받는다. 맨 위의 세개뿐 아니라 그 아래에 있는 것도 다 받으면 나중에 쓸데가 있으니 절대 안말립니다.
이전 매뉴얼에서 봤듯 FTP프로그램으로 웹서버 계정에 접속한후, 다운받은 것을 올리면 되는데 이 확장기능은 몇가지 설정을 해줘야 원하는대로 쓸 수 있으니 먼저 약간 수정을 하고 올리기로 하자.
편집기로 ConfirmEdit.php 파일을 연다.
위 그림처럼 수정한다. 아마 위의 두세개는 false 로 되어 있을 거다.
"edit" 를 true로 하면 페이지 내용을 고치고 저장할때마다 captcha 확인 과정을 거치게 되고, "create"를 true로 하면 페이지를 새로 만들고 저장할때 captcha 가 작동된다. 이게 적당할 것이다. 대신 이렇게 해놓으면 언제나 항상 묻게 될 건데, 계정을 등록하고 로그인해서 고칠때는 이 captcha 과정을 번거롭게 밟지 않도록 설정하고 싶을지도 모르겠다 (어떤 스팸은 계정을 만들어서까지 페이지를 고치지만). 그럴땐
$wgGroupPermissions['user']['skipcaptcha'] = false;
라는 줄을 찾아 역시 true로 바꿔주면 된다.
이제 준비는 거의 됐다. 이걸 위키에 올리고 작동시켜 보자. FTP프로그램을 열고 (역시 이번에도 filezilla 사용) 웹서버에 접속하자
이 과정이 생소한 분은 지각생의 이전 매뉴얼들을 참고해주시기 바래요. 여튼 서버에 접속한 후 원격디렉토리를 "다큐먼트 루트"인 public_html 혹은 http 혹은 www 등으로 이동한 후 그곳에 있을 mediawiki 디렉토리로 이동한다. 디렉토리 이름은 처음에 설치할때 적당히 알기 쉽게 바꿨을 것이니 wiki 일수도 있고 mwiki일 수도 있고 하여튼 알아서 들어간다. 이제부턴 "미디어위키 디렉토리"하면 여기까지 들어온 것을 말한다.
미디어위키 디렉토리에 보면 "extensions"라는 하위 디렉토리가 있다. 거기로 들어가보면 처음엔 아무것도 없을 건데, 거기에 "ConfirmEdit"(대소문자 지켜서) 라는 디렉토리를 만든다. 그리고 그곳에 들어가 내 컴퓨터에 다운받아 고쳐놓은 ConfirmEdit.php, ConfirmEdit.i18n.php, ConfirmEdit_body.php 등의 파일을 업로드한다.
이제 설치는 거의 되었다. 이제 미디어위키가 저 확장기능을 사용하도록 활성화시킨다. 다른 확장기능도 마찬가지인데 미디어위키 디렉토리에 있는 LocalSettings.php 파일을 열어 고쳐야 한다. Editplus, UltraEdit 등의 프로그램이 있으면 바로 원격 파일을 열어 수정하면 되고, 없으면 지금 열어둔 FTP를 통해 다운받은후, 편집기로 고쳐 저장하고 다시 업로드한다.
이런 PHP 파일이다. 맨 아래쪽까지 스크롤해서 내려가자.
맨 아랫줄에(꼭 맨 아래일 필욘 없지만) 위 그림에 빨간줄로 표시된 부분을 넣어준다.
require_once("$IP/extensions/ConfirmEdit/ConfirmEdit.php");
이제 저장하고, FTP로 다시 원래 있던 곳으로 업로드한다. 이제 미디어위키는 ConfirmEdit 확장기능을 사용해서, 설정한 대로 페이지를 만들거나 고치고 저장할때 Captcha 확인 과정을 거쳐 올바른 답을 입력한 경우 그 내용을 반영하게 된다.
위 그림처럼 로그인을 안하고 내용을 고친 후 "저장"하려고 하면,
이렇게 간단한 더하기 빼기 문제를 낸다. 틀린다고 꾸짖지 않고 몇번이고 계속 다른 문제를 낸다. 정답을 맞추면 내용이 저장된다. 꼭 더하기 빼기 문제만 있는건 아니고 이 과정에서 언뜻 보았겠지만 FancyCaptcha 기능을 쓰면 대신 이미지로 된 글자가 나온다. 하지만 약간 번거로운데다 지각생은 이걸로 만족했으므로 패스...
이제 위키는 "아주" 안전해졌다. 물론 그 전에 비해서 상대적으로 그렇다는 거고 제대로 스팸의 타겟이 됐다면 이것말고도 많은 조치를 해주고 계속 신경을 써줘야 한다. 그래도 일단 이정도만 해도 한시름은 돌렸다.
ConfirmEdit 는 현재 PHP5 환경에서, 미디어위키 1.6 이상 버전에서 돌아간다. PHP4 환경에서돌아가는 파일들이 있다고 되어 있지만 링크는 깨진 상태. PHP를 어느정도 아는 사람에게 부탁해서 PHP4환경에 맞게 고쳐달라고 부탁해보는 수밖에. 지각생도 귀찮고 무지해서 그렇게까진 안했봤는데 혹 되면 링크하겠삼.
덧. 지각생의 위키도 참고하세요. 이후 업데이트는 위키로 합니다.