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

미디어위키 설치 직후 LocalSettings.php 기본 설정값 설명

씨실과 날실 2018. 12. 26. 20:00


<?php
# This file was automatically generated by the MediaWiki 1.31.1
# installer. If you make manual changes, please keep track in case you
# need to recreate them later.
#
# See includes/DefaultSettings.php for all configurable settings
# and their default values, but don't forget to make changes in _this_
# file, not there.
#
# Further documentation for configuration settings may be found at:
# https://www.mediawiki.org/wiki/Manual:Configuration_settings

# Protect against web entry
if ( !defined( 'MEDIAWIKI' ) ) {
	exit;
}


## Uncomment this to disable output compression
# $wgDisableOutputCompression = true;

$wgSitename = "사이트 이름";
$wgMetaNamespace = "프로젝트";

## The URL base path to the directory containing the wiki;
## defaults for all runtime URL paths are based off of this.
## For more information on customizing the URLs
## (like /w/index.php/Page_title to /wiki/Page_title) please see:
## https://www.mediawiki.org/wiki/Manual:Short_URL
$wgScriptPath = "/w";

## The protocol and server name to use in fully-qualified URLs
$wgServer = "http://localhost";

## The URL path to static resources (images, scripts, etc.)
$wgResourceBasePath = $wgScriptPath;

## The URL path to the logo.  Make sure you change this from the default,
## or else you'll overwrite your logo when you upgrade!
$wgLogo = "$wgResourceBasePath/resources/assets/wiki.png";

## UPO means: this is also a user preference option

$wgEnableEmail = false;
$wgEnableUserEmail = true; # UPO

$wgEmergencyContact = "apache@localhost";
$wgPasswordSender = "apache@localhost";

$wgEnotifUserTalk = false; # UPO
$wgEnotifWatchlist = false; # UPO
$wgEmailAuthentication = true;

## Database settings
$wgDBtype = "mysql";
$wgDBserver = "localhost";
$wgDBname = "my_wiki";
$wgDBuser = "root";
$wgDBpassword = "비밀번호";

# MySQL specific settings
$wgDBprefix = "w";

# MySQL table options to use during installation or update
$wgDBTableOptions = "ENGINE=InnoDB, DEFAULT CHARSET=binary";

## Shared memory settings
$wgMainCacheType = CACHE_ACCEL;
$wgMemCachedServers = [];

## To enable image uploads, make sure the 'images' directory
## is writable, then set this to true:
$wgEnableUploads = true;
$wgUseImageMagick = true;
$wgImageMagickConvertCommand = "/usr/bin/convert";

# InstantCommons allows wiki to use images from https://commons.wikimedia.org
$wgUseInstantCommons = false;

# Periodically send a pingback to https://www.mediawiki.org/ with basic data
# about this MediaWiki instance. The Wikimedia Foundation shares this data
# with MediaWiki developers to help guide future development efforts.
$wgPingback = false;

## If you use ImageMagick (or any other shell command) on a
## Linux server, this will need to be set to the name of an
## available UTF-8 locale
$wgShellLocale = "C.UTF-8";

## Set $wgCacheDirectory to a writable directory on the web server
## to make your wiki go slightly faster. The directory should not
## be publically accessible from the web.
#$wgCacheDirectory = "$IP/cache";

# Site language code, should be one of the list in ./languages/data/Names.php
$wgLanguageCode = "ko";

$wgSecretKey = "64자리 영숫자 혼합 문자값";

# Changing this will log out all existing sessions.
$wgAuthenticationTokenVersion = "1";

# Site upgrade key. Must be set to a string (default provided) to turn on the
# web installer while LocalSettings.php is in place
$wgUpgradeKey = "16자리 영숫자 혼합 문자값";

## For attaching licensing metadata to pages, and displaying an
## appropriate copyright notice / icon. GNU Free Documentation
## License and Creative Commons licenses are supported so far.
$wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright
$wgRightsUrl = "";
$wgRightsText = "";
$wgRightsIcon = "";

# Path to the GNU diff3 utility. Used for conflict resolution.
$wgDiff3 = "/usr/bin/diff3";

# The following permissions were set based on your choice in the installer
$wgGroupPermissions['*']['edit'] = false;

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

# Enabled skins.
# The following skins were automatically enabled:
wfLoadSkin( 'MonoBook' );
wfLoadSkin( 'Timeless' );
wfLoadSkin( 'Vector' );


# Enabled extensions. Most of the extensions are enabled by adding
# wfLoadExtensions('ExtensionName');
# to LocalSettings.php. Check specific extension documentation for more details.
# The following extensions were automatically enabled:
wfLoadExtension( 'CategoryTree' );
wfLoadExtension( 'Cite' );
wfLoadExtension( 'CiteThisPage' );
wfLoadExtension( 'CodeEditor' );
wfLoadExtension( 'ConfirmEdit' );
wfLoadExtension( 'Gadgets' );
wfLoadExtension( 'ImageMap' );
wfLoadExtension( 'InputBox' );
wfLoadExtension( 'Interwiki' );
wfLoadExtension( 'LocalisationUpdate' );
wfLoadExtension( 'MultimediaViewer' );
wfLoadExtension( 'Nuke' );
wfLoadExtension( 'OATHAuth' );
wfLoadExtension( 'ParserFunctions' );
wfLoadExtension( 'PdfHandler' );
wfLoadExtension( 'Poem' );
wfLoadExtension( 'Renameuser' );
wfLoadExtension( 'ReplaceText' );
wfLoadExtension( 'SpamBlacklist' );
wfLoadExtension( 'SyntaxHighlight_GeSHi' );
wfLoadExtension( 'TitleBlacklist' );
wfLoadExtension( 'WikiEditor' );


# End of automatically generated settings.
# Add more configuration options below.

위 코드들은 미디어위키를 처음 설치했을 때 생성되는 미디어위키 환경설정파일 LocalSettings.php의 예시입니다.

이 코드들을 이해할 수 있어야 여러분들이 미디어위키를 커스터마이징할 수 있게됩니다. 그래서 이번에는 이 코드들을 알아보는 시간을 갖도록 하겠습니다.

 <?php

맨 윗줄의 이 코드는 php 코드로 작성된 문서임을 알려주는 표시입니다. 이 코드가 있으면 컴퓨터는 php 언어로 짜여진 프로그램으로 인식하고 그에 맞춰 결과를 보여주게 됩니다.

 # This file was automatically generated by the MediaWiki 1.31.1

맨 처음 적인 # 표시는 프로그래밍 언어에서 주석 표시입니다. # 표시를 하면 # 뒤의 동일 행 구문은 실행하지 않는다는 의미입니다.

실행하지 않는 구문은 사실 프로그래밍에서 아무런 의미를 가지 않습니다. 그러나 의미를 가지지 않는다는 것은 컴퓨터가 구문을 해석하고 실행하는 그 자체 측면에서 그렇다는 것이지, 해당 프로그래밍 구문을 작성하는 인간에게 있어 이것은 상당한 의미를 가집니다.

인간은 스스로가 가진 인지 및 기억상의 한계때문에 자신의 행위의 의미에 대하여 기술할 필요가 있습니다. 십수 행의 얼마 안되는 코드라면 굳이 적을 필요는 없을 겁니다. 그러나 수천행에서 수만행에 이르는 방대한 양의 코드를 작성하다보면 어떤 의도로 해당 코드를 작성하였는지 한번에 이해하지 못하는 경우가 많습니다. 게다가 요즘은 대규모 프로젝트로 여러 명과 협업을 할 때 자신의 의도를 다른 이들과 공유할 필요가 있게 됩니다. 그럴 때 우리는 구문 실행과는 상관 없는 주석을 달아 자신의 의견을 공유합니다.

# 등의 주석 표시는 주석 구문임을 컴퓨터에게 알려 실행하지 않도록 하는 것이고 우리는 이 주석을 통해 프로그래머 개인에게는 두뇌의 시간적 한계를 넘어 작업할 수 있도록 보조하고, 해당 프로그램을 다루는 협업자들에게는 공간적, 지식적 차이를 넘어 통일되고 유기적인 작업을 할 수 있도록 보조하며, 프로그램을 사용하는 사용자에게는 해당 프로그램을 적절하게 다루기 위한 정보를 제공합니다.

여기서는 # 표시가 주석 표시로 사용되었습니다만 이외에도 // 표시와 <!-- --> 등 다양한 주석 표시가 사용됩니다.

이 LocalSettings.php에는 #과 //를 주석 표시로 사용할 수 있습니다.


아래의 박스는 LocalSettings.php 의 맨 앞부분에 적힌 설명입니다.

LocalSettings.php 파일은 미디어위키에 의해 자동으로 생성됩니다.

모든 구성 가능한 설정에 대해 알아보고자 한다면 includes/DefaultSettings.php 파일을 참조하시면 됩니다.

미디어위키의 환경설정값 변경은 LocalSettings.php 파일 안에서만 이루어져야 합니다.

구성 설정에 대한 자세한 설명서는 다음에서 찾을 수 있습니다.

https://www.mediawiki.org/wiki/Manual:Configuration_settings

미디어위키 기본 설정값

압축 저장소 지원(Compressed Storage Support)

## Uncomment this to disable output compression


# $wgDisableOutputCompression = true;

압축 저장소 지원에 대한 설정입니다. 해당 환경설정은 출력 압축 비활성화 여부에 대한 정의값으로, 기본값은 true, 즉 출력 압축 미지원입니다.

참고로 # 표시가 붙는데요. 이것은 주석처리입니다.

$wgDisableOutputCompression 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgDisableOutputCompression


일반 설정

- 사이트 이름 / 기본 사용자 정의 이름공간(네임스페이스) 이름

$wgSitename = "사이트 이름";
$wgMetaNamespace = "프로젝트";

사이트 이름과 위키 내 기본 사용자 정의 이름공간 이름을 정의하는 환경변수입니다.

$wgSitename 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgSitename

$wgMetaNamespace 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgMetaNamespace


경로(Paths)

## The URL base path to the directory containing the wiki;
## defaults for all runtime URL paths are based off of this.
## For more information on customizing the URLs
## (like /w/index.php/Page_title to /wiki/Page_title) please see:
## https://www.mediawiki.org/wiki/Manual:Short_URL


$wgScriptPath = "/w"; 
설치한 미디어위키의 기본 URL 값입니다. 이 경로값는 상대경로를 기준으로 정의되며, 이 값은 함부로 변경해서는 안됩니다. 만약 변경하게 된다면 이 환경변수와 관련된 모든 종속변수들이 재정의되어야 합니다.

만약 짧은 주소(= 단축 URL)를 사용하고자 한다면 아래 주소를 참조하시기 바랍니다.

일반 설정

- 서버 URL 주소

## The protocol and server name to use in fully-qualified URLs


$wgServer = "http://localhost";

서버의 기본 URL값입니다.

$wgServer 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgServer

리소스 로더(ResourceLoader)

## The URL path to static resources (images, scripts, etc.)


$wgResourceBasePath = $wgScriptPath; 
리소스 로더 모듈의 기본 'remoteBasePath'값을 정의하는 환경변수입니다.

기본값은 $wgScriptPath 변수의 정의값과 동일합니다.

$wgResourceBasePath 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgResourceBasePath

경로

- 로고 주소

## The URL path to the logo.  Make sure you change this from the default,
## or else you'll overwrite your logo when you upgrade!


$wgLogo = "$wgResourceBasePath/resources/assets/wiki.png"; 
위키의 로고 이미지 주소를 설정하는 환경변수입니다.

위 정의된 환경변수를 보면 알수 있듯이 $wgResourceBasePath 환경변수에 정의된 경로 하위 /resources/assets/ 디렉토리 안 wiki.png파일이 로고 이미지 파일입니다.

해당 파일을 교체해주시거나, 위키 내 업로드한 로고 이미지 주소로 수정해주시면 됩니다.

$wgLogo 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgLogo

UPO

UPO means: this is also a user preference option


$wgEnableEmail = false;
$wgEnableUserEmail = true; # UPO

$wgEmergencyContact = "apache@localhost";
$wgPasswordSender = "apache@localhost";

$wgEnotifUserTalk = false; # UPO
$wgEnotifWatchlist = false; # UPO
$wgEmailAuthentication = true; 
UPO는 User Preference Option 즉 사용자 환경설정 옵션의 약자를 의미합니다.

- 이메일 설정

이메일 활성화

위키 내 이메일 송수신 기능의 활성화 여부를 설정하는 환경변수입니다.

기본값은 true, 즉 활성입니다만 위키 설치 때 변경할 수 있습니다.

이 기능을 사용하려면 서버 내 sendmail 등 이메일 서버 프로그램이 설치되어 있고 관련 설정이 구성되어 있어야 합니다. 웹호스팅이나 서버 호스팅 등을 이용하시는 경우에는 바로 true로 놓고 사용하셔도 됩니다. 그러나 서버 구축을 접한지 얼마 안되는 초심자 분들은 아직 이메일 서버 구축을 익히지 못하신 경우 다른 유능한 분들의 글을 참고하여 이메일 관련 환경을 구축한 후에 변수값을 true로 정의하여 사용하시고, 아직 구축하지 못하시거나 필요가 없으신 분들은 위의 예처럼 false로 정의해주시기 바랍니다.

$wgEnableEmail 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgEnableEmail

사용자 이메일 활성화

사용자 간 이메일 전송 활성화 환경변수로, 기본값은 true, 즉 활성입니다.

필요없으신 경우 변수값을 false로 정의해주시면 됩니다.

$wgEnableUserEmail 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgEnableUserEmail

사이트 관리자 이메일 주소 - 긴급연락

위키 사이트 관리자 이메일 주소를 정의하는 환경변수입니다.

기본값은 false로, 현재 버전(1.22 .이상) 위키에서 사용하지 않고 있는데요. 이유는 이 기능을 바로 이어서 설명할 $wgPasswordSender 환경변수가 대신하고 있기 때문입니다. 그러나 앞으로의 버전의 위키이나 익스텐션(확장)에서는 사용될 수 있습니다.

$wgEmergencyContact 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgEmergencyContact

비밀번호 발송

비밀번호를 발송해주는 이메일 주소 설정 환경변수입니다. 적절한 이메일 주소로 설정해주시면 됩니다.

$wgPasswordSender 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgPasswordSender

- 이메일 알림 설정

사용자 토론 편집 알림

다른 사용자가 자신의 사용자 토론 문서(페이지)를 편집했을 때 이메일로 알려주는 기능의 활성화 여부를 설정하는 환경변수입니다. 자신의 사용자 토론 문서가 편집 이메일 알림을 허용하려면 변수값을 true로 정의해주시면 됩니다.

해당 옵션은 사용자 기본 설정에 표시되며 다른 사용자가 사용자 토론 문서를 변경하면 사용자는 전자 메일을 수신하도록 선택할 수 있습니다.

단, 뒤에 설명할 $wgEmailAuthentication 환경변수값이 false로 정의될 경우 이 설정은 무시됩니다.

$wgEnotifUserTalk 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgEnotifUserTalk

주시문서에 대한 이메일 알림

만약 어떤 사용자가 특정 문서를 주시문서로 설정한 경우, 해당 문서가 수정될 때 주시문서로 설정한 사용자에게 이메일로 알려주는 기능의 환경변수입니다.

이 기능을 사용하려면 변수값을 true로 정의해주시면 됩니다.

기본값은 false, 즉 미사용으로 설정되어있으며 추후 true로 변경한 경우 이 기능을 사용할 수 있습니다만 그것이 즉시 자동으로 모든 사용자들에게 적용되는 것은 아니기에 각 사용자는 여전히 비활성화 설정이 유지됩니다. 따라서 해당 환경변수가 true로 변경된 이후 각 사용자가 따로 설정해주어야 합니다.

단, 뒤에 설명할 $wgEmailAuthentication 환경변수값이 false로 정의될 경우 이 설정은 무시됩니다.

$wgEnotifWatchlist 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgEnotifWatchlist

이메일 인증

비밀번호 알림 이메일 요청을 제외한 모든 이메일 기능은 인증된 이메일에 한해서만 작동됩니다.

위키에 계정을 만들고자 하는 예비 사용자가 가입 신청을 하거나 기존의 가입 사용자가 비밀번호를 변경하고자 변경 신청을 하는 등의 행위를 하는 경우, 위키는 유효기간이 정해진 토큰을 요청 이메일 주소로 발송하게 됩니다. 해당 (예비) 사용자가 이메일을 통해 토큰을 반환하면 비로소 그 이메일 주소가 인증되며 이후부터 위키 내 이메일 서비스를 이용할 수 있습니다.

변수값을 false 로 설정하면 전자 메일 알림 옵션은 전자 메일 주소를 인증 (확인)하지 않고도 작동합니다.

$wgEmailAuthentication 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgEmailAuthentication

DB 설정(Database settings)

$wgDBtype = "mysql";
$wgDBserver = "localhost";
$wgDBname = "my_wiki";
$wgDBuser = "root";
$wgDBpassword = "비밀번호"; 

데이터베이스 유형

    "mssql" - MS-SQL
    "mysql" - MySQL or MariaDB
    "oracle" - Oracle
    "postgres" - PostgreSQL
    "sqlite" - SQLite

미디어위키에 추천하는 DB는 MySQL 혹은 MariaDB입니다. 이 두 DB가 가장 호환성이 높으며 오류 발생시 문제해결 가능성이 높습니다. 두터운 사용자 층만큼이나 각종 문제에 대한 해결책이 굉장히 많이 공유되고 있기 때문입니다.

$wgDBtype 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgDBtype

데이터베이스 서버의 호스트 이름

데이터베이스 호스트 이름 또는 IP 주소 설정 환경번수입니다.

기본값은 localhost입니다.

$wgDBserver 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgDBserver

데이터베이스 이름

미디어위키가 사용하는 데이터베이스의 이름을 정한 환경변수입니다.

미디어위키 설치시 기본값은 my_wiki입니다만 임의대로 수정할 수 있습니다.

그러나 설치 완료 후 이것을 변경해서는 안됩니다.

$wgDBname 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgDBname

데이터베이스 사용자(DB User)

데이터베이스 사용자를 정하는 환경변수입니다.

기본값은 root입니다.

보안을 위해서는 미디어위키를 관리할 DB 사용자를 따로 생성하여 설정해주는 것이 좋습니다.

이 역시 설치 완료 후 변경하지 마십시오.

$wgDBuser 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgDBuser

데이터베이스 암호

$wgDBuser 의 암호입니다.

데이터베이스의 사용자 암호가 변경된 경우, 이 부분을 똑같이 수정해주세요.

$wgDBpassword 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgDBpassword

MySQL 특정 설정(MySQL specific settings)

$wgDBprefix = "w"; 
미디어위키가 사용하는 특정 데이터베이스 내 설치 미디어위키 고유의 접두어를 설정하는 환경변수입니다.

이렇게 이야기하면 초심자 분들은 이해하기 어려울 수 있습니다. 예를 하나 들어봅시다.

독서실에는 여러 개의 칸막이 책상들이 다수 구비되어 있어 여러 이용자들이 한칸씩 차지하여 여러 책들을 펼쳐 놓고 공부를 하거나 읽을 수 있습니다. 이것을 다음과 같이 연결지을 수 있습니다.

독서실은 서버 안에 구축된 DB(데이터베이스)입니다. 그리고 독서실 이용자는 DB 사용자입니다.

DB 사용자가 DB에 접속한다는 것은 독서실에 독서실 이용자가 들어가는 것이지요.

DB 사용자가 특정한 데이터베이스를 생성한다는 것은 칸막이 책상 하나를 차지하는 것과 같습니다.

독서실 이용자는 특정 분야 공부를 하거나 한 권의 책만 읽을 수도 있지만 여러 공부를 하거나 여러 권의 책을 읽을 수도 있습니다.

하나의 일만 한다면 굳이 따로 구별지어줄 필요가 없습니다. 헷갈릴 일이 없잖아요. 그러나 여러 일을 하게 된다면 이야기는 달라집니다. 예를 들어 여러 과목의 공부를 한다고 칩시다. 그러면 우리는 과목별로 하나의 공책을 구비하여 학습하거나 하나의 공책을 쓰더라도 섹션별로 나누어 공부 내용을 분류하여 필기합니다. 만약 한 공책에 아무런 구별도 없이 내용을 적으면 공부 내용이 늘어남에 따라 점점 헷갈리게 됩니다.

데이터베이스 사용도 마찬가지입니다. 생성된 하나의 데이터 베이스 안에 하나의 CMS만 사용할수도 있지만 상당수는 여러 CMS를 한 DB 안에 설치하여 사용합니다.

만약 이 설치된 CMS들이 각기 다른 프로그램이라면 그나마 덜 혼동할 겁니다. 그러나 만약 동일한 프로그램을 어떤 이유로 둘 이상 설치해야 한다면 굉장히 헷갈리거나 심지어는 충돌할 수도 있습니다.

이것을 방지하기 위해 마치 공책을 따로 준비하거나 공책 안에 포스트잇을 붙여 구별하는 것처럼 일종의 구별 표지를 달아주는데요. 그것이 바로 테이블 접두어입니다.

이 테이블 접두어로 컴퓨터나 사람은 프로그램을 구별하게 됩니다.

테이블 접두어는 반드시 붙여주도록 합시다. 어차피 지금 당장은 해당 프로그램 하나만 쓸거라서 필요없다 하더라도 미래에 또 동일한 프로그램을 설치해야 할 경우가 생길 수 있습니다. 미래의 추가 설치 가능성을 감안하여 테이블 접두어를 붙이는 습관을 들이도록 합시다.

미디어위키를 설치할 때 테이블 접두어는 공란이 기본값입니다. 적절히 이름을 붙여주세요.

$wgDBprefix 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgDBprefix

MySQL 테이블 옵션(MySQL table options)

$wgDBTableOptions = "ENGINE=InnoDB, DEFAULT CHARSET=binary"; 

미디어위키 철치시 설정된 테이블 옵션값 환경번수입니다.

이 부분은 절대 수정하지 마세요.

$wgDBTableOptions 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgDBTableOptions

공유 메모리 설정(Shared memory settings)

$wgMainCacheType = CACHE_ACCEL;
$wgMemCachedServers = []; 

개체 캐시 설정

미디어위키의 개체 캐시 설정 환경변수입니다.

미디어위키 설치시 기본값은 CACHE_NONE입니다만 제가 위키 설치 연재를 할 때 APCu를 설치하였으므로 변수값이 CACHE_ACCEL로 설정되었습니다.

이부분은 수정하지 마세요. 

$wgMainCacheType 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgMainCacheType

Memcached 서버

Memcashed를 설치한 경우 설정하는 환경변수입니다.

설치하지 않은 경우 위와 같이 공란으로 설정되며, 만약 설치했다면 [ ] 안에 IP가 기입됩니다.

이 환경변수 역시 수정하지 마세요.

$wgMemCachedServers 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgMemCachedServers

파일 업로드(image uploads)

## To enable image uploads, make sure the 'images' directory
## is writable, then set this to true:


$wgEnableUploads = true;
$wgUseImageMagick = true;
$wgImageMagickConvertCommand = "/usr/bin/convert"; 

업로드 활성화

기본값은 false 즉 비활성입니다만 미디어위키를 설치할 때 업로드에 체크하면 위와 같이 활성화됩니다.

미디어위키 파일 업로드는 몇가지 특징이 있는데요. 먼저 영문자 대소문자를 구별합니다. 이것은 서버의 OS가 유닉스 및 리눅스 계열인 경우 공통적으로 적용되는 특징입니다.

두번째는 위키라는 CMS의 특성에서 비롯되는 특징인데요. 올리고자 하는 파일 이름이 기존에 올려져 있는 파일과 대소문자까지 똑같은 완전히 동일한 경우, 기존의 파일은 /images/archive 디렉토리에 저장됩니다.

세번째는 파일 업로드 디렉토리의 특징입니다. 미디어위키는 기본적으로 파일의 해시값 첫 두 문자를 기반으로 디렉토리를 생성하고 그 안에 파일을 업로드합니다. 아래는 그 예입니다.

$IP/images/a/ab/foo.jpg

참고로 $IP는 미디어위키의 설치 디렉토리를 의미합니다.

이렇게 하는 이유는 하나의 폴더에 너무 많은 파일이있는 것을 피하기 위함인데요. 일부 시스템은 하나의 디렉토리 안에 너무 많은 파일이 존재하면 서버 성능이 떨어지기 때문입니다.

이미지(섬네일-미리보기) 크기 조정(ImageMagick)

ImageMagick은 섬네일(미리보기 이미지) 생성에 사용되는 프로그램입니다.

미디어위키에서 이미지 파일의 섬네잃을 이용하기 위해서는 ImageMagick을 설치해야 합니다. 보통 우분투 설치시 서드파티 프로그램 설치를 설정하면 기본적으로 깔리게 되며, 설치가 되어 있지 않더라도 우분투 소프트웨어에서 따로 설치할 수 있습니다.

$wgUseImageMagick 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgUseImageMagick

ImageMagickConvertCommand

ImageMagick을 호출할 때 사용하는 환경번수로, ImageMagick의 절대경로값이 적혀있습니다. 미디어위키 설치시 자동으로 감지해 설정하므로 따로 수정할 필요가 없습니다.

만약 미디어위키 설치 후에 ImageMagick를 설치했다면 $wgUseImageMagick과 $wgImageMagickConvertCommand를 설정해주어야 합니다.

$wgImageMagickConvertCommand 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgImageMagickConvertCommand

인스턴트 공용(InstantCommons)

# InstantCommons allows wiki to use images from https://commons.wikimedia.org


$wgUseInstantCommons = false; 
위키미디어재단의 인스턴트 공용 저장소의 사용 여부를 설정하는 환경변수입니다.

InstantCommons를 사용하면 위키에서 https://commons.wikimedia.org의 이미지를 사용할 수 있습니다.

사용하시려면 변수값을 false에서 true로 바꿔주시면 됩니다.

$wgUseInstantCommons 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgUseInstantCommons

미디어위키 설치 보고서 제출( pingback)

# Periodically send a pingback to https://www.mediawiki.org/ with basic data
# about this MediaWiki instance. The Wikimedia Foundation shares this data
# with MediaWiki developers to help guide future development efforts.


$wgPingback = false; 

미디어위키 개발자에게 설치된 미디어위키의 각종 정보를 수시로 제공할지 정하는 환경 변수입니다. 제공되는 정보는 추후 버전의 미디어위키 개발에 이용됩니다.

제공되는 정보는 다음과 같습니다.

설치 미디어위키의 고유 해시값 / 데이터베이스 유형

미디어위키 버전 / PHP 버전 / OS 버전

컴퓨터 시스템 비트 종류 / 컴퓨터 아키텍쳐

웹서버 프로그램 / PHP 메모리 제한

해당 정보를 미디어위키 개발자들에게 제공하고자 하신다면 변수값을 false에서 true로 바꿔주시면 됩니다.

$wgPingback 환경번수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgPingback

쉘로케일(ShellLocale)

## If you use ImageMagick (or any other shell command) on a
## Linux server, this will need to be set to the name of an
## available UTF-8 locale


$wgShellLocale = "C.UTF-8"; 

이것은 서버의 문자셋(= 문자집합) 관련 설정입니다.

미디어위키 설치시 자동으로 설정되므로 설치 후 수정하지 마세요.

참고로 미디어위키 1.29 이하는 기본값이 en_US.utf8(영문 미디어위키 기반)이었습니다만 1.30이후부터는 C.UTF-8로 바뀌었습니다.

$wgShellLocale 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgShellLocale

캐시 디렉토리(CacheDirectory)

## Set $wgCacheDirectory to a writable directory on the web server
## to make your wiki go slightly faster. The directory should not
## be publically accessible from the web.


#$wgCacheDirectory = "$IP/cache"; 
환경변수는 미디어위키의 캐시파일들을 저장하는 디렉토리를 설정하는 디렉토리입니다.

위 코드를 보시면 알 수 있다시피 #이 앞에 붙어 있어 주석처리되어 있습니다.

이 기능을 쓰시려면 #을 제거해 주석처리를 해제하시기 바랍니다.

$wgCacheDirectory 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgCacheDirectory

미디어위키 언어 설정(Site language code)

# Site language code, should be one of the list in ./languages/data/Names.php


$wgLanguageCode = "ko"; 

미디어위키 설치시 설치자가 선택한 언어판에 맞게 설정됩니다.

$wgLanguageCode 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgLanguageCode

미디어위키 비밀키($wgSecretKey)

$wgSecretKey = "64자리 영숫자 혼합 문자"; 

설치된 미디어위키 고유의 비밀키로, 64자리의 임의문자로 생성됩니다.

만약 이 값이 외부로 노출된 경우 반드시 새로운 비밀 키를 생성해주어야 합니다.

$wgSecretKey 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgSecretKey

인증 토큰 버전(AuthenticationTokenVersion)

# Changing this will log out all existing sessions.


 $wgAuthenticationTokenVersion = "1";

인증과 관련된 환경변수로, 대량 계정 훼손과 같은 긴급사태 때 모든 사용자들을 로그아웃시킬 때 사용합니다. 즉 평소에는 건드릴 일이 없는 환경변수이지요.

만약 기존의 모든 세션들을 로그아웃시켜야 할 때, 이 변수값을 임의의 다른 정수로 수정해주시면 됩니다.

$wgAuthenticationTokenVersion 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgAuthenticationTokenVersion

미디어위키 업그레이드 키(Site upgrade key)

# Site upgrade key. Must be set to a string (default provided) to turn on the
# web installer while LocalSettings.php is in place


$wgUpgradeKey = "16자리 영숫자 혼합 문자";

웹접속을 통한 미디어위키 업그레이드를 위한 암호로, LocalSettings.php 생성시 자동 생성됩니다. 16자리 임의의 영숫자 혼합 암호로 구성되며, 미디어위키를 웹을 통해 업그레이드할 때 이 키를 입력해주어야 합니다.

업그레이드 프로그램이 새 키를 생성하도록하려면 LocalSettings.php에서 이전 키를 삭제하시면 됩니다.

$wgUpgradeKey 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgUpgradeKey

라이선스 및 저작권(License and Copyright)

## For attaching licensing metadata to pages, and displaying an
## appropriate copyright notice / icon. GNU Free Documentation
## License and Creative Commons licenses are supported so far.


$wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright
$wgRightsUrl = "";
$wgRightsText = "";
$wgRightsIcon = ""; 

위키 저작권 안내 페이지 정의

위키의 저작권에 대한 정보를 담은 위키 내부 문서의 이름을 지정해주는 환경변수입니다.

이것을 정의해주기 전에 위키 내 저작권 문서를 미리 생성해주어야 합니다.

예시는 아래와 같습니다.

$wgRightsPage = "프로젝트:저작권"; 


$wgRightsPage 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgRightsPage


위키 저작권 안내 외부 페이지 정의

위키의 저작권에 대한 정보를 담은 위키 외부 문서의 이름을 지정해주는 환경변수입니다.

만약 $wgRightsPage 변수와 $wgRightsUrl 변수가 동시에 정의된다면 $wgRightsUrl 변수를 무시합니다.

예시는 아래와 같습니다.

$wgRightsUrl = 'https://creativecommons.org/licenses/by-sa/3.0/'; 


$wgRightsUrl 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgRightsUrl

저작권 안내 링크 텍스트 정의

$wgRightsUrl 또는 $wgRightsPage 환경변수가 정의되었을 때 해당 저작권 안내 링크텍스트를 제공하는 환경 변수입니다.

예시는 아래와 같습니다.

$wgRightsPage = "프로젝트:저작권";
$wgRightsText = "본 사이트 저작권 안내";

or

$wgRightsUrl = 'https://creativecommons.org/licenses/by-sa/3.0/';
$wgRightsText = "본 사이트 저작권 안내";


$wgRightsText 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgRightsText

저작권 관련 아이콘 정의

미디어위키를 설치할 때 저작권으로 Creative Commons 라이선스를 사용하는 경우, 설치자가 고른 특정 CC라이선스를 설치 프로그램이 자동으로 설정하는 환경변수입니다.

예시는 아래와 같습니다.

$wgRightsIcon = "$wgScriptPath/resources/assets/licenses/cc-by-sa.png"; 


$wgRightsIcon 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgRightsIcon

diff3 경로(diff3 Path)

# Path to the GNU diff3 utility. Used for conflict resolution.


$wgDiff3 = "/usr/bin/diff3"; 
GNU diff3 유틸리티의 경로를 설정하는 환경변수입니다.

미디어위키 설치시 자동으로 설정됩니다.

$wgDiff3 환경번수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgDiff3

사용자 권한(permissions)

# The following permissions were set based on your choice in the installer


$wgGroupPermissions['*']['edit'] = false; 

위키 내 특정 그룹 사용자의 권한을 설정하는 환경변수입니다.

참고로 위의 환경변수 코드의 의미는 위키 사이트에 가입하지 않은 사람에게 편집 권한을 부여하지 않는다는 의미입니다.

기본적인 그룹별 사용자 권한 환경변수 코드의 예시는 다음과 같습니다.

$wgGroupPermissions['user']['edit'] = true; 

위 코드를 해석해 봅시다.

['user'] : 사용자 그룹 이름(위키 가입 사용자)

['edit'] : 편집 권한

= true : 권한 부여

사용자 정의 사용자 그룹 권한 설정은 다음과 같은 형식으로 정할 수 있습니다.

# 사용자 그룹 user의 기본권한을 할당하는 것으로 시작합니다.
$wgGroupPermissions['Trustworthy'] = $wgGroupPermissions['user'];
# Now modify these rights:
$wgGroupPermissions['Trustworthy']['delete'] = true;
$wgGroupPermissions['Trustworthy']['protect'] = true;
$wgGroupPermissions['Trustworthy']['patrol'] = true;
$wgGroupPermissions['Trustworthy']['purge'] = true; # 문서의 캐시 삭제 권한 
위 코드를 해석해 봅시다.

먼저 Trustworthy라는 사용자 정의 그룹에 user그룹의 권한을 부여합니다.

거기에 문서 삭제 / 문서 보호 / 문서 감시 / 문서 캐시 삭제 권한을 추가로 부여한다는 의미입니다.

이 사용자 권한은 굉장히 많은 경우의 수가 존재할 수 있기 때문에 그 내용을 이 글에 모두 담을 수는 없습니다. 따라서 사용자 권한 메뉴얼 링크를 아래에 알려드리겠습니다. 이 링크를 참고하시기 바랍니다.

기본 스킨(Default skin)

## Default skin: you can change the default skin. Use the internal symbolic
## names, ie 'vector', 'monobook':


$wgDefaultSkin = "vector"; 
새로운 사용자의 위키 기본 스킨을 설정하는 환경변수입니다.

이 스킨 변수값은 소문자로 지정해야 합니다.

기본 스킨은 위키에 로그인하지 않은 익명의 접속자나 따로 자신만의 스킨을 설정하지 않은 사용자에게 보이는 스킨입니다.

이 기본 스킨은 미디어위키를 설치할 때 설정할 수 있으나 나중에라도 바꿀 수 있습니다.

$wgDefaultSkin 환경변수 메뉴얼

https://www.mediawiki.org/wiki/Manual:$wgDefaultSkin

이용 가능한 스킨들(Enabled skins)

# Enabled skins.
# The following skins were automatically enabled:


wfLoadSkin( 'MonoBook' );
wfLoadSkin( 'Timeless' );
wfLoadSkin( 'Vector' ); 

위키에서 사용자들이 선택하여 사용할 수 있는 스킨들입니다.

미디어위키를 tar.bz2 형태의 배포 파일을 이용해 설치한 경우 즉시 이용 가능한 스킨들은 위 코드의 3개입니다.

참고로 Git을 통해 미디어위키를 설치한 경우에는 어떤 스킨도 설치되지 않으므로 따로 설치해주어야 합니다. 그에 대한 자세한 내용은 아래의 링크를 참고하시기 바랍니다.

2018/12/11 - [IT/미디어위키(Mediawiki)] - Git을 이용한 미디어위키 설치 방법

기본적으로 설치되어 있는 3개의 스킨 외에도 추가적으로 설치할 수 있는데요.

추가 스킨들은 https://www.mediawiki.org/wiki/Special:SkinDistributor에서 다운받을 수 있습니다.

미디어위키 안 skins 디렉토리 안에 추가할 스킨을 내려받고 그 후에 LocalSettings.php 파일에 다음과 같은 코드를 추가해주면 됩니다.

wfLoadSkin( '추가할 스킨 이름(반드시 소문자로)' ); 

Enabled extensions

# Enabled extensions. Most of the extensions are enabled by adding
# wfLoadExtensions('ExtensionName');
# to LocalSettings.php. Check specific extension documentation for more details.
# The following extensions were automatically enabled:


wfLoadExtension( 'CategoryTree' );
wfLoadExtension( 'Cite' );
wfLoadExtension( 'CiteThisPage' );
wfLoadExtension( 'CodeEditor' );
wfLoadExtension( 'ConfirmEdit' );
wfLoadExtension( 'Gadgets' );
wfLoadExtension( 'ImageMap' );
wfLoadExtension( 'InputBox' );
wfLoadExtension( 'Interwiki' );
wfLoadExtension( 'LocalisationUpdate' );
wfLoadExtension( 'MultimediaViewer' );
wfLoadExtension( 'Nuke' );
wfLoadExtension( 'OATHAuth' );
wfLoadExtension( 'ParserFunctions' );
wfLoadExtension( 'PdfHandler' );
wfLoadExtension( 'Poem' );
wfLoadExtension( 'Renameuser' );
wfLoadExtension( 'ReplaceText' );
wfLoadExtension( 'SpamBlacklist' );
wfLoadExtension( 'SyntaxHighlight_GeSHi' );
wfLoadExtension( 'TitleBlacklist' );
wfLoadExtension( 'WikiEditor' ); 

위 코드는 공식 사이트에서 배포되는 미디어위키가 기본적으로 설치할 수 있는 익스텐션들의 코드입니다.

미디어위키는 굉장히 많은 익스텐션(확장기능)을 지원합니다.

일반적으로 익스텐션을 $IP/extensions 디렉토리에 다운받은 다음, LocalSettings.php 파일에 다음과 같은 코드를 적어주는 것만으로 설치를 할 수 있습니다.

wfLoadExtension( '익스텐션 이름' ); 

익스텐션 추가 코드에는 위 코드만 있는 것은 아닙니다.

오래 전에 개발되어 현재까지 유지보수되고 있는 익스텐션들 중에는 위의 최신 코드가 아닌 구식 코드를 사용하는 경우도 있습니다. 아래는 그 예입니다.

require_once("$IP/extensions/익스텐션 이름/익스텐션 이름.php"); 

이 작업 후 위키에서 특수:버전 또는 special:version을 검색하면 익스텐션이 추가된 것을 확인할 수 있습니다.

그러나 특정 익스텐션들은 이 작업만으로는 설치되지 않는 경우가 종종 있습니다.

그런 경우는 다음과 같은 작업을 추가로 해주어야 하는 경우가 있습니다.

해당 익스텐션 관련 리눅스 패키지 설치

관련 익스텐션 추가 설치

해당 익스텐션 관련 설정 코드 추가

미디어위키 안 maintenance/update.php 파일 실핼

추가 익스텐션들은 다음의 링크들에서 검색하여 다운받으시면 됩니다.

Code End

# End of automatically generated settings.
# Add more configuration options below.

자동 생성된 설정의 끝입니다.

이 아래에 더 많은 설정 옵션을 추가해주시면 됩니다.


LocalSettings.php 수정 시 주의사항

LocalSetttings.php 파일 백업은 선택이 아닌 필수입니다.

php 구문은 반드시 ;(세미콜론)으로 닫아주어야 합니다. php 실행 구문이 만약 ;(세미콜론)으로 안 닫히면 위키가 제대로 작동하지 않게 됩니다.

주석을 제대로 활용하도록 합시다. 주석을 잘 활용하면 유지보수를 하는데 있어서 생산성이 올라갑니다.