미디어위키/LocalSettings.php

-

이 녀석으로 미디어위키 설정을 할 수 있지만, 옆동네 XpressEngine처럼 관리자 페이지가 있으면 얼마나 좋을까.
뭐만 하면 HTTP 500을 내뱉는거야?

 
— 관리자가 매번 생각하는 것

이 파일은[편집]

미디어위키의 거의 모든[1] 설정은 이 파일을 건들어야 한다. LocalSettings.php는 DB 정보를 포함한 기본적인 정보 뿐만 아니라, 확장기능의 목록/설정 등도 이 파일로 관리한다.

이 파일은 미디어위키 설치중에 생성되며, 설치 맨 마지막에 위키 개설자가 이 파일을 위키 최상단(index.php이 있는 곳)에 업로드 해야 한다.

보안[편집]

이 파일은 절.대.로! 외부에서 접근 할 수 없도록 해야 한다. 왜냐하면 이 파일 내에는 DB 정보 뿐만 아니라 설정값 중에서 개인정보(SMTP 설정때 등)등이 포함되어 있기 때문이다.

관리 가능한 부분[편집]

DB 정보[편집]

  • Mysql/MariaDB를 기준으로 설명합니다.

LocalSettings.php로 DB 정보를 관리 할 수 있습니다. 이 파일로 DB를 설정 할 수 있는 범위는 아래와 같습니다.

  • DB 타입(mysql/sqlite 등) - $wgDBtype
  • DB 서버(기본값 localhost) - $wgDBserver
  • DB 이름 - $wgDBname
  • DB 아이디(유저) - $wgDBuser
  • DB 비밀번호 - $wgDBpasswird
  • 테이블 접두사(입력한 접두사가 그대로 사용되므로, 접두사를 구분하기 위해 _(언더바)를 사용하자.) - $wgDBprefix
  • DB 옵션(InnoDB/MyISAM) / 언어셋(바이너리/UTF) - $wgDBTableOptions

서버를 이전하는 등 DB 정보가 변경된 경우, 위의 항목에서 변경된 부분만 수정하면 된다. 예를 들어 DB 아이디가 변경된 경우, DB 아이디 부분

위키 이름[편집]

위키 이름을 설정 할 수 있다. 위키 이름은 공백을 허용한다. 하지만 프로젝트 명($wgMetaNamespace), 네임스페이스는 공백을 허용하지 않는다. 공백이 필요한 경우, _(언더바)를 활용하자.

스킨[편집]

$wgDefaultSkin[편집]

위키 내에서 사용할 스킨의 기본값을 설정할 수 있다.

다음과 같이 사용한다.

$wgDefaultSkin = "liberty";

아래의 #wfLoadSkin에 없는 스킨을 설정하는 경우 오류가 발생한다.

대문자가 아닌 소문자로만 작성해야 한다.

기본값이기 때문에 로그인 이후 개인 설정을 통해 다른 스킨으로 변경 할 수 있다.[2]

스킨 불러오기[편집]

wfLoadSkin[편집]

사용할 스킨을 불러오는 기능으로, "./skins" 폴더에 해당 스킨 폴더가 있어야 한다.[3][4]

폴더명과 스킨 폴더 내부에 있는 파일들의 이름[5]이 일치해야 한다.[6] 예를 들어 파일명이 LibertyTemplate.php 이라면, 폴더명도 Liberty로 동일해야 한다.

require_once (스킨)[편집]

확장기능에서의 require_once는 require_once (확장기능) 문단을 확인하세요.

미디어위키 구버전에서는 require_once로 스킨을 불러왔었다.

이때 스킨의 경로를 입력해야 하기에 관리하기에 있어서 불편하다.

현재는 위의 wdLoadSkin으로 불러오면 되기 때문에 필요 없어진 방법이다.

확장기능[편집]

wfLoadExtension[편집]

위키에서 사용 할 확장기능을 등록하는 것으로, wfLoadExtension으로 등록된 확장기능은 사용 할 수 있다.

다만 wfLoadExtension으로 사용 설정한 확장기능들 중에서 추가 설정이 필요한 확장기능들도 존재한다.

require_once (확장기능)[편집]

스킨에서 사용하는 require_once는 require_once (스킨) 문단을 확인하세요.

미디어위키 1.25 이전 버전에서는 require_once으로 확장기능의 경로를 적어서 불러왔었다.

현재의 대부분의 확장기능은 위의 wfLoadExtension으로 적으면 되지만, 몇몇 확장기능들은 1.25버전 이후 버전을 사용하더라도 require_once를 써야 한다고 안내한다.

require_once는 보통은 "$IP"와 변수[7] 같이 사용하며,

require_once "$IP/extensions/sample/sample.php";

위와 같이 사용한다.

각주[편집]

  1. 스킨단에서 처리하는 경우 등을 제외한 거의 99%의 경우
  2. 해당 계정에만 적용된다.
  3. 반드시 skins 폴더에 있는 모든 스킨을 적을 필요는 없다. 그러나 사용하기 위해서는 적어야 한다.
  4. wfLoadSkin으로 불러온 스킨들은 개인 설정 페이지에서 리스트로 나온다.
  5. 스킨명Template.php 등
  6. 대소문자 구분
  7. 도메인 최상위. 예를 들어 https://example.com/