Jump to content

MediaWiki/Troubleshootings

From DawoumWiki, the free Mathematics self-learning

이 기사는 미디어위키 설치/설정에서 발생하는 문제들과 해결책을 기록해 두는 곳입니다.

Import.css

영문 위키피디아에서 특정 styles.css 파일을 복사해서 편집기로 저장되지 않을 수 있습니다. 이때에는 import를 이용하십시오.

googleAnalitics

구글에 접속한 뒤에 사이트 페이지를 로딩하는 것으로 보여서 상당한 부담을 가져옵니다. 접속 html 파일과 headscript 확장을 제거해 둡니다.

Shellbox service

이미지 정렬

이 문제는 2024년 4월 2일부터 해결되었습니다!

일부 템플릿, 예를 들어, Template:Multiple image에서 오른쪽 정렬이 되지 않는 문제가 꽤 오랫동안 존재했습니다. 결국, 미디어위키 소식지에서 제공하는 php 8.3 지원에서 그 해결책을 찾을 수 있었습니다. 미디어위키 설정 파일에 다음을 추가하십시오:

  • $wgUseLegacyMediaStyles=true;

Extension:WikiEditor에 cite 링크 더하기

영문 위키피디아의 위키 소스 편집기는 참조를 보다 편하게 삽입할 수 있는 cite 링크가 존재합니다. 이것은 Extension:Gadgets 확장에 의해 구현되는 것입니다. 이에 필요한 자바 스크립트는 w:Wikipedia:RefToolbar/2.0에서 볼 수 있습니다.

필요한 자바 스크립트를 자신의 위키에 가져온 후에, Preferences->Gadgets에 있는 Editings 섹션의 refToolbar를 활성화해야 편집기에 표시됩니다.

MWException: Error: invalid magic word

확장이 동작 중에 필요한 마법 단어를 새롭게 갱신해야 작동할 수 있습니다:

  • cd /var/www/html/w/maintenance
  • /var/www/html/w/maintenance/run ./rebuildLocalisationCache.php --force --wiki=dawoum

자바 스크립트 실행 오류

미디어위키에서 자바 스크립트가 실행되지 않으면, 편집기, 검색 등이 되지 않을 수 있습니다.

  • 먼저, git 확장을 사용하고 있다면, 모든 확장을 업데이트해야 합니다.
  • $wgResourceLoaderDebug = true;를 주석처리해야 합니다.

출력 메시지 변경

어떤 경우에서 확장 등을 설치 후에, 화면에 표시되는 메시지가 언어를 따르지 않고, <message>와 같이 표시될 수 있습니다. 이 경우에서, 해당 확장의 i18n 디렉토리에 메시지 출력과 관련된 정보를 얻을 수 있는데, 영문은 en.json, 한글은 ko.json에서 얻을 수 있습니다: 예를 들어, <masseditregex-desc>를 출력하기 위해 MediaWiki:Masseditregex-desc 파일에 그 내용을 적을 수 있습니다.

Failed to open stream: Permission denied

위키에서 대량의 잘못된 철자를 페이지마다 찾지 않고, 검색 후 하나씩 바꾸어주는 Replace Text 확장이 위의 오류가 발생합니다. 다른 방법으로는 오류를 피할 수 없고, 해당 파일의 소유자를 현재 작업 중이 아이디로 바꿈으로써 해결이 됩니다.

그러나, 이 해결책은 위키 소스 편집기에서 시각 편집기로의 전환, 편지기에서 저장 등에서 런타임 오류가 발생합니다. 코어에서 이 부분이 수정되거나, 확장에서 이 부분이 수정되어야 할 것으로 보입니다. 반면에 소스 편집기는 영향을 받지 않는 것으로 보입니다.

해당 확장을 사용하기 위해 다음과 같은 과정을 수행할 수 있습니다:

  • sudo chown $USER:www-data /tmp/...
  • 이제 문자 수정을 시행합니다.
  • sudo chown www-data:www-data /tmp/...

Zebra Design TOC 표시 안됨

2023년 9월 중순에 TOC를 감추거나, 표시하는 옵션이 생기면서, zebra 쪽 코드를 수정하지 않은 것으로 보입니다. 여기 정보를 확인해서 필요한 파일을 수정할 수 있습니다.

composer update error

이전과 마찬가지 방법으로 업데이트를 시도하면, 다음 오류 메시지가 출력됩니다:

found wikimedia/utfnormal[v2.0.0, 3.0.1, 3.0.2] but it conflicts with your root composer.json require (4.0.0).

이럴 해결하기 위해 해당하는 모든 버전을 다운로드할 필요가 있습니다:

  • sudo composer require wikimedia/utfnormal -W

그런 다음 평소와 같이 다음과 같이 업데이트를 진행합니다:

  • sudo composer update --no-dev

RESTBase CPU 사용량 증가

부팅 후, RESTBase를 실행하는 node 프로세스가 각각 17%의 CPU 사용량을 나타냅니다. 이 문제는 위키미디어에서 진행 중인 카산드라 설정을 참조하면서 발생했습니다.

RESTBase 연결 오류 (png)

2023년 7월 6일 "Remove mathoid PNG image support'' 패치가 적용된 후에, RESTBase에 완전히 접근하지 못하는 문제가 발생했습니다. 테스트를 진행해 보니, sys/mathoid.js 파일의 #298줄 valueType을 변경하는 것에서 문제가 발생해서, 해당 값을 원래 값으로 돌리거나, 여기를 참조해서 해당 블록을 제거하는 것이 바람직합니다. 이 문제는 다른 시스템에서 동일하게 발생하는지 확인할 수 없습니다.

RESTBase 연결 오류

수식 표현에서, RESTBase에 연결할 수 없어서 수식을 표현하지 못하는 문제가 발생했습니다. 이것은 1.41.0-wmf.11 이후에 추가된 코드에서 설정과 관련된 부분이 변경된 것으로 보입니다. 이를 아래 과정을 통해 확인할 수 있었습니다:

  • ./maintenanace/run ./maintenance/update.php --wiki=dawoum
The MathInternalRestbaseURL is falling back to VirtualRestConfig. Please set MathInternalRestbaseURL explicitly.

설정에서 다음을 추가해서 동작합니다.

한 가지 장점은 공개 위키인 dawoum 외에, 비공개 위키에서도 위의 설정으로 시각 편집기가 작동한다는 것입니다.

history 또는 revision 데이터 오류가 발생할 때

아주 간혹 history 정보가 완전히 사라지거나, revision을 찾을 수 없게 되는 경우가 있습니다. 이때, 대체로 데이터베이스에서 정보를 제대로 읽어오지 못할 경우이므로, maintenance/update.php를 실행해서 테이블을 변경해서 오류를 수정할 수 있습니다.

VisualEditor 오류

미디어위키 git 버전과 해당 확장을 사용하다 보면, 간혹 시각 편집기가 동작하지 않을 수 있습니다. 아마도 submodule을 제대로 가져오지 못하는 경우로 추측됩니다. 어쨌든, 해당 확장을 지우고 전체를 다시 받아서 해결할 수 있습니다.

벡터 스킨 검색 실패

벡터 테마에서, 제일 위의 검색 창에서 검색이 되지 않는 문제가 발생했습니다. 이 문제의 해결책은 위키베이스에서 소개되어 있습니다.

깨진 이미지 링크 처리

다음 카테고리에서 목록을 얻습니다:

Delete all Unused images

먼저, 몇 개가 있는지 확인을 합니다:

그런-다음 최대 500개씩 offset을 올리면서 목록을 덧붙여서 얻어냅니다:

이제 지웁니다:

  • sudo cp list.txt /var/www/html/w
  • cd /var/www/html/w
  • sudo php maintenance/deleteBatch.php --wiki=dawoum list.txt

sudo 명령을 주지 않으면, 지워졌다는 정보만 쌓이고 실제로 지워지는 행위가 일어나지 않습니다. deleteArchivedFiles.php 명령을 수행할 때에도 sudo 명령을 붙여서 실행해 보십시오.

Search results

미디어위키 아파 버전 1.40.0-wmf.3 또는 4에서 위키피디아 검색 결과는 이미지 링크를 포함하고, 외부 검색 결과를 함께 표시하도록 바뀌었습니다. 이 부분은 설정을 수정함으로써 가능한지, 아니면 다른 방법이 있는지 확인이 되지 않고 있습니다. 이 정보를 확인하십시오.

이 설정은 RELEASE-NOTES-1.40 파일에 나와 있습니다.

Wikibase 관련

1.40.0-wmf.4로 업그레이드 후에, 특정 위키에서 Type error가 발생하면서, 위키로 접근할 수 없는 문제가 발생했습니다. 로그를 확인해 보니, 위키베이스에서 문제가 발생하고, 결국 라이선스 URL을 지정하지 않음으로써 발생하는 문제였습니다.

3D 대상

3D를 제작된 것을 이미지로 보여주기 위해 3d2png 프로그램이 필요합니다. 어쨌든, 오래 전에 개발되고 최근 변경 사항이 없어서 그런지 컴파일이 되지 않습니다. 다른 대안이 없을까요?

검색

검색을 위해, Extension:CirrusSearch를 사용하며, w-1.39.0-wmf.28에서 ElasticSearch-7.10.2로 업데이트되었습니다. 다른 이름 공간은 제안 검색이 확인되며, 예를 들어, Help:를 입력하면 추천 검색어가 확인됩니다. 그러나, Vector 스킨을 사용할 때, 주요 이름공간은 검색이 되지 않는 것으로 보였지만, :를 처음에 붙이고 시작하면 검색이 가능합니다. 반면에 미디어위키 사이트는 정상적으로 동작합니다.

키 입력

Vector 스킨을 사용할 때, 검색 줄에서 Home 또는 End 키가 동작하지 않습니다. 원인이 무엇인지 확인되지 않았습니다.

시스템 메시지

최근 Vector 스킨에서 목차를 왼쪽 사이드바로 옮기면서 Beginning 라는 메시지가 출력되고, 페이지의 맨 위로 옮겨주는 링크를 만듭니다. 이런 메시지를 수정하기 위해, Special:AllMessages에서 찾을 수 있으며, Vector 정도로 검색을 하면, MediaWiki:Vector-toc-beginning에서 해당 메시지를 지정함으로 볼 수 있습니다.

Change content model

어떤 템플릿에 대해 템플릿:styles.css 파일은 자동으로 css로 인식됩니다. 그러나, 일반 문서:styles.css 파일은 wikitext로 저장됩니다. 이것을 바꾸기 위해, Special:ChangeContentModel에서 해당 페이지를 찾아서 바꿀 수 있습니다.

Upload max size

세 곳의 설정을 변경해야 합니다:

  • /etc/nginx/nginx.conf 에서 client_max_body_size
  • /etc/php/8.1/fpm/php.ini에서 upload_max_filesize, max_file_uploads, post_max_size
  • LocalSettings.php에서 $wgUploadSizeWarning, $wgMaxUploadSize

만약, 시간 초과에 걸리면 관련된 변수의 값을 늘려야 합니다.

Png display problem 2

아래의 #Png display problem와 마찬가지로 화면에 표시가 되지 않고, 어떤 출력도 보이지 않았고, 어쨌든, 김프로 열어서 덮어쓰기한 후에 새롭게 업로드한 후에 화면에 표시됩니다.

Portal 내용 가져오기

예를 들어, Portal:Linux를 보면, 기존 기사 Linux에서 내용을 가져오는데, 이때, Template:Transclude lead excerpt를 사용합니다. 이 템플릿은 해당 기사에서 이미지를 가져올 것인지를 결정하지만, 커먼즈의 이미지로만 연결되기 때문에, 로컬에 있는 이미지를 참조할 때에는 이미지를 가져오지 않습니다. 이 문제는 쉽게 해결이 되지 않기 때문에, 그냥 해당 이미지를 해당 portal에 직접 삽입하는 것이 더 편안 방법입니다.

Portal 이미지 수정

어떤 포털을 표시하려면, 이미지를 커먼즈에서 가져옵니다. 간혹은 이것으로 인해 해당 페이지의 로딩 시간이 문제가 되기도 하기 때문에, 이것을 로컬에서 제공하기 위해서는 해당 파일을 가져오도록 수정해야 합니다. 예를 들어, Portal:Linux에 대한 이미지 정보는 Module:Portal/images/l에 있습니다. 여기서, 로컬에 있는 이미지를 가져오도록 파일의 이름을 수정할 수 있습니다.

Template:Portal 두 번째

Portal과 관련된 이미지가 표시되기 위해서는 Portal 이름공간을 정의해야 하고, 특정 Portal과 관련된 기사가 있어야 표시가 됩니다. 예를 들어, Portal:Mathematics 페이지가 있어야 icon mathematics portal가 표시됩니다.

Extension:Gadgets 메시지 변경

MediaWiki:Gadgets-pagetext, MediaWiki:Gadgets-prefstext을 참조하십시오.

Version 정보

Elasticsearch는 최근 8.0 버전이 출시되었지만, 미디어위키는 아직 7.x 버전을 지원하지 않습니다. 아마도 자바 11 버전 이상이 필요할 것으로 보이고, RESTBase의 백엔드로 사용되는 Apache Cassandra는 최근 4.0 버전이 출시되었지만, RESTBase에서 아직 지원하지 않는 것으로 보입니다. 이것도 자바 11 이상이 필요할 것으로 보이고, 개발자들은 아마도 자바 11이상 중에서 가능한 최신 버전을 지원할 계획을 가진 것으로 보입니다.

Template:Pp

몇 가지 이유로, 페이지에 보호를 할 수 있습니다. 보통 Pp 템플릿을 사용하지만, 아이콘 표시가 되지 않을 수 있는데, 이때에는 기사 내부에서 Pp 템플릿을 사용하고, 왼쪽 상단의 More를 눌러서, Protect를 설정하십시오. 예를 들어, 이 기사에서와 같이 아이콘이 표시됩니다.

Template:Portal

이 템플릿은 Module:Portal에 의해 구현되어 있는데, 2018년 12월 버전 이후에서는 동작은 하지만, 화면에 렌더링이 되지 않고, 최근에는 해당하는 이름공간, 즉, Partal 이름 공간이 없으면 오류가 발생합니다. 물론, 이름공간을 만들어도 렌더링 후에 화면에 표시되지 않을 수 있습니다.

Installing english Wikipedia Gadgets

요즘은 눈의 피로를 줄이기 위해 다크 모드가 유행이고, 미디어위키도 다크 모드에 대해 진행된 노력들을 볼 수 있습니다. 가장 쓸만한 것은 가젯으로 제공되는 것으로써, w:MediaWiki:Gadgets-definition에서 원하는 가젯을 확인하고, 해당하는 js 및/또는 css 파일은 w:Special:Gadgets에서 확인할 수 있습니다.

siteSub

사이트 부제의 문구는 MediaWiki:Tagline에서 바꿀 수 있습니다.

curl version related

예를 들어, Extension:Replace Text를 명령-줄에서 사용하면, 다음 오류가 생깁니다:

curl_multi_setopt(): CURLPIPE_HTTP1 is no longer supported

이에 대한 논의가 진행중이며, 2개 정도의 패치가 제공되고 있으며, 보다 간단해 보이는 이 패치를 적용해 볼 수 있습니다.

PHP 8.1

$GLOBALS를 사용할 수 없어서, includes/Settings/Config/GlobalConfigBuilder.php에서 해당 줄을 주석처리하고, php-luasnadbox를 4.0.2로 설치하면, 동작합니다.

White screen & error comfirm

가상 기계에 있는 미디어위키 1.37 버전은 php-8.1에서 동작을 합니다. 그러나, 미디어위키 git 버전은 php-8.1에서 흰 화면만 출력됩니다. 미디어위키 오류 로그가 출력되도록 처리를 해도, 계속 흰 화면만 출력되고, 미디어위키 동작 로그에서는 오류를 찾기가 힘듭니다. 이때, 웹서버의 오류 로그가 유용할 수 있습니다:

  • gvim /var/log/nginx/error.log

Wikidata.org

템플릿 중에서 #statements를 사용하여 wikidata에서 정보를 가져오는 것들이 있습니다. 예를 들어, w:Snap (package manager)에서, Template:Infobox software의 정보를 보십시오. 물론, 로컬 위키에 statements 함수 후크가 있을지라도, 위키미디어 재단 위키를 제외하고 정보를 가져올 수 없습니다. 이 부분은 기술적인 문제라고 하는데, 언제 해결될 지 알려진 정보가 없습니다. 위키데이터의 이 정보를 참조하십시오.

Specialpages TOC

Specialpages에 안내 페이지를 MediaWiki:Specialpages-summary에서 수정할 수 있습니다.

Watchlist Expiry

Watchlist 또는 Recent changes에서, List of abbreviations 아래에 Temporarily watched page의 메시지가 나오려면, 다음 설정을 추가해야 합니다.

  • $wgWatchlistExpiry = true;

Watchlist messages

Watchlist 또는 Recent changes에서, 오른쪽에 List of abbreviations의 목록이 나옵니다. 이 메시지가 간혹 길이가 길어서 나오는 정보의 가독성을 떨어뜨릴 수 있어서, 메시지의 내용을 축소해서 화면의 길이를 줄이고자 합니다. 검색을 할 때, MediaWiki 이름공간으로 제한하고, 여러 이름으로 검색을 시도했으며, 다음 파일에서 내용이 기록됨을 확인했습니다.

Lua error

간혹 영문 위키피디아에서 가져온 템플릿이 제대로 동작하지 않을 수 있습니다. 그 중에서 Lua 관련 오류가 종종 발생하며, 해당 페이지를 찾아서 새롭게 템플릿이나 모듈을 가져올 필요가 있습니다. 이 정보는 Category:Pages with script errors에서 볼 수 있습니다.

Djvu display

아래 패지지를 설치해야 합니다:

  • sudo apt install djvulibre-bin netpbm

추가적으로 설정이 필요합니다:

$wgFileExtensions[] = 'djvu';
$wgDjvuDump = "djvudump";
$wgDjvuRenderer = "ddjvu";
$wgDjvuTxt = "djvutxt";

그러나, 제대로 표현이 되지 않습니다. 이 문제는 해결되지 않았습니다!!

파이어폭스 글자 사라짐

언제부터인지, 개발자 버전, wmf/1.37.0-wmf.x 버전에서 Extension:CodeMirror를 사용할 때, 특정 상황, 예를 들어 최근에는, {{fully translated article}}를 입력하고, 미리보기 또는 저장을 하면, {{로 출력됩니다. 이 문제는 이 패치로 인한 것으로 보이며, 이것을 되돌리면 그런 문제는 발생하지 않습니다. 최근, 개발자 버전에서 일부 코드가 변경되었지만, 이 내용을 적당한 부분에 원래대로 되돌리시기 바랍니다.

메시지 얻기

아래 구문을 사용하면, 제대로 렌더링이 되지 않을 수 있습니다:

{{int|nostalgia-newmessageslink}}

위의 구문이 제대로 렌더링되려면, MediaWiki:Nostalgia-newmessageslink라는 파일이 존재해야 합니다.

Category Arrangement

예를 들어, Help 이름 공간에서 페이지 이름 Contents를 [[Category:Help]]로 만들면, C로 시작하는 위치에 정렬이 됩니다. 이 페이지가 중요하기 때문에 제일 위에 보이게 하려면, [[Category:Help| ]]와 같이 빈 공백 문자로 만들어서 해결할 수 있습니다.

Extension Parameters

Extension:RelatedArticles는 원하는 스킨에 적용하는 매개변수가 있었습니다. 어느 순간부터 벡터 스킨에서도 해당 확장이 동작하는 문제가 생겼습니다. 이것을 확인하기 위해, 미디어위키의 mw:Extension:RelatedArticles 지면에서 Parameters를 눌러보면, 바뀐 매개변수를 볼 수 있습니다.

Upload (File description)

최근 Parsoid 서비스를 PHP 버전으로 바꾸고 나서, 업로드에 나타나던 file description의 thumbnail이 표시되지 않습니다. 원인을 찾지 못하고 있습니다!!

WvuiSearch

벡터 스킨에서 검색과 관련하여 새로운 인터페이스가 개발되고 있습니다. 이것이 제대로 작동하려면, 새로운 PHP 버전의 Parsoid가 동작해야 합니다.

Multimedia Viewer 오동작

확장이 잘 설치되었음에도 불구하고, 이미지 파일을 불러오지 못하는데, 메시지를 보면, pagespeed와 관련이 있어 보입니다. pasespeed의 core.conf에서 redis 관련 설정을 제거해서 해결이 되었습니다.

Upload 링크 사라짐

사이드 바Tools 메뉴 아래엣 Upload file 링크가 사라졌습니다. 이것은 위키피디아의 메뉴 변경으로 인해 일시적으로 제거되어 있습니다. MediaWiki:Common.css 파일의 맨 아래쪽을 확인하십시오.

페이지 특정 이름 잘라내기

미디어위키 이름공간과 기사 이름은 콜론으로 분리됩니다. 역시, 이름공간이 아니더라도 기사 제목에 콜론을 입력할 수 있습니다. 만약 이름공간이 지정되지 않으면, 콜론이 포함된 이름이 기사 제목이 되기 때문에, Manual:으로 시작하는 부분을 제거할 일이 생겼습니다. Template:SettingSummary를 통해 그 내용을 확인하십시오.

custom namespace

현재 문서 앞에 Manual:와 같은 것을 붙여서 문서를 만들 수 있는데, 이것은 자체 문서의 이름을 전체로 볼 수도 있지만, Manual:이라는 이름공간 아래에 생성되는 문서로 생각될 수 있는데, 설정에 의존적입니다.

현재 Manual:이라는 것이 별도의 이름공간으로 주어지지 않았다면, 아래의 과정으로 추가할 수 있습니다. 원래

미디어위키 홈페이지의 이름공간 지정을 확인하십시오. 그리고 자신의 이름 공간을 확인하십시오.

먼저, Manual:Job queue에서 대기하고 있는 임무가 있으면, 강제로 작업을 진행해서 대기하는 작업이 없도록 하십시오.

그런-다음 Manual:Using_custom_namespaces에 따라,

이 작업 후에, 이름공간을 제외하고 소문자로 시작했던 만들어진 문서가 존재하고, 대문자로 시작하는 문서는 새로운 문서로 인식되어 카테고리에 같은 문서를 지칭하는 2개의 문서가 있는 것처럼 표시가 되었습니다. 이것을 제거하고 대문자로 시작하는 하나의 문서를 만드는 것이 쉽지 않아서, 이전 데이터베이스의 백업본으로 원 상태로 이동했지만, 문서를 편집하고 저장하면, 내용이 전혀 다른 문서의 내용으로 입력되는 현상이 생겼습니다. 어떤 과정에서 문제가 발생하는지 모르고, 어쨌든, redis-cli로 모든 내용을 비우고, Extension:CirrusSearch에서 작업을 다시 수행한 후에 이상없이 동작중입니다. 이 작업은 신중하게 진행할 필요가 있습니다!!

Subpages display

예를 들어 RESTBase/InstallRESTBase의 설치를 설명하는 하위 페이지이므로, 하위 페이지에서 상위 페이지의 링크를 상단에 표시해 주기를 원합니다. 이것은 $wgNamespacesWithSubpages에서 설정할 수 있습니다.

SpecialPages update

특정 정보르 확인하려면, 간혹은 아래와 같은 메시지가 출력됩니다.

  • The following data is cached and may not be up to date.

다음 명령어로 업데이트를 해줍니다.

  • php maintenance/updateSpecialPages.php --conf=LocalSettings_dawoum.php

Wordmark 제작

사이트 이름은 데스크탑과 모바일에 걸쳐 다르게 표현이 됩니다. 이것은 svg 파일로 제공이 되지만, 폰트를 지정해서 텍스트로 만들면, 모바일에서 폰트가 없기 때문에 예상했던 모양과 다르게 표현이 될 수 있습니다.

우선, 영문 위키피디아의 워드마크를 가져옵니다. 여기서 사용된 폰트는 Linux Libertine의 변형된 모양을 가진 것으로 보이고, 작은 대문자(Small Caps) 형태를 띄고 있습니다. 우분투에서는 fonts-linuxlibertine으로 제공되지만, 작은 대문자는 포함되어 있지 않습니다. 여기에서 받을 수 있습니다. 받은 폰트를 /usr/share/fonts/truetype/ 아래의 적당한 디렉토리에 적장하고, 아래와 같이 폰트 갱신을 합니다.

  • sudo fc-cache -f -v

그런 다음, inkscape로 위에서 받은 영문 워드-마크를 열어서, 자신의 사이트의 이름을 텍스트로 입력합니다. 그리고 나서, 영문 위키피디아의 텍스트를 제거해 버리고, 사이트 이름을 그 위치에 이동해서 크기 조절을 합니다.

그런-다음 사이크 텍스트를 선택해서, Path > Object to Path를 선택합니다. 이제 파일을 적당한 이름으로 저장하고 해당 파일을 워드마크로 사용할 수 있습니다.

업데이트 후 TypeError

최근 wmf/1.33.0-wmf.26에서부터 업데이트 후에 TypeError가 발생합니다. 이런 경우에는 웹서버와 관련된 서비스를 재시작하면, 해결이 됩니다. 웹서버를 재시작해도 해결되지 않으면, 캐시 서버 등을 같이 재시작해야 합니다.

인터페이스 글자 바꾸기

미디어위키의 기본 텍스트를 다른 값으로 바꾸고 싶습니다. 예를 들어, MediaWiki:Collapsible-expand를 다른 것으로 바꿀 수 있습니다. 문제는 특정 단어가 어떤 것에서 바꿀 수 있는지 찾는 일반적인 방법이 필요합니다.

wmf/1.36.0-wmf.18

설치시에 2곳에 문제가 발생할 수 있습니다.

먼저, DiscussionTools 확장을 사용하고 있다면, 설정에 다음 내용을 추가해 줍니다.

$wgFragmentMode = [ 'html5', 'legacy' ];

다음으로, update.php 실행시에 데이터베이스 테이블 변경 오류가 발생할 수 있습니다. maintenance/archives/patch-ipblocks_restrictions-ir_type.sql 에서 데이터베이스 prefix가 적용이 되어있지 않으므로, 테이블 이름을 수정해 줍니다.


수식 표현 문제

수식 표현은 RESTBase, Mathoid와 관련되지만, 벡엔드로 Apache Cassandra를 사용하고, Apache Cassandra는 자바를 사용합니다. 주로 Apache Cassandra가 제대로 기동되지 않아서 발생하는 문제인데, 자바 버전은 아직 8 버전을 사용하도록 사용해야 합니다. 게다가 간혹 Apache Cassandra 자체의 문제로 기동이 되지 않기도 합니다.

SVG upload

우분투 20.04에서 영문 위키피디아 SVG 업로드 경우에서, font-family가 지정된 파일은 글자가 깨지는 문제가 생겼습니다. 글자 부분을 serif로 바꾸면 정상적으로 보이기는 하지만, 원래 글씨와 다르게 표현됩니다.

이 문제는 폰트 이름에 공백이 있는 경우에 발생합니다. 폰트 이름을 공백 대신에 아래줄로 바꾸면 정상적으로 출력됩니다.

MediaWiki:Sidebar

미디어위키-1.35.0-wmf.32부터 사이드바에서 목록을 처리할 때, 미리 예약된 제목이 아니면, 문자열 앞과 뒤에 네모가 생깁니다. 예를 들어, 사이드바에 있는 Documentation는 예약된 문자열이 아니기 때문에, 앞과 뒤에 보기 싫은 네모가 붙습니다. 이 경우에 MediaWiki:Documentation에 해당 문자가 표시될 문자열, 즉 Documentation을 적어줘야 합니다.

Tiff file not displayed

확장자 tif 파일이 동작하지 않습니다. 영문 위키피디아와 마찬가지로 tiffinfo로 바꾸고, vipsscaler에서 옵션을 조정했음에도 불구하고 문제가 해결되지 않았습니다.

Bot 접속

Warning 미디어위키는 업스트림 버그에 기인하여 PHP 7.4.0에서 7.4.4까지 호환되지 않습니다. 자세한 정보에 대해 phab:T246594를 참조하십시오.

아마도 위의 이유로 봇 접근이 되지 않습니다. 원래 문서는 7.4.2까지로 나와 있지만, 문서의 작성 당시의 PHP의 안정판 최신 릴리스로 보이고, 현재의 버전 7.4.4에서도 봇 로그인이 되지 않습니다. 그 외에서, 특별한 이상은 없어 보이므로, 대안적으로 Extension:Replace Text를 이용, 또는 7.3 버전을 이용하실 수 있습니다.

CollapsibleSidebar

한글 위키피디아를 방문하면, 왼쪽에 있는 영역을 숨기고 펼치는 것을 볼 수 있습니다. 이것은 Extension:Gadgets의 구현입니다.

먼저, 정의 부분에서 해당 가젯을 찾습니다. 아래에 CollapsibleSidebar를 볼 수 있을 것입니다.

그런-다음, 자바 스크립트 또는 CSS 파일을 추가해야 합니다. 보통 다음 파일에서 찾을 수 있습니다.

이 가젯은 오직 자바-스크립트로 구현되었기 때문에, 아래 파일은 없습니다. 한글 위키피디아의 자바-스크립트를 자신의 위키에 가져와서 저장한 후에, Preferences로 가셔서 가젯을 활성화 하십시오.

SVG file

이 svg 파일은 그림으로 보여주지 않고, xml 파일로 보여줍니다.

업로드 때, 다음 오류가 생깁니다.

Cannot upload SVG files that contain a non-standard DTD declaration.

이 경우에서, inkscape로 열어서 같은 이름으로 Save as로 덮어쓰십시오.

다른 주의사항: 간혹 svg 파일이 위키피디아와 다르게 보기 싫게 표현되는 경우가 있습니다. 이것은 Manual:$wgThumbLimits과 관련이 있고, 위키피이다와 마찬가지로 220px를 선택하면, 같은 모양을 보일 것입니다.

Gif not animating

이 문제는 미디어위키 버전의 버그로 추정됩니다. 아래의 설명과 반대로, 어떤 크기에서 움직이지 않으면, 크기를 변경했을 때, 움직이는 gif 파일이 있습니다.

이 문제는 아직 완전히 해결된 것은 아닙니다.

애니메이션이 가능하도록 제작된 gif 파일이 움직이지 않을 때, 원래의 픽셀 사이즈를 바꾸면 안됩니다. 예를 들어, 300px를 250px로 바꾸면, 움직이지 않습니다. 원래 제작된 크기대로 삽입해야 합니다.

갑자기 움직이는 gif 들이 깨진 링크로 바뀌는 경우가 생겼습니다. 이때에는 다음 3개의 값을 늘려 보십시오.

모바일 텍스트 로고

모바일에서 접근하면, 왼쪽 제일 위에 사이트 이름이 글자로 보입니다. 이 글씨의 폰트를 바꾸는 방법은 브라우저 창에서 Ctrl+⇧ Shift+c를 눌러서 창이 나오면 해당 글씨를 클릭하면, 소스 파일에서 위치로 이동합니다.

이때, 어떤 클래스에 속하는지 확인을 해서 수정할 수 있습니다. 결과는 MediaWiki:Mobile.css에서 볼 수 있습니다.

한편, 스마트폰 등에서 폰트가 없으면, 다른 것으로 대체되어 표시되기 때문에, 영문 위키피디아에서는 워드마크로 된 파일을 읽어 들여서 표시합니다. 이 부분을 수정하는 방법을 알려주세요!!

RESTBase 접근 오류

갑작스럽게 RESTBase에 접근할 수 없다는 메시지가 나옵니다. 여려가지 이유가 있겠지만, 결국, cassandra에 접근이 되지 않았습니다.

확인해 보니, openjdk-11로 버전 업데이트가 되면서, 이전 버전을 삭제해 버린 것으로 보입니다. 결국 동작는 openjdk-8을 설치하고 자바 버전을 해당 버전을 사용하도록 다음과 같이 수정했습니다.

  • java -version
  • sudo update-alternatives --config java

편집이 되지 않는 기사들

전에 어떤 기사인지 기억이 나지 않지만, 편집(edit)이 열리지 않는 기사가 있었습니다. 최근에 Probability_interpretations이 열리지 않는 문제가 생겼습니다.

문제의 원인은 Probability_interpretations#External links으로 여겨집니다. 이것만 들어가면, 전체 기사가 편집 모드로 열리지 않습니다. 대신에 해당 부분을 제거하면, 전체 기사 편집이 가능해집니다.

이 문제는 Template:InPho, Template:PhilPapers, 그리고 Template:As of 때문에 발생하는 것으로 보입니다. 그리고 Special:WhatLinksHere에서 해당 템플릿을 넣어서 사용하는 기사를 찾아서 일일이 제거했습니다. 해당 파일들이 지워지지 않을 경우에는 delete Batch.php를 이용하십시요.

이 문제는 해결이 되었지만, 무슨 원인으로 발생했는지 알지 못합니다.

white screen

미디어위키 설정 LocalSettings.php에 추가합니다.

error_reporting( -1 );
ini_set( 'display_errors', 1 );
$wgResourceLoaderDebug = true;
$wgShowDBErrorBacktrace = true;
$wgDebugLogFile= "/tmp/MediaWikiDebug.log";

오류 자세히 보기

미디어위키 설정에 추가합니다.

$wgShowExceptionDetails = true;

확장 로딩

Uncaught Exception: /var/www/html/w/extensions/SimpleMathJax/extension.json does not exist! 이런 오류가 생기는 경우는 미디어위키 설정을 변경합니다.

#wfLoadExtension( 'SimpleMathJax' );
require_once "$IP/extensions/SimpleMathJax/SimpleMathJax.php";

접근 오류

미디어위키에 접근하려니 "There seems to be a problem with your login session; this action has been canceled as a precaution against session hijacking. Go back to the previous page, reload that page and then try again"라는 메시지가 나오면서 로그인이 되지 않습니다. 컴퓨터를 재시작하면 접근이 잘됩니다. 그러나 매번 이럴 수는 없기 때문에 해결책을 찾아 보았습니다.

이것은 관련된 해결하는 방법이 여러가지가 알려져 있지만, 미디어위키의 다음 설정을 바꾸어주니 해결이 됩니다.

$wgSessionCacheType = CACHE_DB;

Png display problem

영문 위키피디아에서 png 이미지를 크롬에서 "Save image as"로 저장하고 업로드하면, 파일은 업로드가 정상적으로 이루어진 것처럼 보이지만, 다음과 같은 오류가 생기면서 썸네일이 표시가 되지 않습니다.

Error creating thumbnail: convert: IDAT: invalid distance too far back `/var/www/html/w/images/a/a5/En_SphereParallel.png' @ error/png.c/MagickPNGErrorHandler/1628. convert: no images defined `/tmp/transform_dd0ad9ee74ce.png' @ error/convert.c/ConvertImageCommand/3258. Error code: 1

이 경우에 김프로 해당 파일을 열어보면 검은색으로 화면에 표시가 되어서 정확히 파일이 다운로드된 것이 아닌 것으로 판단됩니다.

이때에는 크롬에서 "Copy image"를 이용해서 김프에서 파일을 만든 다음에, png로 export하면 정상적인 파일이 생성됩니다.

PDF wordmark

영문 위키피디아와 같이 pdf 출력시에 첫 화면의 위쪽에 사이트 이름을 출력하려 합니다. 필요한 것은 워드마크에 사용할 이미지가 필요합니다. 영문 위키피디아 이미지를 가져와서 사이트 이름으로 바꾸고, 업로드 디렉토리에 복사합니다. LocalSettings.php에 다음을 추가합니다.

$wgVectorPrintLogo = [
	'url' => 'http://dawoum.duckdns.org/w/images/dawoum-wordmark.svg',
	'width' => 174,
	'height' => 27
];

AccessControl 확장

검색을 할 경우에 파서 문제가 생깁니다. 아래와 같이 includes/page/WikiPage.php를 수정해 줍니다.

		if ( $ns == NS_MEDIA ) {
			throw new MWException( "NS_MEDIA is a virtual namespace; use NS_FILE." );
		} elseif ( $ns < -1 ) {  //여기를 수정
			throw new MWException( "Invalid or virtual namespace $ns given." );
		}

Gadget

새로운 가젯을 추가하기 위해서는 w:Special:PrefixIndex/MediaWiki:Gadget에서 2개 또는 3개의 파일을 자신의 미디어위키에 저장합니다. 예를 들어, 화면에 검은색 바탕에 초록색 글씨를 보여주는 가젯을 추가하려면, 2개의 파일, MediaWiki:Gadget-Blackskin, MediaWiki:Gadget-Blackskin.css을 만듭니다. 그런 다음 가젯 정의 파일, MediaWiki:Gadgets-definition에 적당한 위치에 추가합니다. 사용자 Preferences->Gadgets에서 새롭게 정의된 가젯을 활성화해서 사용할 수 있습니다.

Font Awesome

이전 Tyrian 스킨을 사용할 때, Main Page에 아이콘이 나오던 것이 Vector 스킨에서는 나오지 않습니다. 이를 해결하기 위해서는 MediaWiki:Common.css에 첫 줄에 다음을 추가합니다.

@import "https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css";
4.7.0 아이콘 목록

카테고리 숨기기

위키피디아는 여러가지 정보를 얻기 위해, 자동으로 카테고리가 생성이 되도록 만든 것이 많이 있습니다. 어쨌든, 한 문서에 자신이 분류하지 않은 카테고리가 너무 많이 생겨서 보기가 싫을 때에는 카테고리를 숨길 수 있습니다.

카테고리를 만들 때, 맨 위 줄에 다음을 추가해 줍니다. 카테고리가 생기고 해당되는 파일들이 분류가 되지만, 실제 해당 페이지에는 그 카테고리가 출력되지 않습니다.

__HIDDENCAT__

From DawoumWiki 숨기기

MediaWiki:Vector.css를 다음과 같이 수정합니다. 원래는 폰트 사이즈를 줄이는 것으로 설정되어 있습니다.

/* Make "From Wikipedia, the free encyclopedia" a bit smaller */
#siteSub {
	display: none !important;
}

Lua error

Module:Citation/CS1/Identifiers을 영문 위키피디아의 것을 사용하면, References 또는 Footnotes에 다음 오류가 생깁니다.

Lua error in Module:Citation/CS1/Identifiers at line 44: attempt to index a nil value.

해당 파일에서 다음 줄을 주석처리합니다.

	--[[if is_set (options.q) and mw.wikibase then									-- wikibase test here avoids script errors in third party wikis that aren't using mw.wikibase extension
		wd_article = mw.wikibase.getEntity (options.q):getSitelink (this_wiki_code .. 'wiki');	-- fetch article title from wd
		if wd_article then
			wd_article = table.concat ({':', this_wiki_code, ':', wd_article});	-- make interwiki link if taken from wd; leading colon required
		end
	end]]--