ubuntu를 18.04로 업그레이드하면서 php버전이 7.2.x 로 올라갔습니다.

기존에 설치되어 있던 미디어 위키 페이지에 접속하니 아래와 같은 에러가 발생하고 페이지가 열리지 않습니다.

 

 [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

 

미디어 위키 버전을 올려 주어야 합니다. 아래 페이지를 참고하고 진행했습니다.

 

https://www.mediawiki.org/wiki/Manual:Upgrading/ko

 

메뉴얼:업그레이드 - MediaWiki

기본 개요 파일 전송 다음 중 파일을 전송할 방법을 선택하십시오. 준비단계 미디어위키에 포함된 UPGRADE 텍스트 문서를 읽으십시오. 요구사항을 확인 배포 통지문을 읽기 기존 파일과 데이터 베이스를 백업 새 파일의 압축을 풀기 확장 프로그램을 업그레이드 업데이트 스크립트를 사용하여 데이터베이스를 확인하시오 업데이트를 시험해 보시오. Remove leftovers from old installations 요구사항 확인하기 미디어 위키1.34는 다음 사항을

www.mediawiki.org

 

 

 

크게, 아래의 순서로 진행됩니다.

1. 만일의 사태를 대비해서 사용중이던 DB 백업

2. apache2 관련 모듈 설치 및 재시작

3. mediawiki 다운로드 하고 LocalSettings.php 카피

4. LocalSettings.php 수정

 

1. DB 백업 : 만일의 사태를 대비한 것이니 꼭 백업해 둡니다.

mysqldump --user=wikidb_user --password=wikidb_userpassword wikidb > file.sql
mysqldump --user=wikidb_user --password=wikidb_userpassword wikidb --xml > file.xml

 

2. 아래 커맨드로 아파치2 관련 모듈을 설치해줍니다.

sudo apt-get install -y imagemagick php7.2-fpm php7.2-intl php7.2-xml php7.2-curl php7.2-gd php7.2-mbstring php7.2-mysql php7.2-mysql php-apcu php7.2-zip
sudo apache2 restart

3. 미디어위키 최신버전을 다운 받고, 기존 설정을 카피 해줍니다.

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 마지막에 아래  설정을 추가하면 문제 발생시, 디버깅에 필요한 자세한 정보를 얻을 수 있습니다.

 

$wgShowExceptionDetails = true;

 

 

* DB 연결이 안될 경우 아래 명령을 실행해줍니다.

sudo php5enmod mysql

sudo service apache2 restart

728x90
반응형

+ Recent posts