최신판 |
당신의 편집 |
1번째 줄: |
1번째 줄: |
| ==이 문서는...== | | ==이 문서는...== |
| 답답한 우리의 [[사용자:Admin|가온 위키 관리자]]가 구현하지 못해, 착한 유저가 해결책을 제시한 경우, 감사의 표시로 이곳과 [[가온 위키 커뮤니티]]에 표시하는 곳입니다.<br/> | | # 답답한 우리의 [[사용자:Admin|가온 위키 관리자]]가 구현하지 못해, 착한 유저가 해결책을 제시한 경우, 감사의 표시로 이곳과 [[가온 위키 커뮤니티]]에 표시하는 곳입니다.<br/> |
|
| |
|
| ==구현 못한 부분== | | ==구현 못한 부분== |
6번째 줄: |
6번째 줄: |
|
| |
|
| ==해결됨== | | ==해결됨== |
| | ===니코동 영상 가져오기=== |
| | # 어디서는<ref>크흠... 트리위키라 하면 알겠지...?</ref> SSL을 적용해도 잘만 가져오는데, 여기는 못 가져오네...<br/> |
| | # [https://www.mediawiki.org/wiki/Extension:EmbedVideo EmbedVideo 확장 기능]을 수정해 보았지만 어렵네... |
| | # 그래도 수정을 완료했다!(<del>스스로 토닥이는 관리자. 잘했어. 하얗게 불태웠어.</del>) |
|
| |
|
| ===리버티 스킨 관련 문제=== | | ===수정 전=== |
| 리버티 스킨과 관련된 문제는 [[가온 위키:기능 구현 불가-누가 해결책을 알려주세요!/리버티 스킨]] 문서를 참고하자.
| | * ./extensions/EmbedVideo/classes/VideoService.php 파일이다. |
| | <syntaxhighlight lang="PHP" highlight="2" start='215' line> |
| | 'nico' => [ |
| | 'embed' => '<iframe srcdoc="<script type="text/javascript" src="http://ext.nicovideo.jp/thumb_watch/%1$s?w=%2$d&h=%3$d"></script>" width="%2$d" height="%3$d" frameborder="0" allowFullScreen="true"></iframe>', |
| | 'default_width' => 640, |
| | 'default_ratio' => 1.59609120521173, // (490 / 307) |
| | 'https_enabled' => false, |
| | 'url_regex' => [ |
| | '#nicovideo\.jp/watch/((?:[a-zA-Z]{2})?[\d]+)#is' |
| | ], |
| | 'id_regex' => [ |
| | '#^((?:[a-zA-Z]{2})?[\d]+)$#is' |
| | ] |
| | ], |
| | </syntaxhighlight><br/> |
|
| |
|
| ===영상 가져오기(Embed) 관련 문제=== | | ====수정 후==== |
| 외부 서비스들 중에서 가져오지 못하는 것들은 [[가온 위키:기능 구현 불가-누가 해결책을 알려주세요!/영상 가져오기]] 문서를 참고하자!
| | <syntaxhighlight lang="PHP" highlight="2" start='215' line> |
| | | 'nico' => [ |
| ===이미지 관련 문제=== | | 'embed' => '<iframe src="https://embed.nicovideo.jp/watch/%1s/" width="%2$d" height="%3$d" frameborder="0" allowFullScreen="true"></iframe>', |
| ====이미지 크기 설정시 파일 링크만 뜨는 현상==== | | 'default_width' => 640, |
| <nowiki>[[파일:updates.png|100px]]</nowiki> 이렇게 하면 일반 문서처럼 링크로 뜬다. 서버 이전 전에는 이러지 않았는데...
| | 'default_ratio' => 1.59609120521173, // (490 / 307) |
| | | 'https_enabled' => true, |
| [https://m.mediawiki.org/w/index.php?title=Topic:Rnjccxoqss9wfedy&topic_showPostId=rnq05rzcc6o7z4hc#flow-post-rnq05rzcc6o7z4hc 미디어위키 헬프 데스크]에서 찾았다.
| | 'url_regex' => [ |
| | | '#nicovideo\.jp/watch/((?:[a-zA-Z]{2})?[\d]+)#is' |
| =====수정 전===== | | ], |
| [[미디어위키]]의 루트 폴더에 있는 [[미디어위키/LocalSettings.php|LocalSettings.php]]를 수정한다.
| | 'id_regex' => [ |
| | | '#^((?:[a-zA-Z]{2})?[\d]+)$#is' |
| =====수정 후===== | | ] |
| [[LocalSettings.php]]의 하단 부분에 추가하자.
| | ], |
| <syntaxhighlight lang='php'>
| | </syntaxhighlight><br/> |
| $wgGenerateThumbnailOnParse = true;
| |
| </syntaxhighlight>
| |
| | |
| 그리고 [[미디어위키]] 버전이 1.30 이상인 경우, 썸네일을 재생성하자. [[미디어위키]]의 루트 폴더에서 '''maintenance''' 폴더로 이동한 뒤, 아래의 명령어를 입력하자.
| |
| | |
| <syntaxhighlight lang='console'>
| |
| root@gaon:/var/www/html/w/maintenance# php rebuildImages.php
| |
| </syntaxhighlight>
| |
| | |
| =====하고 싶은말=====
| |
| 이 오류는 [[미디어위키]] 1.27 버전에서는 없던 오류이므로 1.30 이상 버전의 오류같다. 물론 썸네일은 [[Imagemagick]]가 미리 설치 및 [[미디어위키]]에서 미리 설정 되어 있어야 한다.
| |
| | |
| ====SVG 파일 업로드시 썸네일의 흑백화====
| |
| SVG 파일을 업로드하면 원래 가지고 있던 색상값은 표시되지 않고 흑백으로만 표시가 된다. 이는 SVG를 png로 변환하는 프로그램인 ImageMagick의 특정 버전에서 나타난 오류이다. [https://bbs.gaonwiki.com/free/3877 zlzleking님]이 보고해 주셨다.
| |
| | |
| =====수정 전=====
| |
| 먼저 Inkscape를 설치한다. 우분투 기준으로 아래의 명령어를 입력하면 된다.
| |
| <syntaxhighlight lang='console'>
| |
| root@gaon:/# apt update
| |
| root@gaon:/# apt install inkscape
| |
| </syntaxhighlight> | |
| | |
| 이후 [[미디어위키]]의 루트 폴더에 있는 [[미디어위키/LocalSettings.php|LocalSettings.php]]를 수정한다.
| |
|
| |
|
| <syntaxhighlight lang='php'>
| | # '''<nowiki>'embed'=> '<iframe srcdoc="<script type="text/javascript" src="http://ext.nicovideo.jp/thumb_watch/%1$s?w=%2$d&h=%3$d"></script></nowiki>"'''를 '''<nowiki>'embed'=> '<iframe src="https://embed.nicovideo.jp/watch/%1s/"</nowiki>'''로 변경한다. |
| $wgSVGConverter = 'ImageMagick';
| |
| </syntaxhighlight>
| |
| | |
| =====수정 후=====
| |
| [[LocalSettings.php]]의 하단 부분에 추가하자. Inkscape의 경로는 자신의 환경에 맞춰 수정하자.
| |
| <syntaxhighlight lang='php'> | |
| $wgSVGConverterPath = '/usr/bin/inkscape';
| |
| $wgSVGConverters = [
| |
| 'Inkscape' => '/usr/bin/inkscape -w $width -z -w $width -f $input -e $output',
| |
| ];
| |
| $wgSVGConverter = 'Inkscape';
| |
| | |
| #$wgSVGConverter = 'ImageMagick';
| |
| </syntaxhighlight>
| |
| | |
| 여기서
| |
| <syntaxhighlight lang='php'>
| |
| $wgSVGConverter = 'ImageMagick';
| |
| </syntaxhighlight> | |
| 부분은 반드시 주석처리 한다.
| |
| | |
| 그리고 [[미디어위키]] 버전이 1.30 이상인 경우, 썸네일을 재생성하자. [[미디어위키]]의 루트 폴더에서 '''maintenance''' 폴더로 이동한 뒤, 아래의 명령어를 입력하자.
| |
| | |
| <syntaxhighlight lang='console'> | |
| root@gaon:/var/www/html/w/maintenance# php rebuildImages.php
| |
| </syntaxhighlight> | |
| | |
| ===신택스 강조(Syntax Highlight) 사용시 사용된 문서가 '''구문 강조에 오류가 있는 문서'''로 분류되는 현상===
| |
| 미디어위키 1.33.1 버전에 있는 [[미디어위키/확장기능/SyntaxHighlight|SyntaxHighlight 확장기능]]을 사용하는 경우, "구문 강조에 오류가 있는 문서"로 자동 분류된다.
| |
| | |
| 미디어위키 코어에 포함되어 있는 버전만 파이썬 전역 환경변수 처리를 요구한다.
| |
| | |
| ====구버전 사용====
| |
| 1.32.x 버전의 구버전을 사용하는 방법이다.
| |
| 웹호스팅과 같이 서버를 직접 조작하지 못하는 경우에 사용하면 된다.
| |
| | |
| [https://www.mediawiki.org/wiki/Special:ExtensionDistributor/SyntaxHighlight_GeSHi SyntaxHighlight 다운로드 페이지]로 이동 후, 미디어위키 버전을 1.32 버전으로 설정 후, 기존에 있던 확장기능 삭제 후 새로 받은 버전으로 업로드 한다.
| |
| | |
| ====확장기능 페이지서 1.33버전으로 다운로드====
| |
| 이상하게 1.33 버전으로 다운로드 받아도 작동한다. 아마도 코어 파일에 포함되어 있는 버전만 파이썬 전역 환경변수 처리해야 하는 것 같다.
| |
| | |
| 이후 미디어위키 1.34 코어에 포함된 버전은 해당 문제가 발생하지 않는다. 1.33.1에 포함된 버전만 문제인 것 같다.
| |
| | |
| ====파이썬3 설치====
| |
| 1.35.1 기준, 서버에 파이썬3를 설치하면 해당 문제는 발생하지 않는다.
| |
| | |
| 설치방법은 쉘에
| |
| | |
| <syntaxhighlight lang='console'>
| |
| root@gaon:/# apt update && apt -y install python3
| |
| </syntaxhighlight> | |
| | |
| 이라고 입력한다. 설치가 되었는지 확인하려면,
| |
| <syntaxhighlight lang='console'>
| |
| root@gaon:/# python3 --version
| |
| Python 3.8.5
| |
| </syntaxhighlight>
| |
| 이라고 입력한다. 이때 버전은 위의 버전과 다를 수 있다.
| |
| | |
| ===TitleKey 확장기능 설치===
| |
| 대소문자 구분 없이 문서를 검색 할 수 있는 [[미디어위키/확장기능/TitleKey|TitleKey]] 설정 중, <code>php extensions/TitleKey/maintenance/rebuildTitleKeys.php</code> 명령어를 입력할 때, 경로를 찾지 못하는 문제가 있다.
| |
| | |
| 이 문제는 환경변수 <code><nowiki>$IP</nowiki></code>가 경로를 제대로 반환하지 않아 생기는 문제이다.
| |
| | |
| 여기서는 환경변수 <code><nowiki>$IP</nowiki></code>를 수정하지 않고, 9번째 줄을 절대경로로 바꾸어 사용했다. 사용 환경에 맞추어 수정하길 바란다.
| |
|
| |
|
| | ===최근바뀜에서 문서명에 / 가 포함되어 있으면, 오류 뜨는 경우=== |
| | # 같은 스킨을 쓰는 [[리브레 위키]]에서는 잘 되던데... 서버 설정 오류인가?<br/> |
| | # [https://quiple.mcsv.io/w/퀴플위키 퀴플위키]에서 해결책을 찾았다. 감사합니다. 퀴플위키!<ref>최신 버전 기준이다.</ref> |
| ====수정 전==== | | ====수정 전==== |
| <syntaxhighlight lang='php' start='5' highlight='5'>
| | * 리버티 스킨/js 폴더에 있는 live-recent.js를 수정한다. |
| $IP = getenv( 'MW_INSTALL_PATH' );
| |
| if ( $IP === false ) {
| |
| $IP = __DIR__ . '/../..';
| |
| }
| |
| require_once "$IP/maintenance/Maintenance.php";
| |
|
| |
|
| // In case we want to do offline initialization...
| | <syntaxhighlight lang="JavaScript" highlight="5" start='55' line> |
| if ( !class_exists( 'TitleKey' ) ) { | | var recentChanges, html, time, line, text; |
| require __DIR__ . '/../includes/TitleKey.php';
| | recentChanges = data.query.recentchanges; |
| } | | html = recentChanges.map( function ( item ) { |
| </syntaxhighlight> | | time = new Date( item.timestamp ); |
| | line = '<li><a class="recent-item" href = "' + ( mw.config.get( 'wgArticlePath' ) ).replace( '$1', encodeURIComponent( item.title ) ) + '" title="' + item.title + '">[' + timeFormat( time ) + '] '; |
| | text = ''; |
| | if ( item.type === 'new' ) { |
| | text += '[New]'; |
| | } |
| | text += item.title; |
| | if ( text.length > 13 ) { |
| | text = text.substr( 0, 13 ); |
| | text += '...'; |
| | } |
| | </syntaxhighlight><br/> |
|
| |
|
| ====수정 후==== | | ====수정 후==== |
| <syntaxhighlight lang='php' start='5' highlight='5'> | | <syntaxhighlight lang="JavaScript" highlight="5" start='55' line> |
| $IP = getenv( 'MW_INSTALL_PATH' );
| | var recentChanges, html, time, line, text; |
| if ( $IP === false ) { | | recentChanges = data.query.recentchanges; |
| $IP = __DIR__ . '/../..';
| | html = recentChanges.map( function ( item ) { |
| } | | time = new Date( item.timestamp ); |
| require_once "/var/www/html/w/maintenance/Maintenance.php";
| | line = '<li><a class="recent-item" href = "' + ( mw.config.get( 'wgArticlePath' ) ).replace( '$1', encodeURI( item.title ) ) + '" title="' + item.title + '">[' + timeFormat( time ) + '] '; |
| | text = ''; |
| | if ( item.type === 'new' ) { |
| | text += '[New]'; |
| | } |
| | text += item.title; |
| | if ( text.length > 13 ) { |
| | text = text.substr( 0, 13 ); |
| | text += '...'; |
| | } |
| | </syntaxhighlight><br/> |
| | # 59번째 줄의 encodeURIComponent( item.title ) )에서 encodeURIComponent를 encodeURI로 변경 |
|
| |
|
| // In case we want to do offline initialization... | | ===이미지 크기 설정시 파일 링크만 뜨는 현상=== |
| if ( !class_exists( 'TitleKey' ) ) {
| | # <nowiki>[[파일:updates.png|100px]]</nowiki> 이렇게 하면 일반 문서처럼 링크로 뜬다. |
| require __DIR__ . '/../includes/TitleKey.php';
| | # 서버 이전 전에는 이러지 않았는데... |
| }
| | # [https://m.mediawiki.org/w/index.php?title=Topic:Rnjccxoqss9wfedy&topic_showPostId=rnq05rzcc6o7z4hc#flow-post-rnq05rzcc6o7z4hc 미디어위키 헬프 데스크]에서 찾았다. |
| </syntaxhighlight>
| |
|
| |
|
| 또는 상대경로로 지정해도 된다. 이 경우에는 미디어위키 설치 경로에 구애받지 않는다는 장점이 있다.
| | ====수정 전==== |
| | # [[미디어위키]]의 루트 폴더에 있는 [[LocalSettings.php]]를 수정한다. |
| | # 아직 수정 전이므로 아래 내용은 없을 것이다. |
|
| |
|
| <syntaxhighlight lang='php' start='5' highlight='5'> | | <syntaxhighlight lang="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';
| |
| }
| |
| </syntaxhighlight> | | </syntaxhighlight> |
|
| |
|
| ==비주얼 에디터 설치== | | ====수정 후==== |
| 비주얼 에디터를 설치하고, 사용할 수 있다. 다만 짧은 주소 설정시 오류가 발생할 수 있으므로 본 코드를 사용하자.
| | # [[LocalSettings.php]]의 하단 부분에 추가하자. |
| | | <syntaxhighlight lang="PHP"> |
| ===짧은 주소 설정(선택, 권장)=== | | $wgGenerateThumbnailOnParse = true; |
| 짧은 주소를 설정하자. .htaccess를 사용하므로 아파치 이용자만 할 수 있다.(짧은 주소 자체는 nginx도 할 수 있지만, 서술하지 않음).
| |
| | |
| 먼저 [[미디어위키/LocalSettings.php|LocalSettings.php]]가 있는 루트 폴더로 이동하여 .htaccess를 열자. 없으면 생성하자.
| |
| | |
| 이후 아래와 같이 입력한다.
| |
| | |
| <syntaxhighlight> | |
| 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]
| |
| </syntaxhighlight> | | </syntaxhighlight> |
| | | # 그리고 [[미디어위키]] 버전이 1.30 이상인 경우, 썸네일을 재생성하자. |
| 여기서 2번째 줄과 6번째 줄에 있는 <code>/w/</code> 부분에 원하는 줄임(<nowiki>https://example.com/w/문서명</nowiki>) 단어를 입력한다.
| | # [[미디어위키]]의 루트 폴더에서 '''maintenance''' 폴더로 이동한 뒤, 아래의 명령어를 입력하자. |
| | | <syntaxhighlight lang="Sh"> |
| [https://wnw1005.tistory.com/168 출처 : 씨실과 날실님 티스토리 블로그], [https://www.mediawiki.org/wiki/Topic:W2ahzg3yi27mvp9y 미디어위키 토론 중 Rogerhc님의 답변] | | php rebuildImages.php |
| | |
| 이후 LocalSettings.php 하단에 다음과 같이 입력한다.
| |
| <syntaxhighlight lang='php'>
| |
| $wgScriptExtension = ".php";
| |
| $wgArticlePath = "{$wgScriptPath}/$1";
| |
| $wgUsePathInfo = true;
| |
| </syntaxhighlight>
| |
| | |
| ===비주얼 에디터 설치===
| |
| 1.37버전은 이미 extensions 폴더에 있다. 코어에 포함되어 있으나, 삭제한 사람은 [https://www.mediawiki.org/wiki/Extension:VisualEditor 미디어위키 비주얼 에디터 페이지]에서 자신의 버전에 맞게 다운로드 받은 뒤 extensions 폴더 안에 넣는다.
| |
| | |
| 이후 LocalSettings.php 하단에 다음과 같이 입력한다.
| |
| <syntaxhighlight lang='php'>
| |
| wfLoadExtension( 'VisualEditor' );
| |
| </syntaxhighlight>
| |
| | |
| 이러면 끝이다.
| |
| | |
| == 미디어위키 1.39 버전 업그레이드 이후 분류값 앞에 점이 표시되고 세로로 정렬되는 문제 ==
| |
| 미디어위키 1.39 rc버전에서는 이런 문제가 없었지만, 1.39 정식버전에서는 분류값 앞에 점이 표시되고, 세로로 정렬되는 문제가 있다. 또한 분류값이 '''분류:'''밑에 줄에 표시되는 문제가 있다.
| |
| [[파일:미디어위키1_39_분류_문제.png]]
| |
| | |
| 이는 [[미디어위키:Common.css]] 문서를 수정하면 된다.
| |
| | |
| === 수정 전 ===
| |
| <syntaxhighlight lang='css'>
| |
| /* 이 CSS 설정은 모든 스킨에 적용됩니다 */
| |
| .mw-highlight pre { | |
| font-size: 90%;
| |
| }
| |
| </syntaxhighlight>
| |
| | |
| === 수정 후 ===
| |
| <syntaxhighlight lang='css'> | |
| /* 이 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;
| |
| }
| |
| </syntaxhighlight> | | </syntaxhighlight> |
| | ====하고 싶은말==== |
| | # 이 오류는 [[미디어위키]] 1.27 버전에서는 없던 오류이므로 1.30 이상 버전의 오류같다. |
| | # 물론 썸네일은 [[Imagemagick]]가 미리 설치 및 [[미디어위키]]에서 미리 설정 되어 있어야 한다 |
|
| |
|
| ==구현한 기능== | | ==구현한 기능== |
| === 인디케이터 표시 ===
| | * 아직 존재하지 않습니다.<br/> |
| [https://github.com/merlinwarage/simple-scroll-progress simple-scroll-progress]를 이용하여 스크롤한 범위를 표시하는 기능입니다.
| |
| | |
| [[파일:리버티 스킨-스크롤 범위.gif]]<ref>초기의 타 라이브러리를 사용한 모습. 현재 버전은 본 위키에 적용되어 있다.</ref>
| |
| | |
| 혹시 사용하고 싶다면, [https://github.com/gaon12/Liberty Liberty 깃허브 저장소]를 다운로드 받아 사용하면 된다. 라이브러리는 외부에서 불러오니 참고하자.
| |
| | |
| === 클라우드플레어 원본 IP 주소 표시 ===
| |
| 클라우드플레어 사용 시, 비로그인 유저가 문서를 편집하는 경우, ip주소가 클라우드플레어의 ip로 기록됩니다. 이를 수정해주는 확장기능을 개발하여 배포합니다.
| |
| | |
| {{깃허브/저장소|gaon12|mw_CloudflareRealIP}} 확장기능을 설치하면, 원본 IP 주소가 표시됩니다.
| |
| | |
| ==== 설치 ====
| |
| # 먼저 GitHub 저장소에서 확장기능을 다운로드하세요.
| |
| # 다운로드 받은 확장기능을 미디어위키의 "extensions" 폴더에 업로드합니다.
| |
| # 미디어위키의 "LocalSettings.php" 파일을 찾아 아래 코드를 추가하세요
| |
| | |
| <br> | |
| <syntaxhighlight lang='php'>
| |
| wfLoadExtension( 'CloudflareRealIP' );
| |
| </syntaxhighlight>
| |
| | |
| ==== 사용법 ====
| |
| 이 확장기능을 설치하고 나면 아무런 추가 설정 없이 자동으로 작동합니다. 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이 생성이 됩니다.
| |
| | |
| ==== 원리 ====
| |
| [[미디어위키]]에는 문서를 편집할 때마다, 문서의 역사에 고유한 번호를 부여합니다. 이 번호는 <code>oldid</code>로, 1부터 편집할 때마다 1씩 증가합니다. 자세한 내용은 [[미디어위키/oldid]] 문서를 참고하세요!
| |
| | |
| <code>oldid</code> 값을 62진법<ref>숫자(0-9) + 알파벳 대문자(A-Z) + 알파벳 소문자(a-z)</ref>으로 변환하여 단축된 URL을 제공합니다. 일반 문서와 혼동이 생기지 않도록, <code>/a/</code> 경로로 제공됩니다.
| |
| | |
| ==== 주의사항 ====
| |
| * <code>oldid</code> 값은 문서가 편집되면 새롭게 바뀌므로, 예전에 생성된 URL 값과 현재의 URL 값에는 차이가 있을 수 있습니다. 하지만 둘 다 원래의 문서로 자동으로 이동하므로 걱정하지 않아도 됩니다.
| |
| * 특수 문서, 편집 페이지 등 <code>oldid</code> 값이 존재하지 않는 페이지에는 본 메뉴가 생성되지 않습니다.
| |
|
| |
|
| ==각주== | | ==각주== |