미디어위키/미디어위키 설치 및 관리

미디어위키(Mediawiki) 1.35 설치 위한 사전 준비 작업

씨실과 날실 2021. 4. 24. 09:00

안녕하세요. 씨실과 날실입니다.

먼저번 글에는 미디어위키 1.35의 주요 특징과 설치할 수 있는 환경에 대해 알아보았습니다.

이번 글부터는 실제로 미디어위키를 설치하는 과정에 들어가게 됩니다.

당연한 말이지만 미디어위키를 바로 설치할 수 있는 것은 아닙니다. 미디어위키를 설치할 수 있는 최소한의 환경을 갖추어 줄 필요가 있습니다. 

 

실습 환경

OS : Ubuntu 20.04.2 LTS

WebServer : Apache2

DB : MariaDB 10.5

PHP : PHP 7.4

미디이어위키 1.35와 관련하여 추후 이루어질 연재는 위 환경을 바탕으로 진행됩니다.

위키피디아 측에서 사용하는 환경과 미디어위키 측에서 보다 많은 정보를 싣고 있는 환경을 기준으로 삼아  위 환경을 미디어위키 설치 실습 환경으로 선정했습니다.

 

물론 위 조건과 상이하더라도 미디어위키 공식 사이트에서 공개한 설치 가능 호환 환경이라면 설치할 수 있습니다.

 


미디어위키 1.35 설치 및 운영을 위한 서버 구축

서버 구축 과정은 과정이 꽤나 복잡하므로 위에 링크를 건 이전 연재들을 참고하시기 바랍니다.

이 글 이후부터는 서버를 구축하였다는 전제 하에 연재를 진행하도록 하겠습니다.

 

서버 구축 후 사전 설치 소프트웨어

서버 구축 후 사전 설치 소프트웨어

APCu 또는 WinCache(옵션)

GD 또는 ImageMagick(필수)

Git(준 필수)

intl PECL 확장(준 필수)

Memcached(옵션)

서버에 미디어위키를 정상적으로 설치하고 원활하게 운영하기 위해서는 미디어위키 설치 전에 먼저 위 패키지들을 설치해주어야 합니다.

 

APCu

APCuAPC 사용자 캐시를 일컫는 것으로 APC에서 opcode를 제거한 것입니다. 서버에서 캐시를 관리하기 위해 사용되는 프로그림입니다. 이것에 대해 보다 자세한 내용은 http://php.net/apcu을 참고하시기 바랍니다.

 

study@study-VirtualBox:~$ sudo apt install php-apcu

데비안/우분투 계열 OS에서는 위 명령으로 PHP를 위한 APCu 익스텐션을 설치할 수 있습니다.

 

study@study-VirtualBox:~$ sudo apt install php-apcu
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
다음의 추가 패키지가 설치될 것입니다 :
  php-apcu-bc
다음 새 패키지를 설치할 것입니다:
  php-apcu php-apcu-bc
0개 업그레이드, 2개 새로 설치, 0개 제거 및 0개 업그레이드 안 함.
50.7 k바이트 아카이브를 받아야 합니다.
이 작업 후 236 k바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까? [Y/n] y
받기:1 http://mirror.kakao.com/ubuntu focal/universe amd64 php-apcu amd64 5.1.18+4.0.11-1build1 [41.8 kB]
받기:2 http://mirror.kakao.com/ubuntu focal/universe amd64 php-apcu-bc amd64 1.0.5-2build1 [8,956 B]
내려받기 50.7 k바이트, 소요시간 0초 (521 k바이트/초)
Selecting previously unselected package php-apcu.
(데이터베이스 읽는중 ...현재 190499개의 파일과 디렉터리가 설치되어 있습니다.)
Preparing to unpack .../php-apcu_5.1.18+4.0.11-1build1_amd64.deb ...
Unpacking php-apcu (5.1.18+4.0.11-1build1) ...
Selecting previously unselected package php-apcu-bc.
Preparing to unpack .../php-apcu-bc_1.0.5-2build1_amd64.deb ...
Unpacking php-apcu-bc (1.0.5-2build1) ...
php-apcu (5.1.18+4.0.11-1build1) 설정하는 중입니다 ...
php-apcu-bc (1.0.5-2build1) 설정하는 중입니다 ...
Processing triggers for php7.4-cli (7.4.3-4ubuntu2.4) ...
Processing triggers for libapache2-mod-php7.4 (7.4.3-4ubuntu2.4) ...
study@study-VirtualBox:~$ 

 

study@study-VirtualBox:~$ php -i | grep 'apcu'

이제 APCu가 정상적으로 설치되었는지 확인해봅시다.

 

study@study-VirtualBox:~$ php -i | grep 'apcu'
/etc/php/7.4/cli/conf.d/20-apcu.ini,
/etc/php/7.4/cli/conf.d/25-apcu_bc.ini
apcu
study@study-VirtualBox:~$ 

위와 같이 출력된다면 정상적으로 설치된 것입니다.

 

GD 또는 ImageMagick

GD 또는 ImageMagick는 리눅스 계열 OS에서 이미지를 처리할 때 사용됩니다.

GD 라이브러리는 일반적으로 PHP에 기본적으로 설치되기 때문에 별다른 작업을 하지 않아도 이미지 처리 작업에 문제가 없습니다.

 

ImageMagick는 GD보다 더 높은 성능과 고급 기능을 지원합니다. 따라서 미디어위키는 시스템에 ImageMagick이 설치되어 있다면 이것을 사용합니다.

단 ImageMagick은 따로 설치해주어야 합니다.

자세한 내용은 위 링크를 참고하시기 바랍니다.

 

Git

Git은 분산버전관리시스템 프로그램입니다. 미디어위키를 설치하는데 필수적인 프로그램은 아닙니다. 이것이 없어도 미디어위키를 설치하고 운영하는데 필요하지는 않습니다.

그러나 미디어위키의 최신 브랜치를 이용하고 업그레이드 후 문제 발생 시 손쉽게 버전을 변경하는 등 체계적으로 버전 관리하기 위해서는 Git으로 관리하는 것이 좋습니다.

Git으로 미디어위키를 설치하고 관리하는 방법에 대해서는 위 링크르 참고하시기 바랍니다.

 

그러나 Git을 통한 미디어위키 관리는 프로그램 개발(정확하게는 개발 과정)에 대해 어느 정도 제반지식이 있는 중급자 이상분들만 활용하시는 것을 권장드리며 초심자인 경우 아래 링크를 참고하실 것을 권장드립니다.

링크

 

intl PECL 확장

intl PECL 확장은 유니코드 정규화를 위해 필요한 PHP 익스텐션입니다. 시스템에 이 확장이 설치되어 있지 않으면 미디어위키는 속도가 느린 pure-PHP 구현을 사용하게 됩니다.

 

Memcached

Memcached는 분산 메모리 캐싱 시스템 프로그램으로 데이터베이스의 부하를 줄여 동적 웹 어플리케이션의 속도를 개선할 때 주로 쓰이게 됩니다.

그러나 Memcached의 사용은 서버 운영에 대한 어느 정도 배경지식을 필요로 하며 DB의 양과 접속자 수가 많을 때 유의미한 성능 개선이 이루어지므로 규모가 작은 서버의 경우 구축 공력에 비해 효과가 없을 수 있습니다.

이러한 이유로 이번 미디어위키 구축 실습에서는 제외하였습니다.

 

 

Composer

Composer는 PHP를 위한 의존성 관리 패키지입니다.

이 Composer는 Git으로 미디어위키를 관리할 때 미디어위키에 쓰이는 외부 라이브러리를 관리할 때 도구로 쓰이게 됩니다. 따라서 Git으로 미디어위키를 관리하지 않고 일반적인 방법으로 설치하는 경우 해당 패키지는 필요하지 않습니다.

우분투 공식 저장소에서는 현재 버전 1.1.0이 올라가 있지만 현재 Composer2가 개발되어 릴리즈되었습니다.

 

Inkscape

Inkscape는 벡터 이미지 처리 프로그램입니다.

미디어위키에서는 svg 이미지 파일을 지원합니다. 그런에 이 이미지를 원활히 사용하기 위해서는 해당 이미지 처리를 지원하는 프로그램이 설치되어 있어야 하는데 그 대표적 프로그램이 잉크스케이프입니다.

 

php-cli / php-xml

php-cli, php-xml 이들 패키지는 미디어위키를 정상적으로 설치하고 운영하는데 필수적인 PHP 익스텐션들입니다.

study@study-VirtualBox:/var/www/html/w$ php maintenance/install.php
Error: Missing one or more required components of PHP.
You are missing a required extension to PHP that MediaWiki needs.
Please install:
 * xml <https://www.php.net/xml>

study@study-VirtualBox:/var/www/html/w$

예를 들어 미디어위키를 인스톨할 때 php-xml가 없으면 위와 같은 오류 메시지가 출력됩니다.

 

그 외에 php-mbstring 등 여러 익스텐션이 필요한데 가장 필수적인 패키지들은 PHP를 설치할 때 함께 설치했습니다. 이에 대한 자세한 설명은 아래 링크를 참고하시기 바랍니다. 

 

 

study@study-VirtualBox:~$ sudo apt install php-apcu php-cli php-intl php-xml imagemagick inkscape git composer

위는 서버 구축 후 미디어위키를 설치하고 구동하는데 가장 필수적인 패키지들을 한번에 설치하는 명령입니다.

 

이외에 미디어위키에 추가 익스텐션을 설치해 사용하는 경우 해당 익스텐션별로 요구하는 패키지가 따로 있을 수 있습니다. 각 해당 익스텐션 페이지에서 요구조건을 확인하시고 필요한 패키지를 설치하고 설정을 해주시면 됩니다.

 

이것으로 미디어위키 설치를 위한 기반 작업은 마무리된 것입니다.