2022년 9월 16일 금요일

MediaWiki 백업/복구

MediaWiki 백업/복구

백업

MediaWiki를 백업 할 때는 데이터베이스와 데이터 파일들, 설정 파일들을 백업하면 된다.

데이터베이스 백업

mysqldump를 이용해 파일로 백업한다. sql 파일로만 백업해도 되는데, 만약을 위해 xml로도 백업하는 것을 mediawiki에서 권장한다.

mysqldump --user=$wgDBuser --password=$wgDBpassword $wgDBname > <filename>.sql

각각은 미디어 위키의 DB에 대한 계정, 비밀번호, DB 이름으로 읽기 쉽게 미디어위키 디렉토리의 LocalSettings.php 파일의 해당 변수값을 사용하면 된다.
xml로 저장을 하려면 --xml 옵션을 붙여 저장하면 된다.
mysqldumpstdout으로 출력하므로 파일로 redirection 해 백업한다.

데이터 파일 및 설정 파일 백업

미디어위키 디렉토리 내부에 저장되어 있는 파일들을 따로 압축해야 한다. 설치 후 별도로 수정하거나 추가된 파일들을 모두 백업하면 된다고 생각하면 된다.

필수적 백업 사항

작성한 글 관련해서는 이미지와 첨부 파일들이 images 디렉토리에 저장되어 있고, 위키 설정은 LocalSettings.php 파일에 저장되어 있다. 이 둘은 반드시 백업에 포함되어야 한다.

옵션 백업 사항

별도로 추가한 확장이나 스킨은 각각 extentionsskins 디렉토리에 설치 되는데, 이를 따로 백업 해도 되고, 업데이트 시 별도로 설치해도 된다. 각 extenstions나 skins에서 따로 설치한 파일이 있는 경우 해당 파일들은 반드시 백업 해 두어야 한다.
모든게 귀찮다면 디렉토리 통째로 백업해도 된다.

설치/복구

사전 준비

웹서버, 데이터베이스, PHP를 설치해야 하고 옵션으로 기타 php 모듈들과 git, 이미지 처리 엔진 등을 설치해야 한다. nginx, mariadb를 사용할 때 armbian 기준으로는 다음 명령으로 설치할 수 있다. nginx를 사용할 때는 php-fpm을 반드시 설치해야 하는 것 같다.

sudo apt install nginx mariadb-server php php-mysql php-xml php-mbstring php-apcu php-intl php-gd php-cli php-curl git php-bcmath php-fpm imagemagick inkscape composer

데이터베이스 설정

루트 계정을 생성/암호 설정을 하고 DB를 설정/생성한 뒤 사용자 계정을 추가한다.

sudo mysql_secure_installation
sudo mysql -u root -p
CREATE DATABASE <dbname>;
CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';
GRANT ALL PRIVILEGES ON <dbname>.* TO '<username>'@'localhost' WITH GRANT OPTION;
QUIT;
sudo systemctl restart mariadb

<dbname>, <username>, <password>는 추후 LocalSettings.php 파일의 $wgDBname, $wgDBuser, $wgDBpassword변수에 할당해 주면 된다.

기존 백업한 sql 파일로부터 복원한다면 다음 명령을 사용한다.

mysql -u $wgDBuser -p $wgDBname < <filename>

웹서버, PHP 설정

nginx
  1. 사용 환경에 맞게 /etc/nginx/nginx.conf 파일을 수정한다.
  2. /etc/nginx/sites-available 디렉토리 내에 새 서버 파일을 생성한다.
    • 웹서버 포트, 서버 이름, 서버 파일 위치와 접근성을 설정한다.
  3. /etc/nginx/sites-enabled 디렉토리 내에 앞서 생성한 서버 파일의 링크를 만들어 둔다.
php-fpm

/etc/php/<version>/fpm/php.ini 파일을 사용 목적에 맞게 설정한다.

설치

mediawiki 홈페이지에서 다운받아 웹서버 설정 파일에 지정한 곳에 압축을 해제하면 된다.
이후 LocalSettings.php 파일에서 미디어 위키 설정을 하면 된다. 기존 백업해 둔 파일이 있는 경우 images 디렉토리와 LocalSettings.php 파일을 덮어 쓴다.

확장 및 스킨

확장 및 스킨은 미디어위키 설치 디렉토리에서 composer를 이용해 설치하거나, 각 디렉토리(extenstions, skins)에 직접 압축을 풀어 설치할 수 있다. 설치한 확장/스킨은 LocalSettings.php 파일에 등록하고 필요한 경우 추가 설정을 한 뒤 사용할 수 있다. 스킨의 layout처럼 별도 설정한 경우 사전에 따로 백업해 두어야 하고, 복원시 해당 디렉토리에 넣어 주면 된다.

개인적으로 사용 중인 확장
  • Bootstrap
  • BetaFeatuers
  • DarkMode
  • Popups
개인적으로 사용 중인 스킨
  • chameleon
    • layouts/private.xml 별도로 사용 중

마무리

미디어 위키 설치 디렉토리 내 모든 파일 소유권을 www-data:www-data로 변경하고, 미디어위키 디렉토리의 권한을 g+w로 변경한다.

이후 관련 서비스를 재시작하고 접속 해 보면 미디어위키가 뜬다. 복원한 경우 기존과 동일하게 뜬 것을 확인할 수 있다.

sudo systemctl restart php<version>-fpm
sudo systemctl restart nginx

댓글 없음:

댓글 쓰기