project:dokuwikisetting
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판이전 판다음 판 | 이전 판 | ||
project:dokuwikisetting [2014/03/07 08:46] – 바깥 편집 127.0.0.1 | project:dokuwikisetting [2014/10/09 21:24] (현재) – 바깥 편집 127.0.0.1 | ||
---|---|---|---|
줄 1: | 줄 1: | ||
+ | ====== nginx와 dokuwiki를 이용해 로컬 개인 위키를 구축해보세요! ====== | ||
+ | ===== 시작하기 ===== | ||
+ | 요즘 스마트폰 덕에 언제 어디서나 다양한 형태의 기록을 할 수 있는 환경이 된 것 같습니다. 모바일이라는 플랫폼 덕도 있지만 사용할 수 있는 글쓰기의 포맷도 다양해졌습니다. 예전에는 워드 같은 문서 포맷 정도가 개인 사용자가 만들 수 있는 문서의 전부였다면, | ||
+ | |||
+ | 트위터나 페이스북을 이용해 짧고 개인적인 글이 작성되고, | ||
+ | |||
+ | 개인적인 잡담 정도를 나누는데 있어서는 마이크로블로깅, | ||
+ | |||
+ | 제가 알기로는 블로그는 개인사의 기록, 위키는 다수 협업을 통한 체계적인 기록을 각기의 목적으로 합니다. 그러나 블로그에 전문적인 지식을 체계적으로 적을 수도 있고 공동으로 집필을 할 수도 있습니다. 위키의 경우도 저처럼 개인적으로 사용할 수도 있고 개인적인 기록으로 가득 채울 수도 있습니다. 둘을 확연히 구분짓는 결정적인 차이는 대체 무엇일까? | ||
+ | |||
+ | 수식 지원, 코드 하이라이트, | ||
+ | * 내부/ | ||
+ | * 위키 문법을 이용해 다양한 문서 요소를 삽입할 수 있다. 위키 문법은 처음엔 어색할지 몰라도 익숙해지면 상당히 편리하다. | ||
+ | * 문서 구조화가 쉽다. 문서 작성을 처음부터 구조화시켜서 시작해야 한다. 목차, 각주 등의 생성도 기본적으로 지원되는 경우가 많다. | ||
+ | |||
+ | ===== 어떤 위키를 사용할까? | ||
+ | 위키도 그 개발 철학에 따라 다양한 종류가 있습니다. 어떤 것들은 너무 마이너하고 어떤 것들은 매우 대중적입니다. 쓰기 편하지만 기능상으로 약간 아쉬운 것도 있을 수 있고, 풍부한 기능을 사용하지만 쓰기 쉽지 않은 것도 있을 수 있습니다. 제가 선택한 기준 및 방침은 다음과 같습니다. | ||
+ | - 개인 일반 PC에서 개인적으로 운영되는 위키 | ||
+ | * 관리되는 문서는 모두 외부에 비공개되어야 한다. | ||
+ | * 문서 중 어느 정도 완성도를 가진 문서들을 PDF 등의 다른 포맷으로 공개한다. | ||
+ | * 공유기 등의 내부 개인 네트워크 하에서는 비교적 자유롭게 접속할 수 있도록 한다. | ||
+ | * 폐쇄적인 환경이므로 보안에 너무 크게 중점을 두지는 않아도 된다. | ||
+ | - 서버 전용의 PC가 아니므로 운영에 PC의 자원을 크게 소모해서는 안된다. | ||
+ | * 서버와 PHP를 운영하는 것만으로 부담이 크다. 데이터베이스는 사용하지 않는다. | ||
+ | * 24시간, 365일 운영될 필요는 없다. | ||
+ | - 위키 문법의 난이도는 크게 관계 없다. 다 거기서 거기다. | ||
+ | - 쉽게 설치하고 쉽게 사용해야 한다. 대규모 문서 작업을 위해 만들어진 그릇이 큰 위키는 안 된다. 운영이 어려워 배보다 배꼽이 커진다. | ||
+ | - 상기 상황은 변경 가능할 수 있으므로 가능한 한 유연하고 확장 가능한 형태로 시스템을 구축되어야 한다. | ||
+ | 한편 [[http:// | ||
+ | |||
+ | 저는 여기서 [[http:// | ||
+ | |||
+ | 서론이 길었습니다. 이제 도쿠위키를 일반적인 윈도우 PC에 개인 용도로 사용하기 위한 세팅을 기록하겠습니다. | ||
+ | 저도 서버 세팅에 대한 지식이 많지 않습니다. 아래 내용은 거의 간단한 레시피 수준입니다. 고급 설정에 대해서는 저도 거의 아는 바가 없음을 미리 알려드립니다. | ||
+ | |||
+ | ===== nginx의 세팅 ===== | ||
+ | 서버로는 [[http:// | ||
+ | ==== 다운로드 ==== | ||
+ | [[http:// | ||
+ | |||
+ | ==== 설정 파일 ==== | ||
+ | 도쿠위키 및 PHP가 동작하도록 매만져야 합니다. 복잡한 설명이 많았지만 실제로 변경할 내용이 많지는 않았습니다. | ||
+ | D: | ||
+ | |||
+ | === PHP를 위한 세팅 추가 === | ||
+ | 파일에서 아래와 같은 부분을 찾아 아래 코드처럼 변경합니다. PHP를 위해 반드시 필요합니다. | ||
+ | < | ||
+ | # pass the PHP scripts to FastCGI server listening on 127.0.0.1: | ||
+ | # | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | === 도쿠위키를 위한 세팅 추가 === | ||
+ | 도쿠위키는 HTML 문서 루트에서 동작시킬 생각입니다. | ||
+ | 파일에서 server { ... } 구문을 찾습니다. 두 괄호사이에 다음과 같은 코드를 추가((PDF로 변환할 때 두번째 location의 괄호 안 문자에 의도하지 않은 오타가 섞이는 버그가 있습니다. 정확한 코드는 다음과 같습니다. \\ | ||
+ | location @dokuwiki { \\ | ||
+ | %% rewrite ^/ | ||
+ | %% rewrite ^/ | ||
+ | %% rewrite ^/ | ||
+ | %% rewrite ^/(.*) / | ||
+ | } | ||
+ | ))합니다. | ||
+ | <code text> | ||
+ | location / { | ||
+ | root html; | ||
+ | index doku.php index.html index.htm; | ||
+ | try_files $uri/ @dokuwiki; | ||
+ | } | ||
+ | |||
+ | location @dokuwiki { | ||
+ | rewrite ^/ | ||
+ | rewrite ^/ | ||
+ | rewrite ^/ | ||
+ | rewrite ^/(.*) / | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | 아래 코드는 주석을 해제합니다. 만일 없다면 server { ... } 사이에 직접 삽입합니다. | ||
+ | <code text> | ||
+ | location ~ /\.ht { | ||
+ | deny all; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | 위키의 내용 보호를 위해 다음 코드도 server { ... } 사이에 삽입합니다. | ||
+ | <code text> | ||
+ | # docuwiki | ||
+ | location ~ / | ||
+ | deny all; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== php와의 연동 ===== | ||
+ | PHP는 [[http:// | ||
+ | |||
+ | PHP 구문이 정상적으로 동작하는지 확인해보기 위해 phpinfo() 함수를 구동시켜 보겠습니다. | ||
+ | - D: | ||
+ | - 명령 프롬프트를 열어 D: | ||
+ | - 대충 test.php 파일을 D: | ||
+ | - 웹브라우저에서 응답이 오는지 확인합니다. 소스는 간단하지만 내용은 엄청 많습니다. | ||
+ | - 정상적으로 PHP가 동작하면 test.php 파일은 삭제하세요. | ||
+ | |||
+ | <code php test.php> | ||
+ | <?php phpinfo(); ?> | ||
+ | </ | ||
+ | ===== 배치 파일 및 자동 실행 ===== | ||
+ | ==== 배치 파일 만들기 ==== | ||
+ | 매번 명령창을 열어서 nginx와 php를 구동시킨다면 끔찍합니다. 그러므로 다음과 같은 배치 파일을 몇 개 만들었습니다. 다음 배치 파일은 nginx와 php를 동시에 구동시킵니다. | ||
+ | <code dos StartServer.bat> | ||
+ | @ECHO OFF | ||
+ | ECHO Starting PHP FastCGI... | ||
+ | set PATH=D: | ||
+ | RunHiddenConsole.exe D: | ||
+ | |||
+ | ECHO Starting nginx... | ||
+ | cd nginx | ||
+ | ..\RunHiddenConsole.exe nginx.exe | ||
+ | cd .. | ||
+ | ECHO ON | ||
+ | </ | ||
+ | |||
+ | 다음 배치 파일은 php만 구동시킵니다. 왜인지는 모르겠으나, | ||
+ | <code dos StartFastCGI.bat> | ||
+ | @ECHO OFF | ||
+ | ECHO Starting PHP FastCGI... | ||
+ | set PATH=D: | ||
+ | RunHiddenConsole.exe D: | ||
+ | ECHO ON | ||
+ | </ | ||
+ | |||
+ | 다음 배치 파일은 php를 멈춥니다. 윈도우 8에서 taskkill.exe 명령은 관리자 권한이 있어야 호출되므로 관리자 권한으로 실행해야 합니다. 참고로 윈도우 8에서는 ipconfig 명령도 관리자 권한에서만 동작하더군요. | ||
+ | <code dos StopFastCGI.bat> | ||
+ | @ECHO OFF | ||
+ | REM 관리자 모드에서 실행하세요 | ||
+ | taskkill /F /IM php-cgi.exe | ||
+ | </ | ||
+ | |||
+ | 다음 배치 파일은 nginx를 멈춥니다. 이 명령은 일반 유저 권한으로도 동작합니다. | ||
+ | <code dos StopNginx.bat> | ||
+ | @ECHO OFF | ||
+ | ECHO Stopping nginx... | ||
+ | cd nginx | ||
+ | nginx.exe -s stop | ||
+ | cd .. | ||
+ | ECHO ON | ||
+ | </ | ||
+ | |||
+ | RunHiddenConsole.exe은 콘솔 명령은 실행하되, | ||
+ | |||
+ | 여러번의 서버 폭파(?) 및 재건으로 인해 스크립트 작성이 매우 귀찮습니다. 미리 ' | ||
+ | |||
+ | ==== 자동 실행 하기 ==== | ||
+ | 탐색기 탐색창에 %APPDATA%를 입력합니다. 그러면 자기 계정의 AppData\Roaming 폴더에 접근할 수 있습니다. 이 폴더는 기본적으로 숨겨져 있습니다. | ||
+ | 윈도우 7, 8 기준으로 나머지 Microsoft - Windows - Start Menu - Programs - Startup 폴더에 차례대로 접근합니다. 이 폴더에 StartServer.bat 파일의 바로 가기를 만드세요. 이제 부팅할 때마다 서버는 자동으로 동작합니다. | ||
+ | |||
+ | |||
+ | ===== 도쿠 위키의 설정 ===== | ||
+ | 도쿠위키 다운로드, | ||
+ | |||
+ | ==== 사용한 플러그인 ==== | ||
+ | 플러그인은 보통 다운로드 받아 도쿠위키 루트\lib\plugins 디렉토리에 플러그의 압축을 푸는 것만으로 설치가 끝납니다. 현재 사용중인 플러그인은 두 종류입니다. | ||
+ | |||
+ | === comment === | ||
+ | [[http:// | ||
+ | |||
+ | === dw2pdf === | ||
+ | 클리앙에 위키 내용을 공개할 때 PDF로 만들어서 문서 포맷을 변경합니다. 이 때 [[http:// | ||
+ | |||
+ | == PDF 출력 == | ||
+ | 문서 웹페이지 주소에 '& | ||
+ | |||
+ | == 한글 폰트 == | ||
+ | - 플러그인을 받아 lib\plugins 디렉토리에 ' | ||
+ | - 출력되고자 하는 글꼴을 선택해서 dw2pdf/ | ||
+ | - dw2pdf/ | ||
+ | - %%/*%% Examples of some CJK fonts %%*/%% 주석을 찾습니다. | ||
+ | - 주석된 코드와 비슷하게 이전 과정에서 복사한 폰트 파일의 앨리어스를 만들어야 합니다. 나눔고딕(nanum.ttf), | ||
+ | " | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ), | ||
+ | " | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ), | ||
+ | " | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ), | ||
+ | </ | ||
+ | - dw2pdf/ | ||
+ | - dw2pdf/ | ||
+ | if ($adobeCJK) { | ||
+ | ... | ||
+ | } | ||
+ | else { | ||
+ | $unifonts = " | ||
+ | } | ||
+ | break;</ | ||
+ | |||
+ | == PDF 캐시 == | ||
+ | PDF 작성에 시간이 오래 걸리기 때문에 플러그인은 한 번 만든 PDF 파일은 문서 내용이 수정되지 않는 한 한 번 만들어진 파일을 캐싱해둡니다. 이것저것 세팅값의 변화를 빨리 체크해 볼 때는 캐시가 없는 것이 더 좋습니다. 도쿠위키의 ' | ||
+ | Should PDFs be cached? Embedded images won't be ACL checked then, disable if that's a security concern for you. | ||
+ | 항목의 체크를 해제하면 됩니다. PDF 출력 설정이 안정적으로 된 이후에 캐시 기능을 활성화하세요. | ||
+ | |||
+ | == 이미지 첨부 에러 == | ||
+ | PDF 내부의 QR 코드, 혹은 이미지가 올바르게 출력되지 않는 경우가 발생할 수 있습니다. 이 경우 우선 dw2pdf/ | ||
+ | |||
+ | mPDF error: IMAGE Error (D:/ | ||
+ | |||
+ | 해결 방법은 php.ini에서 extension=php_gd2.dll 주석을 해제하여 GD 라이브러리를 로딩해주면 됩니다. | ||
+ | GD 라이브러리가 로드되었는데도 다음과 같은 에러가 발생할 수 있습니다. | ||
+ | mPDF error: IMAGE Error (https:// | ||
+ | 이 경우 dw2pdf/ | ||
+ | |||
+ | == PDF 변환 시간이 오래 걸릴 때 == | ||
+ | 개인 서버로 저사양의 PC를 사용하는 경우 PDF 변환에 상당한 시간을 필요로 합니다. 그런데 NginX나 Apache등에서 php에 대해 스크립트 실행 시간 제한이 있다면 이 시간 제한에 걸려 PDF를 생성하지 못하는 일이 발생할 수도 있습니다. 이 경우 타임아웃 시간에 조금 여유를 두는 것이 좋습니다. | ||
+ | |||
+ | PHP는 php.ini에서 '' | ||
+ | |||
+ | 출처: http:// | ||
+ | ===== 백업 & 동기화 ===== | ||
+ | === 백업 === | ||
+ | 다음과 같은 파이썬 스크립트로 백업을 수행하도록 하였습니다. 윈도우 탐색기에서 파일을 두 번 클릭하면 동작하고, | ||
+ | <code python BackupDokuWiki.py> | ||
+ | # -*- coding: cp949 -*- | ||
+ | from zipfile import ZipFile | ||
+ | from datetime import date | ||
+ | import os | ||
+ | |||
+ | # 도쿠위키를 ZIP 파일로 압축 | ||
+ | def backup_dokuwiki(saveas): | ||
+ | # root directory of dokuwiki | ||
+ | DOKUWIKI_ROOT = ' | ||
+ | |||
+ | # minimum list of backup | ||
+ | # https:// | ||
+ | DIRS_TO_BACKUP = (' | ||
+ | |||
+ | # | ||
+ | with ZipFile(saveas, | ||
+ | oldpath = os.getcwd() | ||
+ | os.chdir(DOKUWIKI_ROOT) | ||
+ | for dir in DIRS_TO_BACKUP: | ||
+ | path = DOKUWIKI_ROOT + dir | ||
+ | for dirpath, dirnames, filenames in os.walk(path): | ||
+ | for filename in filenames: | ||
+ | relpath = os.path.relpath(dirpath+'/' | ||
+ | print relpath | ||
+ | zf.write(relpath) | ||
+ | os.chdir(oldpath) | ||
+ | |||
+ | # 압축된 파일을 클라우드와 동기화 | ||
+ | def moveto_cloud(filename): | ||
+ | CLOUD_PATH = ' | ||
+ | |||
+ | cloud_file = CLOUD_PATH+'/' | ||
+ | |||
+ | if os.path.exists(cloud_file): | ||
+ | os.remove(cloud_file) | ||
+ | |||
+ | os.rename(filename, | ||
+ | |||
+ | def main(argv): | ||
+ | today | ||
+ | filename = today.strftime(' | ||
+ | |||
+ | backup_dokuwiki(filename) | ||
+ | moveto_cloud(filename) | ||
+ | |||
+ | return 0 | ||
+ | |||
+ | if __name__ == ' | ||
+ | import sys | ||
+ | sys.exit(main(sys.argv)) | ||
+ | </ | ||
+ | |||
+ | 아래 스크립트는 zip이 아닌 tar.bz2로 압축합니다. tar를 사용하기 때문에 파일의 권한이 보존되는 장점이 있습니다. 기능은 거의 비슷하지만, | ||
+ | <code python backup.py> | ||
+ | # | ||
+ | # -*- coding: utf-8 -*- | ||
+ | import datetime | ||
+ | import getopt | ||
+ | import os | ||
+ | import sys | ||
+ | import tarfile | ||
+ | |||
+ | def help(): | ||
+ | help_msg = ''' | ||
+ | -r: dokuwiki root path | ||
+ | -a: backup all dokuwiki data | ||
+ | -p: backup with user plugins | ||
+ | -h: print this message | ||
+ | |||
+ | * Backup target: conf, data/ | ||
+ | * Output file name: (filename_prefix)_YYYYMMDD(state).tar.bz2 | ||
+ | e.g.) backup_20130719.tar.bz2 | ||
+ | backup_20130719a.tar.bz2 | ||
+ | backup_20130719p.tar.bz2 | ||
+ | |||
+ | print help_msg | ||
+ | |||
+ | def main(argv): | ||
+ | optlist, args = getopt.getopt(argv[1: | ||
+ | |||
+ | # check optlist | ||
+ | dokuwiki_root = None | ||
+ | backup_all = False | ||
+ | with_plugin = False | ||
+ | | ||
+ | for opt in optlist: | ||
+ | if opt[0] == ' | ||
+ | if opt[0] == ' | ||
+ | if opt[0] == ' | ||
+ | if opt[0] == ' | ||
+ | help() | ||
+ | return 0 | ||
+ | | ||
+ | # check args | ||
+ | if len(args) != 1: | ||
+ | print >> sys.stderr, 'Error in filename_prefix' | ||
+ | return 1 | ||
+ | file_prefix = args[0] | ||
+ | | ||
+ | if dokuwiki_root is None: | ||
+ | print >> sys.stderr, ' | ||
+ | return 1 | ||
+ | | ||
+ | backup_dokuwiki(dokuwiki_root, | ||
+ | |||
+ | def backup_dokuwiki(dokuwiki_root, | ||
+ | # minimum list of backup | ||
+ | # https:// | ||
+ | DIRS_TO_BACKUP = (' | ||
+ | DEFAULT_PLUGIN = set([' | ||
+ | PLUGIN_PATH_PREFIX = ' | ||
+ | |||
+ | statecode = '' | ||
+ | if backup_all: | ||
+ | statecode = ' | ||
+ | elif with_plugin: | ||
+ | statecode = ' | ||
+ | | ||
+ | datetimestr = datetime.datetime.strftime(datetime.datetime.now(), | ||
+ | filename = ' | ||
+ | | ||
+ | oldpath = os.getcwd() | ||
+ | os.chdir(dokuwiki_root) | ||
+ | tar = tarfile.open(filename, | ||
+ | if backup_all: | ||
+ | tar.add(' | ||
+ | else: | ||
+ | for dir in DIRS_TO_BACKUP: | ||
+ | tar.add(' | ||
+ | | ||
+ | # plugin | ||
+ | if with_plugin: | ||
+ | | ||
+ | for dir in os.listdir(PLUGIN_PATH_PREFIX): | ||
+ | path = os.path.join(PLUGIN_PATH_PREFIX, | ||
+ | isdefault = dir in DEFAULT_PLUGIN | ||
+ | | ||
+ | # only archive user-install plugins | ||
+ | if os.path.isdir(path) and not isdefault: | ||
+ | tar.add(' | ||
+ | | ||
+ | os.chdir(oldpath) | ||
+ | tar.close() | ||
+ | | ||
+ | print filename | ||
+ | | ||
+ | return 0 | ||
+ | | ||
+ | if __name__ == ' | ||
+ | sys.exit(main(sys.argv)) | ||
+ | </ | ||
+ | |||
+ | 위 파이썬 코드는 단지 압축 파일을 생성할 뿐입니다. 이렇게 생성된 파일은 클라우드 서비스 같은 원격지에 따로 보관하면 더욱 안정적으로 데이터를 보관할 수 있을 것입니다. 아래 bash 쉘 스크립트는 자동으로 보통 옵션(conf, | ||
+ | <code bsh autobackup> | ||
+ | #!/bin/bash | ||
+ | |||
+ | # requirement | ||
+ | # Python 2.7 | ||
+ | # https:// | ||
+ | # | ||
+ | # pip install ' | ||
+ | # pip install pyyaml requests | ||
+ | # | ||
+ | # https:// | ||
+ | # put yaml file: ~/.lcrc | ||
+ | # client: | ||
+ | # id: 00000000440EB189 | ||
+ | # secret: JbWpwkOA4bp3jYBCG5wWLb6fqWJHLSkc | ||
+ | # | ||
+ | # ATTENTION: above id/secret is real!! Do not distribute!! | ||
+ | # skydrive-cli auth | ||
+ | |||
+ | SCRIPT_ROOT=/ | ||
+ | DOKUWIKI_ROOT=/ | ||
+ | FILE_PREFIX=/ | ||
+ | SKYDRIVE_PATH=DokuWikiBackup | ||
+ | |||
+ | echo " | ||
+ | BACKUPFILE=`python $SCRIPT_ROOT/ | ||
+ | |||
+ | echo " | ||
+ | / | ||
+ | |||
+ | echo " | ||
+ | rm -f $BACKUPFILE | ||
+ | </ | ||
+ | |||
+ | 이 스크립트를 서버에서는 3일마다 한 번씩 동작시킵니다. | ||
+ | $ crontab -e | ||
+ | |||
+ | 편집기에 다음처럼 스크립트를 추가합니다. 3일에 한 번 오후 6시 정각에 '' | ||
+ | 00 18 */3 * * < | ||
+ | |||
+ | === 동기화 === | ||
+ | < | ||
+ | |||
+ | 한 대의 PC만 사용한다면 동기화에 대해 그렇게 복잡하게 생각할 필요가 없으나, 요즘 2대 이상 여러 기계를 사용하는 경우가 많아졌습니다. 위키를 NAS와 같은 관리하기도 안정적이고 어디서나 접근 가능한 곳에 보관한다면 좋겠지만 그렇지 않은 경우에는 개인 위키의 데이터 백업도 상당히 신경쓰이는 일입니다. 그래도 요즘은 dropbox와 같은 클라우드 서비스가 있으니 아카이브로 만든 파일을 dropbox를 통해 보관하면 상당히 안정적이면서도 손쉽게 데이터를 관리할 수 있습니다. | ||
+ | |||
+ | < | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | === RSync 를 이용한 동기화 === | ||
+ | 참고 문서: [[research: | ||
+ | |||
+ | < | ||
+ | <code bash dokuwiki_rsync> | ||
+ | #!/bin/bash | ||
+ | |||
+ | RSYNC=/ | ||
+ | OPT=" | ||
+ | LOCAL=/ | ||
+ | REMOTE=changwoo@MiniServer:/ | ||
+ | |||
+ | echo "LOCAL >> REMOTE" | ||
+ | $RSYNC $OPT $LOCAL $REMOTE | ||
+ | |||
+ | echo " | ||
+ | $RSYNC $OPT $REMOTE $LOCAL | ||
+ | </ | ||
+ | |||
+ | 미니서버와 데스크탑의 사용자와 그룹이 사실상 같으므로 소유권과 소유자 정보를 같게 맞춰 주는 것이 무엇보다 중요하다. 관리에 상당히 문제가 있는 관계로, [[project: | ||
+ | ===== 개인 도메인 설정하기 (host 파일 편집) ===== | ||
+ | 멋진 위키가 생겼는데 웹브라우저에 ' | ||
+ | |||
+ | 아래와 같은 내용이 있을 것입니다. | ||
+ | < | ||
+ | # Copyright (c) 1993-2009 Microsoft Corp. | ||
+ | # | ||
+ | # This is a sample HOSTS file used by Microsoft TCP/IP for Windows. | ||
+ | # | ||
+ | # This file contains the mappings of IP addresses to host names. Each | ||
+ | # entry should be kept on an individual line. The IP address should | ||
+ | # be placed in the first column followed by the corresponding host name. | ||
+ | # The IP address and the host name should be separated by at least one | ||
+ | # space. | ||
+ | # | ||
+ | # Additionally, | ||
+ | # lines or following the machine name denoted by a '#' | ||
+ | # | ||
+ | # For example: | ||
+ | # | ||
+ | # 102.54.94.97 | ||
+ | # | ||
+ | |||
+ | # localhost name resolution is handled within DNS itself. | ||
+ | # | ||
+ | # ::1 | ||
+ | </ | ||
+ | |||
+ | 여기에 다음과 같이 내용을 추가합니다. | ||
+ | < | ||
+ | # My Server setting | ||
+ | 127.0.0.1 | ||
+ | ::1 | ||
+ | </ | ||
+ | 이제 ' | ||
+ | |||
+ | ===== 마치며 ===== | ||
+ | {{ : | ||
+ | 모든 설정이 끝난 제 현재 위키의 스크린샷입니다. 본 문서네요. :-) 템플릿을 변경하여 미디어위키의 ' | ||
+ | |||
+ | 지금까지 제 개인 PC에 개인용으로 사용중인 도쿠위키의 세팅을 문서화해 보았습니다. 일종의 dog feeding인가요? | ||
+ | |||
+ | 이 글을 보고 ' |
project/dokuwikisetting.txt · 마지막으로 수정됨: 2014/10/09 21:24 저자 127.0.0.1