미디어위키/미디어위키 설치 및 관리

미디어위키(Mediawiki)의 스킨(skin)과 익스텐션(extension)에 대하여

씨실과 날실 2019. 6. 14. 09:00

다른 CMS 도구들도 마찬가지지만 미디어위키의 운영은 미디어위키(Mediawiki)의 핵심 프로그램의 설치만으로 끝나는 것이 아닙니다. 미디어위키는 위키 자체가 가지는 개념이라든지 위키 특유의 문법 등 여러 요인으로 인하여 다른 CMS 도구에 비해 진입장벽이 꽤나 높은 프로그램입니다. 즉 위키를 관리하는 것 뿐만 아니라 일반 사용자가 위키에 자신의 경험과 지식 등을 기여하기 위해서도 위키 사용법에 대한 상당한 지식을 가지고 있어야 합니다.

그 좋은 예가 한국어 위키백과입니다. 한국어 위키백과는 기여자들을 위해 위키 문법 등을 포함하여 상당한 양의 도움말을 준비해놓고 있습니다.

위 도움말을 보면 위키에 글을 작성하기 위해서 얼마나 많은 사전지식이 필요한지 알 수 있습니다. 이것이 위키가 다른 CMS 도구들에 비해 활성화가 덜된 이유입니다.

이것을 해결하기 위해 미디어위키와 위키피디아 측은 Visual Editor 등 상당한 노력을 기울이고 있습니다만 아직 부족한 감이 없지 않습니다.

이 진입장벽을 낮춰 사용자 친화적으로 만들기 위해서는 LocalSettings.php 등을 주물러 자신의 위키에 맞게 설정을 잡아주어야 하고 각종 스킨과 익스텐션을 설치하여 활용할 수 있어야 합니다.

LocalSettings.php 기본 설정에 대해서는 이미 한 번 다루었으므로 아래 링크를 참고하시기 바랍니다.

2018/12/26 - [서버 운영/미디어위키(Mediawiki)] - 미디어위키 설치 직후 LocalSettings.php 기본 설정값 설명

2019/03/20 - [서버 운영/미디어위키(Mediawiki)] - 미디어위키(Mediawiki) 로고(Logo)와 파비콘(Favicon) 변경

2019/03/22 - [서버 운영/미디어위키(Mediawiki)] - 미디어위키(Mediawiki) 사용자 권한(User rights) 설정

2019/03/26 - [서버 운영/미디어위키(Mediawiki)] - 미디어위키(Mediawiki) 새로운 사용자 그룹 생성 및 권한 부여

2019/03/27 - [서버 운영/미디어위키(Mediawiki)] - 미디어위키(Mediawiki) 저작권 및 라이선스 설정 - 크리에이티브 커먼즈 라이선스(CCL - Creative Commons license), GNU 자유 문서 사용 허가서

2019/03/30 - [서버 운영/미디어위키(Mediawiki)] - 미디어위키(Mediawiki) 모바일 접속 환경 구축 - MobileFrontend, GeoData, Minerva Neue

2019/04/01 - [서버 운영/미디어위키(Mediawiki)] - 미디어위키(Mediawiki) Short URL(짧은 주소, 단축 주소, 간편 URL, 단축 URL 등) 구현

2019/04/05 - [서버 운영/미디어위키(Mediawiki)] - 미디어위키(Mediawiki) 파일 업로드 01(핵심 설정)

2019/04/09 - [서버 운영/미디어위키(Mediawiki)] - 미디어위키(Mediawiki) 파일 업로드 02(인스턴트 공용 기능 활성화)

2019/04/10 - [서버 운영/미디어위키(Mediawiki)] - 미디어위키(Mediawiki) 파일 업로드 03(파일 업로드 권한 설정)

2019/04/13 - [서버 운영/미디어위키(Mediawiki)] - 미디어위키(Mediawiki) 파일 업로드 04(이미지 업로드 설정)

2019/04/12 - [서버 운영/미디어위키(Mediawiki)] - 미디어위키(Mediawiki) 파일 업로드 05(라이선스 설정)

물론 이외의 설정은 연재를 해 나가가면서 추가해나가도록 하겠습니다.

LocalSettings.php 설정도 설정이지만 위키의 관리자가 아닌 일반 사용자(= 위키의 일반 기여자 = 위키러)에게 피부에 와닿는 변화는 역시 위키의 외양을 결정하는 스킨과 각종 부가 기능을 결정하는 익스텐션일 것입니다.

이번 글은 스킨과 익스텐션에 대한 개략적인 설명을 목표로 하며, 이후에 각 스킨과 익스텐션별로 설명을 하고자 합니다. 특히 익스텐션은 따로 카테고리를 만들 예정입니다.

스킨(skin)

스킨은 보통 영어사전에서 첫번째 번역어로 (사람의) 피부 등으로 올라가고 있습니다만 프로그램 측면에서 볼 때 스킨은 디자인 변경이 가능한 화면 표시 부분, 즉 프로그램 UI·UX의 외양을 의미합니다. 즉 사용자가 해당 프로그램을 접할 때 보게 되는 프로그램의 얼굴이라 할 수 있습니다.

미디어위키는 1.31 LTS 이후의 버전을 기준으로 미디어위키 Core 배포 파일에 기본적으로 'MonoBook', 'Timeless', 'Vector' 이렇게 3개의 스킨을 번들로 제공하고 있습니다.(Git으로 설치하는 경우에는 미포함)

위 그림은 미디위키 설치시 기본값으로 설정되어 있는 Vector 스킨의 화면입니다.

자신의 입맛에 따라 스킨을 골라 따로 설치하여 사용할 수 있습니다. 2017년 6월 현재 미디어위키 공식 스킨 배포 페이지(https://www.mediawiki.org/wiki/Special:SkinDistributor)에서 총 42개의 스킨을 다운받을 수 있으며, 이곳이 아닌 깃허브 등에서 스킨 제작자가 따로 배포 중인 스킨을 설치할 수도 있습니다.

일반 스킨 설치 방법

스킨 다운로드

각 스킨의 공식 배포 페이지(https://www.mediawiki.org/wiki/스킨명)에서 내려 받거나, 미디어위키 공식 스킨 배포 페이지(https://www.mediawiki.org/wiki/Special:SkinDistributor)에서 다운받고자하는 스킨을 선택하여 다운받는 것이 보통이며, 미디어위키에서 배포되지 않는 스킨의 경우, 해당 스킨 배포처에서 다운 받습니다.

압축된 스킨 파일 $IP/skins 디렉토리 안에 풀기

다운받은 압축파일을 $IP/skins 디렉토리 안에 풀어줍니다. 그러면 해당 스킨명을 디렉토리명으로 하는 디렉토리가 생깁니다. 참고로 $IP는 미디어위키가 설치된 디렉토리 경로를 뜻합니다. 제 연재 그대로 따라오신 분은 해당 디렉토리가 아래와 같을 것입니다.

/var/www/html/w

설치한 스킨 등록

이 상태로 LocalSettings.php 파일에 아래 구문을 추가해줍니다.

wfLoadSkin( '스킨명' );

위 구문은 미디어위키에 해당 스킨이 설치되어 있음을 알려주는 것입니다.

스킨 설정

이제 화면에 보일 스킨을 설정해줍니다.

미디어위키 기본 스킨값은 아래와 같이 설정되어 있을 것입니다.

## Default skin: you can change the default skin. Use the internal symbolic
## names, ie 'vector', 'monobook':
$wgDefaultSkin = "Vector";

위에서 $wgDefaultSkin 값을 아래와 같이 설정해줍니다.

$wgDefaultSkin = "스킨명";

스킨 변경 확인

LocalSettings.php 파일을 위와 같이 수정, 저장 후 미디어위키에 접속해봅니다. 그러면 새로 설정된 스킨이 적용된 것을 볼 수 있을 것입니다.

미디어위키 설치 직후 스킨 목록

위 그림은 미디어위키에 설치된 스킨 표입니다. 미디어위키는 설치 시 기본적으로 모노북(MonoBook), 타임리스(Timeless), 벡터(Vector)이 세 개를 제공하며, 위 도표에 추가되어 있는 미네르바 노이에(Minerva_Neue)는 모바일 접속화면용 스킨입니다. 해당 스킨 설치 방법은 이미 다루었으므로 해당 내용은 아래 링크를 참고하시기 바랍니다.

자세한 스킨 설치 방법은 기본 스킨 연재 후 올리도록 하겠습니다.

익스텐션(extension = 확장 기능)

익스텐션은 확장 기능이라고도 하며, 미디어위키에 관리자 및 사용자를 위한 각종 부가 기능을 추가해주는 조그마한 프로그램입니다. 미디어위키의 활용은 결국 이 익스텐션의 적절한 활용에서 판가름납니다.

이 익스텐션을 적절히 사용하면 미디어위키에 대한 사용자들의 진입장벽을 굉장히 낮춰 위키의 활성화에 도움이 될 뿐만 아니라 위키 관리자 입장에서도 관리의 효율성을 극대화할 수 있습니다.

미디어위키가 장구한 시간동안 이어져 온 오픈소스 프로젝트인 만큼 지금까지 개발된 익스텐션도 굉장히 많습니다. 이것들 중에서 자신에게 맞는 익스텐션을 찾고 익스텐션을 설치, 사용하는 방법을 알아보는 것은 미디어위키 초보자들에게는 쉽지 않은 일일 것입니다.

익스텐션에 대한 자세한 설명과 익스텐션 검색은 아래 링크를 참고하시기 바랍니다.

일반 익스텐션 설치 방법

익스텐션 다운로드

각 익스텐션의 공식 배포 페이지(https://www.mediawiki.org/wiki/익스텐션명)에서 내려 받거나, 미디어위키 공식 스킨 배포 페이지(https://www.mediawiki.org/wiki/Special:ExtensionDistributor)에서 다운받고자하는 익스텐션을 선택하여 다운받는 것이 보통이며, 미디어위키에서 배포되지 않는 익스텐션의 경우, 해당 익스텐션 배포처에서 다운 받습니다.

압축된 스킨 파일 $IP/extensions 디렉토리 안에 풀기

다운받은 압축파일을 $IP/extensions 디렉토리 안에 풀어줍니다. 그러면 해당 익스텐션명을 디렉토리명으로 하는 디렉토리가 생깁니다. 참고로 $IP는 미디어위키가 설치된 디렉토리 경로를 뜻합니다. 제 연재 그대로 따라오신 분은 해당 디렉토리가 아래와 같을 것입니다.

/var/www/html/w

설치한 익스텐션 등록(필수)

이 상태로 LocalSettings.php 파일에 아래 구문을 추가해줍니다.

wfLoadExtension( '익스텐션명' );

위 구문은 미디어위키에 해당 익스텐션이 설치되어 있음을 알려주는 것입니다.

설치 미디어위키가 특정 버전 이하인 경우 위의 현대화된 코드 대신 아래의 코드를 대신 적음으로써 익스텐션을 등록해줍니다.

require_once "$IP/extensions/익스텐션 폴더명/익스텐션명.php";

익스텐션 설정(추가)

일반적인 익스텐션의 경우 바로 위의 익스텐션 등록 코드를 LocalSettings.php 파일에 삽입해주는 것만으로 설정이 완료되지만 일부 익스텐션은 각 익스텐션별 추가 설정 코드를 삽입해주어야 합니다. 해당 코드는 해당 익스텐션 공식 페이지에 공개되어 있으므로 해당 내용을 참고하여 적어주시면 됩니다.

미디어위키 DB 업데이트(추가)

특정 익스텐션은 미디어위키의 DB 구조 변경이 필요한 경우가 있습니다. 위 코드 설정을 적용해 준 후

미디어위키 DB 업데이트를 해주어야 합니다. 미디어위키 DB 업데이트 방법은 웹브라우저를 통한 업데이트와 터미널을 통한 방법이 있습니다.

웹브라우저를 통한 미디어위키 DB 업데이트

http://localhost/w/mw-config/

위 주소로 접속하여 안내에 따라 업데이트를 해주시면 됩니다. 자세한 내용은 아래 링크를 참고하시기 바랍니다.

터미널을 통한 미디어위키 DB 업데이트

터미널에서 아래의 명령을 실행해주셔야 합니다.

study@study-VirtualBox:/var/www/html/w/maintenance$ php update.php
위와 같이 명령을 실행해주시면 됩니다. 웹브라우저를 통한 업데이트와 터미널을 통한 업데이트 중 터미널을 통한 업데이트를 권장드립니다.

참고로 미디어위키 DB 업데이트를 실행하기 전에 반드시 DB를 백업하시기 바랍니다.

추가 설치(추가)

일부 익스텐션은 특정 외부 패키지나 라이브러리, 다른 익스텐션 설치가 필요한 경우가 있습니다. 그 대표적인 예가 Visual Editor(= 시각편집기)입니다. 비주얼에디터의 경우, Parsoid(https://www.mediawiki.org/wiki/Parsoid)와 Node.js가 반드시 설치되어 있어야 합니다. 해당 익스텐션의 설치 안내에 따라 추가 설치해주시면 됩니다.

미디어위키 설치 직후 스킨

설치된 익스텐션의 목록은 특수:버전 페이지에서 확인할 수 있습니다. 배포되는 미디어위키에 포함되어 있는 모든 번들 익스텐션을 설치하면 아래 그림과 같이 나오게 됩니다.

총 22개의 번들 익스텐션이 함께 설치되며 위 그림에서 GeoData와 MobileFrontend는 미디어위키의 모바일 접속 환경을 구축하기 위해 따로 설치한 익스텐션입니다.