본문 바로가기
소프트웨어 사용&설치 등/미디어위키 Mediawiki

[미디어위키 Mediawiki] 미디어위키 Git 으로 설치하기

by 언제나초심. 2019. 3. 18.
반응형

개요

 어째서인지 미디어위키 설치과정에 대해서 다룬 포스트가 없었습니다. 소스코드를 다운로드 받고 설치하는 방법이 있지만, 저는 개인적으로 git 을 활용해서 설치하는 편이기 때문에, 이 방법에 대해서 다루는 포스팅을 하고자 합니다. 


셋팅 스샷은 찍어둔 포스팅은 있었는데... 설치 과정은 없었네요...


참고 포스팅) (설치 스샷 이라고 해놓고... 셋팅 과정만 스샷 올렸었네요..)

  - 2018/02/13 - [미디어위키 Mediawiki] 미디어위키 1.29.2 설치 스샷

  - 2018/02/15 - [미디어위키 Mediawiki] 미디어위키 1.30.0 설치 스샷



아마 다음에 올려야지 하다가 자꾸 잊어버린 듯 합니다...(;)


'위키 Wiki'란 ?

위키에 대해서 쉽게 설명을 하자면, '문서명'을 기준으로 작성하는 문서도구 라고 볼 수 있습니다. 


URL 로 접근할 때에 문서명 으로 접근을 하게 되고, 그 기준으로 컨텐츠를 정리하게 되기 때문에, 장점이 있습니다. 


블로그가 posting 되는 순서로 계속 쌓아가는 방식이라면, 위키는 문서를 개설하고 계속 보완해가면서 관리하는 방식을 취합니다. 


그래서 저는 '블로그'를 하면서, 개인 용도로 '위키'를 사용하고 있습니다. 위키에는 '미디어위키' 와 '도쿠위키' 가 유명한데, 미디어위키는 데이터베이스를 이용하는 방식이고, 도쿠위키는 txt 파일을 이용하는 방식입니다. 


백업하고 관리하는 데에는 '도쿠위키'가 좋고, 문서의 양이 많아지면 미디어위키 가 좋습니다. 


저의 경우에는, 도쿠위키를 먼저 사용해오다가 익숙해질 즈음에 '미디어위키'로 전향했습니다. 두 개를 동시에 사용해보시면서 편한 것 위주로 사용해보시는 것도 좋습니다.



도쿠위키 설치 방법에 대해서는 원래 작성 중인 포스팅이 있었는데... (그것도 2014년에...) 아직 작성완료가 안 되었습니다. 시간이 되는대로 바로 포스팅하도록 하겠습니다. 이 문서에서는 '미디어위키'에 대해서 중점적으로 다루도록 하겠습니다.



'미디어위키 Mediawiki'란?

미디어위키는 '위키백과'에서 사용하는 것으로 유명합니다. 데이터베이스는 mysql 과 그 외의 것도 이용할 수 있으며, 언어로는 php 를 이용합니다. 


  - 미디어위키 공식 : https://www.mediawiki.org

  - 미디어위키 Github (clone) : https://github.com/wikimedia/mediawiki





Git 설치 과정

예전에 설치 스크립트를 만들어서, github 에 올려두었습니다. 제가 이용하는 스크립트여서 종종 업데이트 하고 있습니다. 해당 코드에 대해서는 하단에 첨부하도록 하겠습니다. 링크는 다음과 같습니다. 

(제가 만든 스크립트 https://github.com/exizt/mediawiki_installer_script )



공식 가이드라인도 살펴보시면 좋습니다. 

* 영어 : https://www.mediawiki.org/wiki/Download_from_Git

* 한국어 : https://www.mediawiki.org/wiki/Download_from_Git/ko



한국어 번역 문서는 예전에 비해서 번역이 많이 진행되어 있습니다. 저도 번역에 참여하고 있는데, 하다가 까먹어서 전부 번역은 못 했네요. (...다른 분들도 참여해주시고 계시니...조만간 다 번역되리라 봅니다...)



과정을 먼저 간단히 설명 드리면,

  1. core 를 git clone 합니다 : core 에는 확장 기능(extensions), 스킨 등이 포함되어 있지 않습니다.

  2. 확장 기능 과 스킨 도 일일이 git clone 을 해줍니다. 

  3. composer 를 이용하여 vendor 이하의 내용을 가져옵니다. 


가이드에서는 submodule 을 이용할 것을 설명하고 있지만... 관리에 용이하지 않기 때문에 submodule 은 이용하지 않을 것을 권합니다. 아직은 이른 것 같네요. 그냥 각각 git clone 을 해주는 것이 간단하고 편합니다. 



사전에 필요한 것

1. git 이 설치되어 있어야 합니다.

2. composer 가 설치되어 있어야 합니다.



git 으로 설치하는 과정


mediawiki 의 메인 부분을 git 으로 가져오기 (1.32 를 예로 들어서)



git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git <폴더명>
cd <폴더명>
git checkout -b REL1_32 origin/REL1_32



여기까지 하셨다면, core 를 가져왔고, 버전에 맞춰서 checkout 을 해준 상태입니다. 현재 상태에서는 vendor 도 비어있고, skins 도 비어있고, extensions 도 비어있는 상태입니다. 이제 하나씩 채워넣어야 겠네요.



skins 폴더 로 이동한 후에 git clone 을 합니다.


cd skins
git clone https://gerrit.wikimedia.org/r/mediawiki/skins/Vector Vector && cd Vector && git checkout REL1_32


위는 Vector 스킨을 예로 들었습니다. 기본적으로 들어있는 스킨은 CologneBlue, Modern, MonoBook, Vector 네 종류 입니다. 다른 스킨을 이용하시려면, 위의 스크립트에서 Vector 를 다른 스킨 이름으로 변경하시면 됩니다. (그리고 아예 직접 다운로드를 받으셔서 압축해제하고 넣으셔도 상관없습니다)

저는 개인용 위키를 이용하기 때문에, 무난한 Vector 스킨을 사용합니다. (위키백과 에서 사용하는 스킨입니다)




확장 기능도 마찬가지로 git clone 을 한 후 checkout 을 해주면 됩니다. 전부 다 동일한 과정입니다. (...)


문제는 필요한 확장 기능의 갯수가 많기 때문에, 굉장히 반복작업이 된다는 점입니다...


해결책은 

1) 다운로드 받아서 압축 풀어서 올린다.

2) 스크립트를 만들어서 한 번에 실행시킨다.



저의 경우 스크립트를 이용했는데, 중간에 보시면 이런 구문이 있습니다.


for extension_name in "${CF_MW_EXTENSIONS[@]}"; do
    cd $wikiPath"/extensions"
    command="git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/${extension_name}.git && cd ${extension_name} && git checkout ${CF_MW_BRANCH}"
    eval $command
done




사실 별거 없고 그냥 반복문입니다.... (...)


중요 구문은 아래와 같습니다.


git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/<확장 기능명>.git && cd <확장 기능명> && git checkout REL1_32


이 구문을 복사붙여넣기 해서 한번에 스크립트를 만들어서 실행시키시는 것도 좋을 듯 합니다. 




Git 으로 미디어위키 설치 하는 스크립트

아래는 제가 만든 bash 스크립트 입니다. 깃헙에도 올려져 있습니다.

(https://github.com/exizt/mediawiki_installer_script/blob/master/mediawiki_installer.sh)





#! /bin/bash
# ####################################
# 미디어위키 Git 으로 설치하는 스크립트.
# @Version : 1.3.190123.190317
# @git : https://github.com/exizt/mediawiki_installer_script
#
# 미디어위키를 Git 으로 설치하는 스크립트 입니다. 스크립트를 동작시키는 폴더 하위에 생성합니다.
# ####################################
# 설정

# 브랜치 명. (미디어위키는 REL1_<버전> 과 같은 브랜치명을 이용합니다. REL 은 Release 의 약자로 생각됩니다.)
CF_MW_BRANCH="REL1_32"

# 미디어위키를 생성할 폴더명
CF_MW_DIRNAME="wiki_1_32"

# 사용할 확장 기능들. 필요한 항목을 추가시키거나, 불필요한 항목을 빼시면 됩니다.
CF_MW_EXTENSIONS=("CharInsert" "Cite" "CiteThisPage" "ConfirmEdit" "Gadgets" "ImageMap" "InputBox" "Interwiki" "LocalisationUpdate" "Nuke" "ParserFunctions" "Poem" "Renameuser" "SpamBlacklist" "SyntaxHighlight_GeSHi" "TitleBlacklist" "WikiEditor" )


# ####################################
# 사용되는 로컬 변수들 (아래는 수정하지 마세요)
script_dir=$(cd "$(dirname "$0")" && pwd)
cd $script_dir

wikiName="$CF_MW_DIRNAME"
wikiPath="$script_dir/$wikiName"


# ####################################
# 1.(1) 미디어위키 git clone 하기.
cmd_cr_core_git_clone="git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git $wikiName"


# 1.(2) checkout 해두기.
# 원하는 버전대로 맞춰두어야 나중에 수월하다.
cmd_cr_core_checkout="cd $wikiName && git checkout -b ${CF_MW_BRANCH} origin/${CF_MW_BRANCH}"


# 1.(3) composer 를 이용해서 vendor 생성하기.
# composer update 를 완료하면 vendor 폴더가 생성이 된다.
cmd_cr_core_after="composer update --no-dev && chown -R apache:apache images/"


# 1. 명령어 수행
# 위에서 작성한 명령어 ((1),(2),(3)) 실행
eval "$cmd_cr_core_git_clone && $cmd_cr_core_checkout && $cmd_cr_core_after"

echo "미디어위키 Core Git cloning 완료"
sleep 0.5


# 2. 스킨 git clone 하기.
# skins 폴더 하위 내용 생성. 나는 Vector 만 사용할 것이라서, Vector 만 생성함.
cd $wikiPath"/skins"
git clone https://gerrit.wikimedia.org/r/mediawiki/skins/Vector Vector && cd Vector && git checkout ${CF_MW_BRANCH}


# 확장 기능 clone 하기.
for extension_name in "${CF_MW_EXTENSIONS[@]}"; do
    echo $value
    cd $wikiPath"/extensions"
    command="git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/${extension_name}.git && cd ${extension_name} && git checkout ${CF_MW_BRANCH}"
    eval $command
    sleep 0.5
done

# 4. 종료
cd $wikiPath
echo ''
echo '미디어위키 설치가 완료되었습니다.'
exit 0

















반응형