미디어위키 업그레이드 1.23.3 → 1.25.2 편집하기

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
1번째 줄: 1번째 줄:
{{테스트|미디어위키 1.23.3 → 1.25.2}}
#넘겨주기 [[미디어위키 업그레이드 1.21.2 → 1.23.3]]
==서버 용량 확인==
<syntaxhighlight lang='console'>
[root@zetawiki ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                      36G  24G  9.5G  72% /
tmpfs                939M    0  939M  0% /dev/shm
/dev/vda1            485M  66M  395M  15% /boot
</syntaxhighlight>
<syntaxhighlight lang='console'>
[root@zetawiki ~]# du -hs /var/www/html/w/
2.3G /var/www/html/w/
</syntaxhighlight>
:→ 디스크 용량은 9.5 GB 가 남아있고, [[w폴더]]의 전체 용량은 2.3 GB 이므로 백업하기에 여유가 있다.
 
==백업==
;파일 백업
[[w 폴더]](소스코드 + 업로드 파일)의 사본을 "w-backup"이라는 이름으로 만든다.
<syntaxhighlight lang='console'>
[root@zetawiki ~]# cp -a /var/www/html/w /root/w-backup
</syntaxhighlight>
:→ 진행상황을 알 수 없으니 추가로 SSH 접속하여 아래 명령어로 확인
<syntaxhighlight lang='console'>
[root@zetawiki ~]# watch 'du -bs /var/www/html/w /root/w-backup'
Every 2.0s: du -bs /var/www/html/w /root... Wed Aug 19 20:53:04 2015
 
2285354528 /var/www/html/w
2294311692      /root/w-backup
</syntaxhighlight>
:→ 복사 완료될 때까지 대기
:→ 원본 폴더와 사본 폴더 용량이 거의 같아짐<ref>사본이 더 크네? 아파치를 중지하지 않고 진행해서 그런 듯... 캐시파일 등에서 차이가 난다.</ref>
 
;DB 백업
<syntaxhighlight lang='console'>
[root@zetawiki ~]# cd /root/w-backup
[root@zetawiki w-backup]# mysqldump -hzetadb -uroot -pP@ssw0rd --databases mydb > mydb-backup.sql
[root@zetawiki w-backup]# ll -h mydb-backup.sql
-rw-r--r-- 1 root root 610M Aug 19 20:58 mydb-backup.sql
</syntaxhighlight>
 
==설치파일 다운로드 및 설치==
*[[w 폴더]]의 상위 폴더로 이동하여 mediawiki-1.25.2.tar.gz를 서버에 다운로드(wget)
<syntaxhighlight lang='console'>
[root@zetawiki ~]# cd /var/www/html
[root@zetawiki html]# wget releases.wikimedia.org/mediawiki/1.25/mediawiki-1.25.2.tar.gz
... (생략)
HTTP request sent, awaiting response... 200 OK
Length: 24018158 (23M) [application/x-gzip]
Saving to: “mediawiki-1.25.2.tar.gz”
 
1% [                      ] 247,246    28.0K/s  eta 12m 50s
... (생략)
[root@zetawiki html]# ll mediawiki*
-rw-r--r-- 1 root root 24018158 Aug 19 20:19 mediawiki-1.25.2.tar.gz
</syntaxhighlight>
*압축 해제 후 압축파일 삭제
<syntaxhighlight lang='console'>
[root@zetawiki ~]# tar xvzf mediawiki-1.25.2.tar.gz
... (생략)
mediawiki-1.25.2/languages/.htaccess
mediawiki-1.25.2/languages/ConverterRule.php
mediawiki-1.25.2/languages/Language.php
</syntaxhighlight>
<syntaxhighlight lang='console'>
[root@zetawiki html]# rm -f mediawiki-1.25.2.tar.gz
[root@zetawiki html]#
</syntaxhighlight>
 
==기존 파일 가져오기==
* 새로운 폴더 mediawiki-1.25.2로 이동
* 기존 폴더(w 폴더)에서 필요한 파일을 복사해온다.
<syntaxhighlight lang='console'>
[root@zetawiki html]# cd mediawiki-1.25.2/
[root@zetawiki mediawiki-1.25.2]# cp -a ../w/LocalSettings.php .
[root@zetawiki mediawiki-1.25.2]# cp -a ../w/images/ .
cp: overwrite `./images/README'? n
cp: overwrite `./images/.htaccess'? n
[root@zetawiki mediawiki-1.25.2]# cp -a ../w/skins/ .
</syntaxhighlight>
:→ skins 폴더의 경우 overwrite가 없었는데, 스킨폴더명이 모두 [[카멜케이스]]로 변경되었더라.
* cache 폴더 소유자 변경
<syntaxhighlight lang='console'>
[root@zetawiki mediawiki-1.25.2]# chown -R apache:apache /var/www/html/w/cache/
</syntaxhighlight>
 
==확장기능 가져오기==
* extensions 폴더는 비교하여 필요한 것을 선별하여 기존 폴더에서 가져오자.
<syntaxhighlight lang='console'>
[root@zetawiki mediawiki-1.25.2]# cd extensions/
[root@zetawiki extensions]# ls
Cite          InputBox            PdfHandler    SyntaxHighlight_GeSHi
CiteThisPage  Interwiki          Poem          TitleBlacklist
ConfirmEdit  LocalisationUpdate  README        WikiEditor
Gadgets      Nuke                Renameuser
ImageMap      ParserFunctions    SpamBlacklist
</syntaxhighlight>
<syntaxhighlight lang='console'>
[root@zetawiki extensions]# ls ../../w/extensions/
... (생략)
ForceTocOnEveryPage                  SyntaxHighlight_GeSHi
Gadgets                              TitleBlacklist
googleAnalytics                      Validator
HideVariousTabsFromUnauthorizedUsers  Vector
Interwiki                            WikiEditor
LocalisationUpdate                    WikiToWordPress
MagnetLinks                          YouTube
Maps                                  ZetaTrace
MathJax
</syntaxhighlight>
<syntaxhighlight lang='console'>
[root@zetawiki extensions]# cp -a ../../w/extensions/ForceTocOnEveryPage .
[root@zetawiki extensions]# cp -a ../../w/extensions/YouTube .
[root@zetawiki extensions]# cp -a ../../w/extensions/Maps .
[root@zetawiki extensions]#
</syntaxhighlight>
 
==LocalSettings.php 수정==
*1.24 버전부터 스킨과 확장기능을 등록하는 방법이 바뀌었다.
:그렇더라도 구버전 스킨과 확장기능은 예전방식 그대로 두어야 한다.
:새 버전에 포함된 것만 새 방식으로 변경하자.
:단, ConfirmEdit는 새 버전에 포함된 것도 아직 구식으로 해야 한다...
*아래 예시 참고하여 [[LocalSettings.php]] 수정
<syntaxhighlight lang='console'>
[root@zetawiki extensions]# cd ..
[root@zetawiki mediawiki-1.25.2]# vi LocalSettings.php
</syntaxhighlight>
<syntaxhighlight lang='php'>
// 새 버전에 포함된 것
wfLoadSkin( 'Vector' );
 
#require_once "$IP/extensions/Cite/Cite.php";
#require_once "$IP/extensions/Poem/Poem.php";
wfLoadExtension( 'Renameuser' );
wfLoadExtension( 'CharInsert' );
wfLoadExtension( 'Cite' );
wfLoadExtension( 'Poem' );
wfLoadExtension( 'ParserFunctions' );
wfLoadExtension( 'SyntaxHighlight_GeSHi' );
 
// 새 버전에 없는 기존 것
require_once "$IP/extensions/ForceTocOnEveryPage/ForceTocOnEveryPage.php";
require_once "$IP/extensions/YouTube/YouTube.php";
</syntaxhighlight>
 
== update 스크립트 실행 (실패) ==
* 이 문단은 참고만 하시라.
* upadate 스크립트를 실행해야 하는데, 구버전 스킨·확장기능을 새 방식으로 Load했을 경우 이러한 오류가 발생한다.
<syntaxhighlight lang='console'>
[root@zetawiki mediawiki-1.25.2]# cd maintenance/
[root@zetawiki maintenance]# php update.php
PHP Fatal error:  Uncaught exception 'Exception' with message '/var/www/html/mediawiki-1.25.2/skins/foreground/skin.json does not exist!' in /var/www/html/mediawiki-1.25.2/includes/registration/ExtensionRegistry.php:79
Stack trace:
#0 /var/www/html/mediawiki-1.25.2/includes/GlobalFunctions.php(216): ExtensionRegistry->queue('/var/www/html/m...')
#1 /var/www/html/mediawiki-1.25.2/LocalSettings.php(170): wfLoadSkin('foreground')
#2 /var/www/html/mediawiki-1.25.2/maintenance/doMaintenance.php(83): require('/var/www/html/m...')
#3 /var/www/html/mediawiki-1.25.2/maintenance/update.php(216): require_once('/var/www/html/m...')
#4 {main}
  thrown in /var/www/html/mediawiki-1.25.2/includes/registration/ExtensionRegistry.php on line 79
</syntaxhighlight>
 
;문제 해결
* 기존 사용하던 스킨, 확장기능과 충돌이 있어 [[LocalSettings.php]]에서 제외시킴
:죄다 skin.json, extension.json이 없다고 함
:wfLoadSkin(), wfLoadExtension()이 json 파일을 필요로 하는 모양...
* 기본 스킨을 Vector로 설정함
<syntaxhighlight lang='php'>
#$wgDefaultSkin = 'foreground';
$wgDefaultSkin = 'Vector';
... (생략)
wfLoadSkin( 'Vector' );
#wfLoadSkin( 'foreground' );
#wfLoadSkin( 'foobar' );
 
#wfLoadExtension( 'Mantle' );
#wfLoadExtension( 'ForceTocOnEveryPage' );
#wfLoadExtension( 'DynamicPageList' );
#wfLoadExtension( 'Scribunto' );
</syntaxhighlight>
 
== update 스크립트 실행 (성공) ==
<syntaxhighlight lang='console'>
root@zetawiki maintenance]# php update.php
MediaWiki 1.25.2 Updater
 
Your composer.lock file is up to date with current dependencies!
Going to run database updates for zetawiki-zt_
Depending on the size of your database this may take a while!
Abort with control-c in the next five seconds (skip this countdown with --quick) ... 0
... (생략)
...doing page_id from 34031 to 34230
...doing page_id from 34230 to 34429
Set the local repo temp zone container to be private.
Purging caches...done.
 
Done in 2:28.
[root@zetawiki maintenance]#
</syntaxhighlight>
 
== 폴더 바꿔치기 ==
*지금까지 구성한 새 버전 폴더를 실제로 웹에 적용되는 폴더로 전환
<syntaxhighlight lang='console'>
[root@zetawiki maintenance]# cd ..
[root@zetawiki mediawiki-1.25.2]# cd ..
[root@zetawiki html]# mv w/ w-old
[root@zetawiki html]# mv mediawiki-1.25.2/ w
[root@zetawiki html]#
</syntaxhighlight>
 
== (참고) 브라우저 접속 (실패) ==
* 이 문단은 참고만 하시라.
* cache 폴더의 소유자를 아파치 웹서버 계정으로 바꾸지 않을 경우 발생하는 오류임
* http://zetawiki.com/ 에 접속해보니.. 오류 발생
<syntaxhighlight lang='text'>
[2a4cb221] /wiki/Main_Page MWException from line 1305 of /var/www/html/w/includes/cache/LocalisationCache.php: Unable to open CDB file "/var/www/html/w/cache/l10n_cache-ko.cdb.tmp.695389245" for write.
 
Backtrace:
 
#0 /var/www/html/w/includes/cache/LocalisationCache.php(1007): LCStoreCDB->startWrite(string)
#1 /var/www/html/w/includes/cache/LocalisationCache.php(449): LocalisationCache->recache(string)
#2 /var/www/html/w/includes/cache/LocalisationCache.php(323): LocalisationCache->initLanguage(string)
... (생략)
</syntaxhighlight>
 
;문제 해결
*캐시 폴더 소유자를 apache로 변경
<syntaxhighlight lang='console'>
[root@zetawiki html]# chown -R apache:apache /var/www/html/w/cache/
[root@zetawiki html]# ll /var/www/html/w/ | grep cache
drwxr-xr-x 14 apache apache  4096 Aug 19 22:46 cache
</syntaxhighlight>
*이제 웹페이지가 잘 열린다..
 
== 브라우저 접속 (성공) ==
*'''[[특수기능:버전]]'''에서 버전 확인
{| class='wikitable'
!제품 !! 버전
|-
| MediaWiki || 1.25.2
|-
| PHP || 5.3.3 (apache2handler)
|-
| MySQL || 5.5.40-0ubuntu0.12.04.1
|}
*페이지 보기, 편집, 파일 업로드 등을 해보고 이상 없는지 확인
 
==후속조치==
*구폴더(w-old)는 웹사용자가 접근하지 못하도록 다른 곳(예: 홈폴더 등)으로 이동시켜 두자.
<syntaxhighlight lang='console'>
[root@zetawiki html]# mv w-old/ ~
</syntaxhighlight>
*별다른 문제가 없다면 추후 삭제
 
==같이 보기==
* [[미디어위키 업그레이드 1.25.2 → 1.26.2]]
* [[미디어위키 업그레이드 1.21.2 → 1.23.3]]
* [[미디어위키 업그레이드 1.18.0 → 1.21.2]]
* [[미디어위키 버전 확인]]
* [[PHP 업그레이드]]
* [[w 폴더]]
 
==참고==
 
[[분류: 미디어위키 업그레이드]]

제타위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 3.0 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 제타위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 편집 도움말 (새 창에서 열림)

이 문서에서 사용한 틀: