미디어위키 업그레이드 1.25.2 → 1.26.2

1 서버 용량 확인[ | ]

root@zetawiki:~# df -h
Filesystem                   Size  Used Avail Use% Mounted on
udev                         990M  4.0K  990M   1% /dev
tmpfs                        201M  396K  200M   1% /run
/dev/mapper/ubuntu--vg-root   39G   13G   25G  34% /
none                         4.0K     0  4.0K   0% /sys/fs/cgroup
none                         5.0M     0  5.0M   0% /run/lock
none                        1001M     0 1001M   0% /run/shm
none                         100M     0  100M   0% /run/user
/dev/vda1                    236M   40M  184M  18% /boot
root@zetawiki:~# du -hs /var/www/html/w/
1.4G	/var/www/html/w/
→ 디스크 용량은 13 GB 가 남아있고, w폴더의 전체 용량은 1.4 GB 이므로 백업하기에 여유가 있다.

2 백업[ | ]

파일 백업

w 폴더(소스코드 + 업로드 파일)의 사본을 "w-backup"이라는 이름으로 만든다.

root@zetawiki:~# cp -a /var/www/html/w /root/w-backup
→ 진행상황을 알 수 없으니 추가로 SSH 접속하여 아래 명령어로 확인
root@zetawiki:~# watch 'du -bs /var/www/html/w /root/w-backup'
Every 2.0s: du -bs /var/www/html/w /root/w-backup                  Sun Mar 27 20:22:06 2016

1256189143      /var/www/html/w
264323148       /root/w-backup
→ 복사 완료될 때까지 대기
→ 원본 폴더와 사본 폴더 용량이 거의 같아짐[1]
DB 백업
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 722M Mar 27 20:31 mydb_backup.sql

3 설치파일 다운로드 및 설치[ | ]

  • w 폴더의 상위 폴더로 이동하여 mediawiki-1.25.2.tar.gz를 서버에 다운로드(wget)
root@zetawiki:~/w-backup# cd /var/www/html
root@zetawiki:/var/www/html# wget releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.2.tar.gz
... (생략)
HTTP request sent, awaiting response... 200 OK
Length: 25175751 (24M) [application/x-gzip]
Saving to: ‘mediawiki-1.26.2.tar.gz’

100%[=================================================>] 25,175,751  5.84MB/s   in 4.3s   

2016-03-27 20:33:21 (5.60 MB/s) - ‘mediawiki-1.26.2.tar.gz’ saved [25175751/25175751]
root@zetawiki:/var/www/html# ll mediawiki*
-rw-r--r-- 1 root root 25175751 Dec 21 10:13 mediawiki-1.26.2.tar.gz
  • 압축 해제 후 압축파일 삭제
root@zetawiki:/var/www/html# tar xvzf mediawiki-1.26.2.tar.gz
... (생략)
mediawiki-1.26.2/vendor/zordius/lightncandy/tests/test3.tmpl
mediawiki-1.26.2/vendor/zordius/lightncandy/UPGRADE.md
mediawiki-1.26.2/wiki.phtml
root@zetawiki:/var/www/html# rm -f mediawiki-1.26.2.tar.gz
root@zetawiki:/var/www/html#

4 기존 파일 가져오기[ | ]

  • 새로운 폴더 mediawiki-1.26.2로 이동
  • 기존 폴더(w 폴더)에서 필요한 파일을 복사해온다.
root@zetawiki:/var/www/html# cd mediawiki-1.26.2/
root@zetawiki:/var/www/html/mediawiki-1.26.2# cp -a ../w/LocalSettings.php .
root@zetawiki:/var/www/html/mediawiki-1.26.2# cp -a ../w/images/ . -i
cp: overwrite ‘./images/.htaccess’? n
cp: overwrite ‘./images/README’? n
  • 필요한 스킨 가져오기
root@zetawiki:/var/www/html/mediawiki-1.26.2# cp -a ../w/skins/SomeSkin/ ./skins/
root@zetawiki:/var/www/html/mediawiki-1.26.2# cp -a ../w/skins/ZetaStyle/ ./skins/
  • cache 폴더 소유자 변경[2]
root@zetawiki:/var/www/html/mediawiki-1.26.2# chown -R www-data:www-data ./cache/

5 확장기능 가져오기[ | ]

  • extensions 폴더는 비교하여 필요한 것을 선별하여 기존 폴더에서 가져오자.
root@zetawiki:/var/www/html/mediawiki-1.26.2# cd extensions/
root@zetawiki:/var/www/html/mediawiki-1.26.2/extensions# ls
Cite          ImageMap            Nuke             README                 TitleBlacklist
CiteThisPage  InputBox            ParserFunctions  Renameuser             WikiEditor
ConfirmEdit   Interwiki           PdfHandler       SpamBlacklist
Gadgets       LocalisationUpdate  Poem             SyntaxHighlight_GeSHi
root@zetawiki:/var/www/html/mediawiki-1.26.2/extensions# ls ../../w/extensions/
... (생략)
ForceTocOnEveryPage                   SyntaxHighlight_GeSHi
Gadgets                               TitleBlacklist
googleAnalytics                       Validator
HideVariousTabsFromUnauthorizedUsers  Vector
Interwiki                             WikiEditor
LocalisationUpdate                    WikiToWordPress
MagnetLinks                           YouTube
Maps                                  ZetaTrace
root@zetawiki:/var/www/html/mediawiki-1.26.2/extensions# cp -a ../../w/extensions/ForceTocOnEveryPage .
root@zetawiki:/var/www/html/mediawiki-1.26.2/extensions# cp -a ../../w/extensions/YouTube .
root@zetawiki:/var/www/html/mediawiki-1.26.2/extensions# cp -a ../../w/extensions/Maps .
root@zetawiki:/var/www/html/mediawiki-1.26.2/extensions#

6 update 스크립트 실행[ | ]

root@zetawiki:/var/www/html/mediawiki-1.26.2/extensions# cd ../maintenance/
root@zetawiki:/var/www/html/mediawiki-1.26.2/maintenance# php update.php
MediaWiki 1.26.2 Updater

Your composer.lock file is up to date with current dependencies!
Going to run database updates for jmnote-nt_
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
... (생략)
...fa_sha1 column of filearchive table already populated.
...*_from_namespace column of backlink tables already populated.
Purging caches...done.

Done in 2.9 s.
root@zetawiki:/var/www/html/mediawiki-1.26.2/maintenance#

7 폴더 바꿔치기[ | ]

  • 지금까지 구성한 새 버전 폴더를 실제로 웹에 적용되는 폴더로 전환
root@zetawiki:/var/www/html/mediawiki-1.26.2/maintenance# cd ../..
root@zetawiki:/var/www/html# mv w w-old && mv mediawiki-1.26.2 w
root@zetawiki:/var/www/html#

8 브라우저 접속[ | ]

제품 버전
MediaWiki 1.26.2
PHP 5.5.9-1ubuntu4.14 (apache2handler)
MySQL 5.5.46-0ubuntu0.12.04.2
Lua 5.1.5
  • 페이지 보기, 편집, 파일 업로드 등을 해보고 이상 없는지 확인

9 후속조치[ | ]

  • 구폴더(w-old)는 웹사용자가 접근하지 못하도록 다른 곳(예: 홈폴더 등)으로 이동시켜 두자.
root@zetawiki:/var/www/html# mv w-old/ ~
root@zetawiki:/var/www/html#
  • 별다른 문제가 없다면 추후 삭제

10 같이 보기[ | ]

11 주석[ | ]

  1. 사본이 더 크네? 아파치를 중지하지 않고 진행해서 그런 듯... 캐시파일 등에서 차이가 난다.
  2. 아파치 데몬을 구동중인 계정을 소유자로...
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}