Jump to content

MediaWiki/Extensions

From DawoumWiki, the free Mathematics self-learning

미디어위키 확장미디어위키를 원하는 목적에 맞게 사용하기 위해 필요한 추가적인 기능을 더해주는 것입니다.

각 확장은 그것의 목적을 달성하기 위해 작성되므로, 복잡성이 다양합니다. 간단한 확장은 추가적인 설정없이 소스를 정해진 위치에 풀고, 확장을 로딩함으로써 설치가 끝납니다. 반면에 보다 복잡한 확장은 소스를 정해진 위치에 추가하는 것 외에 해당 디렉토리로 이동해서 필요한 라이브러리를 설치하는 과정이 필요할 수 있고, 원하는 동작을 위해, 추가적인 설정이 필요할 수 있습니다.

이런 것들은 미디어위키 사이트에서 관련된 정보를 찾을 수 있습니다. 예를 들어, 인터위키(Interwiki) 확장에 대한 정보를 얻고 싶으면, 미디어위키 사이트에서 Extension:Interwiki로 검색하면, 만약 있다면, 해당 페이지로 이동합니다.

그 외에도 미디어위키를 기반으로 운영되는 사이트, 단체, 또는 개인이 추가적인 확장을 만들어서 사용하는 경우가 있습니다. 이들 정보는 개별적인 사이트에서 정보를 찾을 수 있습니다.

한편, 미디어위키 처음 사용자들은 어떤 확장이 자신에게 필요한지, 또는 필수적인지 알 수가 대체로 없습니다. 이런 목적으로, 검색을 통해 필수적인 확장을 찾을 수도 있지만, 대체로 원하는 기능인지 확신하기 힘들고 복잡한 확장은 설정이 까다로울 수 있습니다.

경험적으로 보자면, 미디어위키 사이트에서 주로 확장을 찾을 수 있었고, 현재 운영중인 미디어위키 기반 사이트에서 원하는 기능을 발견할 수 있었습니다. 만약 미디어위키로 운영되는 사이트, 예를 들어, 영문 위키피디아의 설치된 확장을 확인하고 싶다면, w:Special:VersionInstalled extensions 섹션을 보십시오. 만약 이 위키에서 이전에 검토, 사용되었거나, 사용중인 확장을 보고 싶다면, Category:Extensions을 보십시오.

묶음 확장

미디어위키는 안정 버전이 제공될 때, 묶어서 같이 제공되는 몇 개의 확장이 있습니다. 미디어위키-1.36 버전에서는 다음 확장이 기본적으로 제공됩니다. 이들 확장 중에서, 아래의 주석 처리한 LocalisationUpdateOATHAuth를 제외하고는 대체로 위키를 운영하는데 도움이 됩니다.

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( 'PageImages' );
wfLoadExtension( 'ParserFunctions' );
wfLoadExtension( 'PdfHandler' );
wfLoadExtension( 'Poem' );
wfLoadExtension( 'Renameuser' );
wfLoadExtension( 'ReplaceText' );
wfLoadExtension( 'Scribunto' );
wfLoadExtension( 'SecureLinkFixer' );
wfLoadExtension( 'SpamBlacklist' );
wfLoadExtension( 'SyntaxHighlight_GeSHi' );
wfLoadExtension( 'TemplateData' );
wfLoadExtension( 'TextExtracts' );
wfLoadExtension( 'TitleBlacklist' );
wfLoadExtension( 'VisualEditor' );
wfLoadExtension( 'WikiEditor' );

추천 확장

시각 편집기는 미디어위키 처음 사용자에게 보다 쉬운 편집 환경을 제공하기 위해 도입할 필요가 있습니다. 이에 필요한 환경을 위키미디어 재단의 것을 사용하면 비교적 쉽게 설정이 되지만, 서비스의 속도 품질 향상을 위해 로컬에서 환경을 제공할 때에는 잘 작동하지 않을 수 있습니다.

이제, 미디어위키 알파 버전 1.39.0-wmf.28에서 테스트된 결과를 제공하고자 합니다.

이미, 위의 데비안 설치 문서의 내용을 적용한 후로 가정하고, 다음 3개의 파일을 수정해 볼 수 있습니다:

  • /etc/nginx/site-available/default
  • /usr/local/lib/restbase/config.yaml
  • /var/www/html/w/LocalSettings.php

먼저, Nginx의 설정에서 restbase 관련 설정에서 localhost를 자신의 도메인, 예를 들어, 이 서버에서 dawoum.duckdns.org으로 바꿉니다.

# 서버 블록 위에
upstream restbase {
	server dawoum.duckdns.org:7231;
	keepalive 32;
}

map $request_uri $restbasequery {
        default "xx";
        "~/api/rest_v1/(?<xrestbasequery>.*)$" "$xrestbasequery";
}

# 서버 블록 내에
	location /api/rest_v1/ {
		proxy_pass http://restbase/dawoum.duckdns.org/v1/$restbasequery;
	}

다음으로, RESTBase의 설정에서 parsoid의 host 부분을 웹 서버의 설정을 따릅니다. 이때, 프로토콜도 http인지 https인지 정확히 적도록 하십시오. 그런-다음, 전체 도메인을 localhost 도메인과 함께, 위에서 지정한 도메인을 추가합니다:

 parsoid:
   host: https://dawoum.duckdns.org/w/rest.php

 paths:
   /{domain:localhost}: *default_project
   /{domain:dawoum.duckdns.org}: *default_project

마지막으로, 미디어위키 설정에서 일부를 수정합니다:

$parsoidInstallDir = 'vendor/wikimedia/parsoid'; # bundled copy
if ( $parsoidInstallDir !== 'vendor/wikimedia/parsoid' ) {
    AutoLoader::registerNamespaces( [
        'Wikimedia\\Parsoid\\' => "$parsoidInstallDir/src",
    ] );
}

wfLoadExtension( 'Parsoid', "$parsoidInstallDir/extension.json" );

# Manually configure Parsoid
$wgVisualEditorParsoidAutoConfig = false;
$wgParsoidSettings = [
    'useSelser' => true,
    'rtTestMode' => false,
    'linting' => false,
];
$wgVirtualRestConfig['modules']['parsoid'] = [
    'url' => 'https://dawoum.duckdns.org/w/rest.php',
#    'domain' => 'dawoum.duckdns.org',
];
unset( $parsoidInstallDir );

$wgVirtualRestConfig['modules']['restbase'] = [
  'url' => "http://dawoum.duckdns.org:7231",
  'domain' => 'dawoum.duckdns.org',
  'forwardCookies' => false,
  'parsoidCompat' => false,
];

이렇게 설정하더라도 동작하지 않을 수 있으며, 오류 메시지를 확인해서 대처하십시오.

Troubleshootings

Parsoid 확장 로드
위의 시각 편집기 설정에서 위와 같이 Parsoid 확장을 로드하면, php 명령을 실행하는 것에서 다음 오류가 발생할 수 있습니다. 여기서 확인하십시오.
PHP Fatal error:  Uncaught Exception: Unable to open file vendor/wikimedia/parsoid/extension.json: filemtime(): stat failed for ...
아래와 같이 수정하면, 발생하지 않을 것입니다:
wfLoadExtension( 'Parsoid', __DIR__ . "/$parsoidInstallDir/extension.json" );

See also

MediaWiki/Install_1.36.0