14.04에서 18.04로 업그레이드하니 많은 부분이 바뀌었습니다. DNS 서버 관련된 부분이 systemd 의 resolved 를 이용하는 것 같습니다.
/etc/resolv.conf 를 보면 nameserver 127.0.0.53 이라고 되어 있는데, systemd에 포함된 resolved DNS 서버에 요청하게 된다는 의미입니다. DHCP로 설정해서 아이피를 자동으로 받아 올 경우 DHCP서버에 설정된 DNS서버 정보를 받아오지만 고정 IP를 쓸 경우 따로 설정을 해주어야 합니다.
/etc/systemd/resolved.conf 를 아래와 같이 수정해 주었습니다. 공백으로 구분해서 DNS=에 두개의 서버를 추가했습니다.
기존에 설치되어 있던 미디어 위키 페이지에 접속하니 아래와 같은 에러가 발생하고 페이지가 열리지 않습니다.
[php7:error] [pid 12782] [client XXX] PHP Fatal error: Uncaught TypeError: Argument 1 passed to wfReportException() must be an instance of Exception, instance of Error given, called in /...../includes/Exception.php on line 348 and defined in /...../includes/Exception.php:285\nStack trace:\n#0 /...../includes/Exception.php(348): wfReportException(Object(Error))\n#1 [internal function]: wfExceptionHandler(Object(Error))\n#2 {main}\n thrown in /....../includes/Exception.php on line 285
wget https://releases.wikimedia.org/mediawiki/1.34/mediawiki-1.34.1.tar.gz
tar xvzf mediawiki-1.34.1.tar.gz
# 적당한 폴더로 이름 변경합니다.
mv mediawiki-1.34.1 wiki-new
cd wiki-new
# 압축을 풀면 images 폴더가 보이는데, images-new 로 백업해 둡니다.
mv images images-new
# 기존에 사용중이던 images 폴더를 가져옵니다.
cp -r ../wiki-old/images/ .
# 권한을 수정합니다.
find images -type -d | xargs chmod 777
# htaccess 파일을 가져옵니다.
cp images-new/.htaccess images/
# 기존에 사용중이던 LocalSettings.php 파일을 가져옵니다.
cp ../wiki-old/LocalSettings.php .
4. LocalSettings.php 파일 수정 및 업데이트
$wgServer = "https://URL:PORT";
를 추가합니다. 저는 $wgSitename 앞에 추가해 주었습니다.
$wgDefaultSkin = "monoblock"; 뒤에 아래를 추가합니다.
wfLoadSkin( 'MonoBook' );
wfLoadSkin( 'Timeless' );
wfLoadSkin( 'Vector' );
저장하고, 나옵니다. 아래 update.php 를 실행하면 업데이트가 진행됩니다.
cd maintenance
php update.php
마지막에 "Done in 29 s." 이렇게 나오면 성공한 것입니다.
모든 작업이 완료되었으니 이제 사이트에 접속해보면 됩니다 !!
LocalSettings.php 마지막에 아래 설정을 추가하면 문제 발생시, 디버깅에 필요한 자세한 정보를 얻을 수 있습니다.