작은숲:위키노트/미디어위키 업로드 설정

큰숲백과, 나무를 보지 말고 큰 숲을 보라.
Utolee90 (토론 | 기여)님의 2021년 3월 28일 (일) 12:52 판 (문자열 찾아 바꾸기 - "<source" 문자열을 "<syntaxhighlight" 문자열로)

미디어위키를 설치하면 기본값으로 파일 업로드가 되지 않도록 되어 있다. 하지만 몇 가지 확인과 설정을 해서 파일을 업로드 할 수 있도록 만들 수 있다.

파일을 저장할 디렉토리의 소유자 변경

파일을 업로드 하기 위해서는 서버 콘솔에 접근할 수 있어야 한다. 파일을 저장할 디렉토리에 웹 서버가 구동되는 계정으로 쓰기 권한이 있어야 하기 때문이다. 서버 콘솔에 접근할 수 없다면 안타깝지만 미디어위키에서 파일을 업로드 할 방법이 없다. FTP나 SFTP로 접근이 가능하다면 아래에 설명할 디렉토리의 퍼미션을 수정하는 방법을 쓸 수 있지만 그리 좋은 방법은 아니다. 만약 웹 호스팅 서비스를 사용 중이라면 호스팅 업체에 문의하도록 하자. 업로드한 파일을 저장하는 디렉토리는 미디어위키가 설치된 디렉토리 아래의 images 디렉토리이다. 이 디렉토리가 웹 서버가 구동되는 계정으로 쓸 수 있도록 만들어야 한다. root 계정을 사용할 수 있다면 images 디렉토리의 소유자를 웹 서버가 구동되는 계정으로 만들어준다. <syntaxhighlight lang="console">

  1. chown nobody images

</source> 웹 서버가 구동되는 계정은 서버마다 다르니 ps -ef | grep httpd | grep -v grep 명령으로 미리 확인하도록 한다. 만약 root 계정을 쓸 수 없다면 위험한 방법이지만 images 디렉토리의 퍼미션을 다른 사용자가 쓸 수 있도록 해야 한다. 하지만 이건 그리 추천할 만한 방법은 아니다. root 계정을 사용할 수 없지만 꼭 파일을 올려야 한다면 모르겠지만, 그렇지 않다면 root 계정으로 위 방법대로 하는 것이 좋다. <syntaxhighlight lang="console">

  1. chmod o+w images

</source> 디렉토리의 퍼미션은 757이나 777로 해도 된다.

미디어위키 설정 추가

이제 LocalSettings.php 파일에 아래 내용을 추가하거나 수정한다. <syntaxhighlight lang="php">

    1. To enable image uploads, make sure the 'images' directory
    2. is writable, then set this to true:

$wgEnableUploads = true; $wgUseImageMagick = true; $wgImageMagickConvertCommand = "/usr/bin/convert"; </source> $wgEnableUploads 변수의 값을 true로 변경하거나 추가하면 이제부터 파일 업로드가 가능해진다. 설치한 위키에 접속하면 화면 왼쪽 메뉴에 '파일 올리기' 기능이 새로 나타난 것을 볼 수 있을 것이다. $wgUseImageMagick 변수와 $wgImageMagickConvertCommand 변수는 그림 파일을 올렸을 때 적절한 크기의 섬네일을 만들기 위한 설정이다. 이 설정을 쓰기 위해서는 서버에 ImageMagick 패키지가 설치되어 있어야 한다.

업로드를 허용할 파일 확장자 설정

미디어위키에서는 기본값으로 png, gif, jpg, jpeg 파일만 업로드할 수 있다. 이 외의 다른 파일 종류를 업로드 하려면 LocalSettings.php 파일에 설정을 추가해야 한다. <syntaxhighlight lang="php"> $wgFileExtensions[] = 'zip'; $wgFileExtensions[] = 'gz'; $wgFileExtensions[] = 'doc'; $wgFileExtensions[] = 'xls'; $wgFileExtensions[] = 'pdf'; </source> $wgFileExtensions 변수는 업로드를 허용할 확장자를 저장하고 있는 배열이다. 이 배열에 위와 같이 파일 확장자를 추가하면 된다.

파일을 저장할 디렉토리를 다른 디렉토리로 변경

업로드 한 파일을 저장할 디렉토리를 기본 디렉토리인 images 디렉토리가 아닌 다른 디렉토리로 바꿀 수도 있다. <syntaxhighlight lang="php">

    1. The URL path to static resources (images, scripts, etc.)

$wgResourceBasePath = $wgScriptPath; ... // upload directory $wgUploadDirectory = "/var/www/mediawiki/files"; $wgUploadPath = "$wgResourceBasePath/files"; </source> $wgUploadDirectory 변수에는 파일을 저장할 실제 디렉토리의 경로를, $wgUploadPath 변수에는 웹에서 접근할 때의 경로를 지정한다. 물론 이렇게 하더라도 위에서 한 것처럼 파일을 저장할 디렉토리에 웹 서버가 구동되는 계정으로 쓸 수 있어야 한다. 이 변수들을 써서 미디어위키가 설치된 디렉토리가 아닌 다른 경로에 있는 디렉토리를 지정할 수도 있다. 다만 이 경우에는 웹에서 접근할 수 있도록 파일 디렉토리의 심볼릭 링크를 만들거나 웹 서버 설정에서 별칭(Alias)을 지정해줘야 한다.

참고

이 작은숲 문서의 출처는 위키노트의 위키노트/미디어위키 업로드 설정 문서입니다.