2011. 3. 7. 22:37

[MoinMoin] Windows XP, Apache 환경에서 파일 업로드 문제

회사에서 프로젝트 정보 공유 및 관리를 위해 MoinMoin 을 설치하였습니다.

Windows XP Professional 이라서 IIS 에 돌리려고 했으나 어떤 설정이 맞지 않는지 페이지가 제대로 나오지 않았습니다. 그래서 어쩔수 없이 Apache 에다가 MoinMoin 을 설치하였습니다. 

설치 방법은 아래 링크를 참고하였습니다.


설치한 MoinMoin 버전은 1.9.3 이었는데 두가지 문제가 나타났습니다.

첫째는, 페이지명이 한글인 경우 URL Encoding 이 잘못되어 제대로 표시되지 않았습니다. 

예로, http://localhost/mywiki/대문

이라고 입력하면, 대문페이지가 제대로 보이긴 하는데 메인 타이틀에 보이는 '대문'글자가 깨져 버렸습니다. 이 깨진 문자를 클릭하면 잘못된 URL 로 이동하였구요.

이건 아무리 자료를 찾아도 해답을 찾지 못해 결국 영문 URL 만 사용하기로 하였습니다. 

두번째는, 파일 첨부가 제대로 동작하지 않는 것이었습니다. 이 문제는 아래 링크를 참고하여 해결하였습니다.


MoinMoin/web/request.py 의 init 함수를 다음과 같이 수정합니다.

먼저 필요한 라이브러리를 임포트합니다.
import sys
import os
그리고 나서 __init__ 함수를 아래와 같이 수정합니다.
    def __init__(self, environ, populate_request=True, shallow=False):
        try:

            if sys.platform == "win32":
                import msvcrt
                msvcrt.setmode(sys.stdin.fileno(), os.O_BINARY)
                msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)

            ResponseBase.__init__(self)
            RequestBase.__init__(self, environ, populate_request, shallow)
            self.href = Href(self.script_root or '/', self.charset)
            self.abs_href = Href(self.url_root, self.charset)
            self.headers = Headers([('Content-Type', 'text/html')])
            self.response = []
            self.status_code = 200

        except Exception, err:
            self.fail(err)

이렇게 수정한 후 apache 를 재시작하면 파일 첨부가 제대로 동작합니다. 한글 명을 가진 파일 첨부시에는 문제가 있을 수 있으니 그건 또다른 방법이 필요합니다.