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

미디어위키(Mediawiki) 파일 업로드 04(이미지 업로드 설정)

씨실과 날실 2019. 4. 13. 10:00

미디어위키는 파일 업로드 기능을 활성화한 경우, 기본값으로 위키에 로그인한 사용자들은 모두 이미지 파일을 올릴 수 있도록 설정되어 있습니다.

물론 이 설정은 위키 관리자가 변수를 재설정함으로써 업로드 권한을 제한하거나 부여할 수 있으며, 이미지 파일 뿐만 아니라 다른 유형의 파일들도 업로드하도록 설정할 수도 있습니다. 이에 대한 내용들은 위의 관련 게시물을 참고하시면 됩니다.

이번에는 이미지 파일 업로드에 대하여 다루도록 하겠습니다.

이미지 파일 업로드 전제조건

이미지 파일을 위키에 올리기 위해서는 먼저 파일 업로드가 설정되어 있어야 하고, 위키 사용자에게 파일 업로드 권한이 부여되어 있어야 하며, 마지막으로 업로드 가능한 파일에 이미지 파일 형식이 설정되어 있어야 합니다.

이 세 설정을 제어하는 변수가 $wgEnableUploads와 $wgGroupPermissions 그리고 $wgFileExtensions입니다.

## 파일 업로드 활성화 ##

$wgEnableUploads = true; // 기본값은 false

기본값은 false로 비활성화되어 있습니다.

## 등록 사용자 파일 업로드 권한 부여 ##

$wgGroupPermissions['user']['upload'] = true; // 기본값이므로 따로 추가할 필요 없음

만약 사용자 그룹별로 권한을 재정의하려면 이 변수를 적절히 수정해주시면 됩니다. 이와 관련한 내용은 아래의 링크를 참고하시기 바랍니다.

참고로 위 코드는 미디어위키의 기본값으로 LocalSettings.php 파일에 따로 설정되어 있지 않습니다.

## 업로드 가능 파일 형식 설정 ##

$wgFileExtensions[] = 'tiff'; // 추가할 파일 형식을 'tiff' 자리에 대신 적어주면 됨

$wgFileExtensions 이 변수는 정의 방식을 세 가지로 나눌 수 있습니다. 위 코드는 그 셋 중 가장 간편한 방식입니다.

정의 방식에 대한 자세한 내용은 아래  링크를 참고하시기 바랍니다.

기본적으로 미디어위키는 png, gif, jpg, jpeg, webp 이렇게 5개의 파일 형식을 지원하고 있습니다. 따라서 위 형식들만 허용할 것이라면 LocalSettings.php 파일에 따로 설정할 필요가 없습니다.

파일 처리 관련 매개 변수

이 내용은 양이 많아 미디어위키 설명 원문 문서 링크를 걸어 놓도록 하겠습니다. 익히시면 미디어위키 활용에 유용하므로 참고하시기 바랍니다.

섬네일(= 미리보기, 축소판, 마중그림)

확장 이미지 구문

업로드된 이미지 파일의 썸네일은 미디어 위키의 확장 이미지 구문을 이용해 자동으로 축소판으로 볼 수 있습니다. 미디어위키의 확장 이미지 구문은 아래 링크를 참고하시기 바랍니다.

필요 프로그램

이미지 섬네일은 GD 그래픽 라이브러리나 ImageMagick를 필요로 합니다.

GD 그래픽 라이브러리는 PHP를 설치할 때 기본적으로 같이 설치됩니다. 만약 서버에 ImageMagick이 설치되어 있지 않다면 미디어위키는 GD 그래픽 라이브러리를 섬네일을 생성하기 위한 기본 프로그램으로 설정합니다.

만약 둘 다 설치되어 있다면 미디어위키는 ImageMagick을 섬네일 생성을 위한 기본 프로그램으로 설정하는데 더 좋은 품질의 섬네일(미리보기)를 생성할 수 있기 때문입니다.

위 그림처럼 미디어위키 설치시 사용 환경 검사를 통해 섬네일 생성을 위한 프로그램이 서버에 설치되어 있는지 확인할 수 있습니다.

개인적으로 ImageMagick이 설치되어 있지 않다면 미디어위키를 설치하기 전에 설치할 것을 추천합니다.

우분투의 경우 터미널에서 아래의 명령을 실행함으로써 손쉽게 설치할 수 있습니다.

study@study-VirtualBox:~$ sudo apt install imagemagick

만약 미디어위키 설치 후 ImageMagick를 설치하게 되었다면 LocalSettings.php 파일에 아래와 같이 구문을 추가해주도록 합니다.

$wgUseImageMagick = true;
$wgImageMagickConvertCommand = "ImageMagick 호출 절대 경로";

$wgImageMagickConvertCommand 변수는 ImageMagick 호출 절대 경로를 적어주는 구문입니다.

ImageMagick 호출 절대 경로를 모르는 경우 터미널에서 아래의 명령을 실행하여 확인할 수 있습니다.

study@study-VirtualBox:~$ which -a convert
/usr/bin/convert
study@study-VirtualBox:~$ 
확인한 경로를 $wgImageMagickConvertCommand 변숫값에 적어주시면 됩니다.

만약 미디어위키 설치 때 이미 ImageMagick을 사용할 수 있다면 LocalSettings.php 파일에 아래의 구문이 자동으로 설정됩니다.

## To enable image uploads, make sure the 'images' directory
## is writable, then set this to true:
$wgEnableUploads = true;
$wgUseImageMagick = true;
$wgImageMagickConvertCommand = "/usr/bin/convert";

참고로 $wgEnableUploads = true;는 파일 업로드 활성화 설정 구문입니다.

이미지 파일 형식

GIF

GIF(Graphics Interchange Format)는 비트맵 그래픽 파일 포맷 중 하나로, JPEG와 함께 웹상에서 굉장히 널리 쓰이는 이미지 파일 포맷입니다.

Windows에서 GIF 애니메이션을 미리보기하려면 위에서 설명한대로 ImageMagick을 설치해야합니다.

물론 리눅스 등에서는 그럴 필요 없습니다.

JPEG

JPEG(Joint Photographic Experts Group)는 비트맵 그래픽 파일 포맷으로 GIF와 함께 웹상에서 굉장히 널리 쓰이고 있는 이미지 파일 형식입니다.

그러나 JPEG은 보통 손실 압축 방식의 이미지 파일 포맷이기 때문에 이미지 품질은 낮으며 포맷 변환 등의 작업을 하게 되면 그 품질은 더욱 저하됩니다.

TIFF

TIFF((Tagged Image File Format)는 꼬리표(tag)가 붙은 화상(이미지) 파일 형식이라는 뜻으로, 미국의 앨더스(Aldus)사(어도비 시스템즈사로 흡수 합병됨)와 마이크로소프트(Microsoft)사가 공동 개발한 래스터 그래픽스 화상 파일 형식입니다.

TIFF 파일을 업로드하고, 해당 형식 파일의 섬네일을 생성하기 위해서는 아래와 같은 코드를 LocalSettings.php 파일에 추가해주어야 합니다.

## TIFF 파일 업로드 설정 ##
$wgFileExtensions [] = 'tif';
$wgFileExtensions [] = 'tiff';

## TIFF 파일을 PNG 파일로 섬네일 생성 ##
$wgTiffThumbnailType = array( 'png', 'image/png' );

## TIFF 파일을 JPEG 파일로 섬네일 생성 ##
$wgTiffThumbnailType = array( 'jpg', 'image/jpeg' );

섬네일 파일 형식은 PNG와 JPEG 둘 중 하나만 선택하여 사용해야 합니다.

만약 서버 자원이 충분하다면 PNG를 쓰셔도 됩니다만 보통은 JPEG을 섬네일 파일 형식으로 사용합니다.

PNG 파일은 무손실 이미지 파일이지만 사진 파일에 효율적이지 못합니다. 이에 반해 JPEG 파일은 사진 파일에 효율적이지만 투명화를 지원하지 않으며, 다이어그램에 문제가 있는 것으로 알려져 있습니다.

SVG

SVG(Scalable Vector Graphics)는 2차원 벡터 그래픽을 표현하기 위한 XML 기반의 파일 형식입니다.

이 파일 형식을 미디어위키에서 지원하기 위해서는 몇 가지 변수를 설정해주어야 합니다. 아래는 그 코드들입니다.

SVG 관련 설정 코드

## SVG 파일 업로드 설정 ##
$wgFileExtensions[] = 'svg';

## ImageMagick 사용 설정 ##
$wgUseImageMagick = true;

## ImageMagick 호출 절대 경로 설정 ##
$wgImageMagickConvertCommand = "/usr/bin/convert";

## svg 파일에 <title> 태그의 문자를 허용##
$wgAllowTitlesInSVG = true;

위 코드에서 세번째 코드까지는 필수 설정 코드이고, 네번째는 추가 설정 코드입니다.

서버에 ImageMagick가 설치되어 있는 상태에서 미디어위키를 설치하는 경우, 두번째 코드와 세번째 코드는 자동으로 설정될 것입니다.