이 문서는...[원본 편집]
답답한 우리의 가온 위키 관리자가 구현하지 못해, 착한 유저가 해결책을 제시한 경우, 감사의 표시로 이곳과 가온 위키 커뮤니티에 표시하는 곳입니다.
구현 못한 부분[원본 편집]
- 아직까지 없습니다.
해결됨[원본 편집]
리버티 스킨 관련 문제[원본 편집]
리버티 스킨과 관련된 문제는 가온 위키:기능 구현 불가-누가 해결책을 알려주세요!/리버티 스킨 문서를 참고하자.
영상 가져오기(Embed) 관련 문제[원본 편집]
외부 서비스들 중에서 가져오지 못하는 것들은 가온 위키:기능 구현 불가-누가 해결책을 알려주세요!/영상 가져오기 문서를 참고하자!
이미지 관련 문제[원본 편집]
이미지 크기 설정시 파일 링크만 뜨는 현상[원본 편집]
[[파일:updates.png|100px]] 이렇게 하면 일반 문서처럼 링크로 뜬다. 서버 이전 전에는 이러지 않았는데...
미디어위키 헬프 데스크에서 찾았다.
수정 전[원본 편집]
미디어위키의 루트 폴더에 있는 LocalSettings.php를 수정한다.
수정 후[원본 편집]
LocalSettings.php의 하단 부분에 추가하자.
$wgGenerateThumbnailOnParse = true;
그리고 미디어위키 버전이 1.30 이상인 경우, 썸네일을 재생성하자. 미디어위키의 루트 폴더에서 maintenance 폴더로 이동한 뒤, 아래의 명령어를 입력하자.
root@gaon:/var/www/html/w/maintenance# php rebuildImages.php
하고 싶은말[원본 편집]
이 오류는 미디어위키 1.27 버전에서는 없던 오류이므로 1.30 이상 버전의 오류같다. 물론 썸네일은 Imagemagick가 미리 설치 및 미디어위키에서 미리 설정 되어 있어야 한다.
SVG 파일 업로드시 썸네일의 흑백화[원본 편집]
SVG 파일을 업로드하면 원래 가지고 있던 색상값은 표시되지 않고 흑백으로만 표시가 된다. 이는 SVG를 png로 변환하는 프로그램인 ImageMagick의 특정 버전에서 나타난 오류이다. zlzleking님이 보고해 주셨다.
수정 전[원본 편집]
먼저 Inkscape를 설치한다. 우분투 기준으로 아래의 명령어를 입력하면 된다.
root@gaon:/# apt update
root@gaon:/# apt install inkscape
이후 미디어위키의 루트 폴더에 있는 LocalSettings.php를 수정한다.
$wgSVGConverter = 'ImageMagick';
수정 후[원본 편집]
LocalSettings.php의 하단 부분에 추가하자. Inkscape의 경로는 자신의 환경에 맞춰 수정하자.
$wgSVGConverterPath = '/usr/bin/inkscape';
$wgSVGConverters = [
'Inkscape' => '/usr/bin/inkscape -w $width -z -w $width -f $input -e $output',
];
$wgSVGConverter = 'Inkscape';
#$wgSVGConverter = 'ImageMagick';
여기서
$wgSVGConverter = 'ImageMagick';
부분은 반드시 주석처리 한다.
그리고 미디어위키 버전이 1.30 이상인 경우, 썸네일을 재생성하자. 미디어위키의 루트 폴더에서 maintenance 폴더로 이동한 뒤, 아래의 명령어를 입력하자.
root@gaon:/var/www/html/w/maintenance# php rebuildImages.php
신택스 강조(Syntax Highlight) 사용시 사용된 문서가 구문 강조에 오류가 있는 문서로 분류되는 현상[원본 편집]
미디어위키 1.33.1 버전에 있는 SyntaxHighlight 확장기능을 사용하는 경우, "구문 강조에 오류가 있는 문서"로 자동 분류된다.
미디어위키 코어에 포함되어 있는 버전만 파이썬 전역 환경변수 처리를 요구한다.
구버전 사용[원본 편집]
1.32.x 버전의 구버전을 사용하는 방법이다. 웹호스팅과 같이 서버를 직접 조작하지 못하는 경우에 사용하면 된다.
SyntaxHighlight 다운로드 페이지로 이동 후, 미디어위키 버전을 1.32 버전으로 설정 후, 기존에 있던 확장기능 삭제 후 새로 받은 버전으로 업로드 한다.
확장기능 페이지서 1.33버전으로 다운로드[원본 편집]
이상하게 1.33 버전으로 다운로드 받아도 작동한다. 아마도 코어 파일에 포함되어 있는 버전만 파이썬 전역 환경변수 처리해야 하는 것 같다.
이후 미디어위키 1.34 코어에 포함된 버전은 해당 문제가 발생하지 않는다. 1.33.1에 포함된 버전만 문제인 것 같다.
파이썬3 설치[원본 편집]
1.35.1 기준, 서버에 파이썬3를 설치하면 해당 문제는 발생하지 않는다.
설치방법은 쉘에
root@gaon:/# apt update && apt -y install python3
이라고 입력한다. 설치가 되었는지 확인하려면,
root@gaon:/# python3 --version
Python 3.8.5
이라고 입력한다. 이때 버전은 위의 버전과 다를 수 있다.
TitleKey 확장기능 설치[원본 편집]
대소문자 구분 없이 문서를 검색 할 수 있는 TitleKey 설정 중, php extensions/TitleKey/maintenance/rebuildTitleKeys.php
명령어를 입력할 때, 경로를 찾지 못하는 문제가 있다.
이 문제는 환경변수 $IP
가 경로를 제대로 반환하지 않아 생기는 문제이다.
여기서는 환경변수 $IP
를 수정하지 않고, 9번째 줄을 절대경로로 바꾸어 사용했다. 사용 환경에 맞추어 수정하길 바란다.
수정 전[원본 편집]
$IP = getenv( 'MW_INSTALL_PATH' );
if ( $IP === false ) {
$IP = __DIR__ . '/../..';
}
require_once "$IP/maintenance/Maintenance.php";
// In case we want to do offline initialization...
if ( !class_exists( 'TitleKey' ) ) {
require __DIR__ . '/../includes/TitleKey.php';
}
수정 후[원본 편집]
$IP = getenv( 'MW_INSTALL_PATH' );
if ( $IP === false ) {
$IP = __DIR__ . '/../..';
}
require_once "/var/www/html/w/maintenance/Maintenance.php";
// In case we want to do offline initialization...
if ( !class_exists( 'TitleKey' ) ) {
require __DIR__ . '/../includes/TitleKey.php';
}
또는 상대경로로 지정해도 된다. 이 경우에는 미디어위키 설치 경로에 구애받지 않는다는 장점이 있다.
$IP = getenv( 'MW_INSTALL_PATH' );
if ( $IP === false ) {
$IP = __DIR__ . '/../..';
}
require_once "../../../maintenance/Maintenance.php";
// In case we want to do offline initialization...
if ( !class_exists( 'TitleKey' ) ) {
require __DIR__ . '/../includes/TitleKey.php';
}
비주얼 에디터 설치[원본 편집]
비주얼 에디터를 설치하고, 사용할 수 있다. 다만 짧은 주소 설정시 오류가 발생할 수 있으므로 본 코드를 사용하자.
짧은 주소 설정(선택, 권장)[원본 편집]
짧은 주소를 설정하자. .htaccess를 사용하므로 아파치 이용자만 할 수 있다.(짧은 주소 자체는 nginx도 할 수 있지만, 서술하지 않음).
먼저 LocalSettings.php가 있는 루트 폴더로 이동하여 .htaccess를 열자. 없으면 생성하자.
이후 아래와 같이 입력한다.
RewriteEngine On
RewriteBase /w/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /w/index.php [L]
RewriteCond %{HTTP_USER_AGENT} !^(VisualEditor)
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteRule ^(.*)$ %{DOCUMENT_ROOT}/index.php [L]
RewriteCond %{HTTP_USER_AGENT} !^(VisualEditor)
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteRule ^/?images/thumb/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ %{DOCUMENT_ROOT}/thumb.php?f=$1&width=$2 [L,QSA,B]
RewriteCond %{HTTP_USER_AGENT} !^(VisualEditor)
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteRule ^/?images/thumb/archive/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ %{DOCUMENT_ROOT}/thumb.php?f=$1&width=$2&archived=1 [L,QSA,B]
여기서 2번째 줄과 6번째 줄에 있는 /w/
부분에 원하는 줄임(https://example.com/w/문서명) 단어를 입력한다.
출처 : 씨실과 날실님 티스토리 블로그, 미디어위키 토론 중 Rogerhc님의 답변
이후 LocalSettings.php 하단에 다음과 같이 입력한다.
$wgScriptExtension = ".php";
$wgArticlePath = "{$wgScriptPath}/$1";
$wgUsePathInfo = true;
비주얼 에디터 설치[원본 편집]
1.37버전은 이미 extensions 폴더에 있다. 코어에 포함되어 있으나, 삭제한 사람은 미디어위키 비주얼 에디터 페이지에서 자신의 버전에 맞게 다운로드 받은 뒤 extensions 폴더 안에 넣는다.
이후 LocalSettings.php 하단에 다음과 같이 입력한다.
wfLoadExtension( 'VisualEditor' );
이러면 끝이다.
미디어위키 1.39 버전 업그레이드 이후 분류값 앞에 점이 표시되고 세로로 정렬되는 문제[원본 편집]
미디어위키 1.39 rc버전에서는 이런 문제가 없었지만, 1.39 정식버전에서는 분류값 앞에 점이 표시되고, 세로로 정렬되는 문제가 있다. 또한 분류값이 분류:밑에 줄에 표시되는 문제가 있다.
이는 미디어위키:Common.css 문서를 수정하면 된다.
수정 전[원본 편집]
/* 이 CSS 설정은 모든 스킨에 적용됩니다 */
.mw-highlight pre {
font-size: 90%;
}
수정 후[원본 편집]
/* 이 CSS 설정은 모든 스킨에 적용됩니다 */
.mw-highlight pre {
font-size: 90%;
}
/* 1.39 버전에서 분류 표시가 li로 표시돠는 문제 해결 */
#mw-normal-catlinks > ul {
list-style: none;
}
#mw-normal-catlinks > ul > li {
float: left;
margin-right: 15px;
}
/* 분류: 밑부분에 분류값이 표시되는 문제 해결 */
#mw-normal-catlinks {
display: flex;
align-items: center;
}
지도 확장기능 Kartographer 오류[원본 편집]
예전에는 Kartographer 확장기능에 별도의 타일 서버 URL 설정을 하지 않더라도 지도가 출력되었지만, 현재는 설정하지 않으면 `Uncaught Error: wgKartographerMapServer must be configured.`이라고 뜹니다.
수정 전[원본 편집]
`LocalSettings.php`에서 다음 항목을 수정합니다.
wfLoadExtension( 'Kartographer' );
수정 후[원본 편집]
wfLoadExtension( 'Kartographer' );
# 타일 서버 설정
$wgKartographerMapServer = 'https://tile.openstreetmap.org';
$wgKartographerStyles = ["osm"];
$wgKartographerDfltStyle = "";
# 아래의 세부 설정은 선택사항
$wgKartographerSrcsetScales = [];
$wgKartographerUseMarkerStyle = false;
$wgKartographerWikivoyageMode = false;
$wgKartographerStaticMapframe = false;
$wgKartographerStaticFullWidth = 1024;
$wgKartographerUsePageLanguage = true;
$wgKartographerFallbackZoom = 13;
$wgKartographerSimpleStyleMarkers = true;
구현한 기능[원본 편집]
인디케이터 표시[원본 편집]
simple-scroll-progress를 이용하여 스크롤한 범위를 표시하는 기능입니다.
혹시 사용하고 싶다면, Liberty 깃허브 저장소를 다운로드 받아 사용하면 된다. 라이브러리는 외부에서 불러오니 참고하자.
클라우드플레어 원본 IP 주소 표시[원본 편집]
클라우드플레어 사용 시, 비로그인 유저가 문서를 편집하는 경우, ip주소가 클라우드플레어의 ip로 기록됩니다. 이를 수정해주는 확장기능을 개발하여 배포합니다.
mw_CloudflareRealIP 확장기능을 설치하면, 원본 IP 주소가 표시됩니다.
설치[원본 편집]
- 먼저 GitHub 저장소에서 확장기능을 다운로드하세요.
- 다운로드 받은 확장기능을 미디어위키의 "extensions" 폴더에 업로드합니다.
- 미디어위키의 "LocalSettings.php" 파일을 찾아 아래 코드를 추가하세요
wfLoadExtension( 'CloudflareRealIP' );
사용법[원본 편집]
이 확장기능을 설치하고 나면 아무런 추가 설정 없이 자동으로 작동합니다. CloudflareRealIP 확장기능은 미디어위키에서 로그인하지 않고 편집할 때 Cloudflare의 IP 주소 대신 원래 사용자의 IP 주소를 저장합니다.
참고 사항[원본 편집]
이 확장기능은 미디어위키 1.25 이상과 호환됩니다. 또한 Cloudflare 서비스를 사용하는 경우에만 필요하며, Cloudflare를 사용하지 않거나 단순히 DNS만 사용하는 경우 설치할 필요가 없습니다.
원리[원본 편집]
Cloudflare Real IP 확장 기능의 작동 원리는 다음과 같습니다:
- 사용자가 미디어위키에서 로그인하지 않고 편집을 진행합니다.
- Cloudflare는 사용자의 원래 IP 주소를 "CF-Connecting-IP"라는 HTTP 헤더를 통해 전달합니다.
- 미디어위키에서는 로그인하지 않은 사용자의 IP 주소를 기록하려 할 때 UserGetIP 이벤트가 발생합니다.
- Cloudflare Real IP 확장 기능은 이 이벤트를 통해 사용자의 IP 주소를 가져옵니다.
- 확장 기능은 $_SERVER['HTTP_CF_CONNECTING_IP'] 변수를 확인하여 Cloudflare가 전달한 원래 사용자의 IP 주소가 있는지 확인합니다.
- 원래 사용자의 IP 주소가 있다면, 확장 기능은 이 IP 주소로 미디어위키에 저장되는 IP 주소를 변경합니다.
- 결과적으로, 미디어위키에서 로그인하지 않은 사용자의 편집 기록에 원래 사용자의 IP 주소가 저장됩니다.
이 확장 기능을 사용하면 Cloudflare를 사용하는 경우에도 미디어위키에서 로그인하지 않은 사용자의 원래 IP 주소를 정확하게 기록할 수 있습니다. 이로 인해 IP 주소를 기반으로 한 사용자 관리 및 안전 조치가 훨씬 간편해집니다.
라이선스[원본 편집]
MIT 라이선스로 배포됩니다.
단축 URL 생성[원본 편집]
긴 문서의 URL, 특히 문서명이 한글로 이루어져 있는 경우, URL이 길어져 공유할 때 불편합니다. 그래서 단축 URL을 생성하고, 복사할 수 있는 기능을 추가했습니다.
사용 방법[원본 편집]
문서 최하단에 CCL 표기 부분과 개인정보처리방침 가온 위키 소개 면책 조항 링크 부분 사이에 • 현재 페이지 URL 줄이기 메뉴를 누르면, 팝업창이 뜨면서 현재 문서의 단축된 URL이 생성이 됩니다.
원리[원본 편집]
미디어위키에는 문서를 편집할 때마다, 문서의 역사에 고유한 번호를 부여합니다. 이 번호는 oldid
로, 1부터 편집할 때마다 1씩 증가합니다. 자세한 내용은 미디어위키/oldid 문서를 참고하세요!
oldid
값을 62진법[2]으로 변환하여 단축된 URL을 제공합니다. 일반 문서와 혼동이 생기지 않도록, /a/
경로로 제공됩니다.
주의사항[원본 편집]
oldid
값은 문서가 편집되면 새롭게 바뀌므로, 예전에 생성된 URL 값과 현재의 URL 값에는 차이가 있을 수 있습니다. 하지만 둘 다 원래의 문서로 자동으로 이동하므로 걱정하지 않아도 됩니다.- 특수 문서, 편집 페이지 등
oldid
값이 존재하지 않는 페이지에는 본 메뉴가 생성되지 않습니다.