귀하는 로그인되어 있지 않습니다. 이대로 편집하면 귀하의 IP 주소가 편집 기록에 남게 됩니다.스팸 방지 검사입니다. 이것을 입력하지 마세요![[파일:가온_위키_파일_업로드_페이지.png]] ==개요== [[미디어위키]] 중 파일 업로드와 관련된 내용입니다. 미디어위키로 위키를 운영하던 도중 문제가 발생했을 경우, 도움이 되길 바라며 글을 작성하였습니다. ==파일 업로드== ===기본값=== 미디어위키를 설치하고 난 직후, 즉 기본값으로 설정된 값은 다음과 같습니다. * 업로드 용량 제한량 : 100MB * 업로드 가능한 확장자 : 'png', 'gif', 'jpg', 'jpeg', 'webp'<ref>미디어위키 버전에 따라 기본값이 바뀌어 왔습니다. 1.3부터 1.26까지는 'png', 'gif', 'jpg', 'jpeg'만, 1.2는 'png', 'jpg', 'jpeg', 'ogg'만 올릴 수 있게 기본값으로 설정되어져 있습니다.</ref> ===업로드 전 설정=== 파일 업로드 전에 아래의 것들이 설정이 되어져 있는지 확인해 봅시다. 만약 아래의 것들이 설정 되어 있지 않다면, 설정해 주시기 바랍니다. ====PHP 설정==== php.ini 파일에 다음과 같이 설정되어 있는지 확인해 봅시다. <syntaxhighlight lang='ini'> file_uploads = On </syntaxhighlight> 우분투 20.04 + apache2 기준 php.ini는 다음의 위치에 있습니다.<ref>두군데에 있으며, apache2 폴더에 있는 것은 웹상(일반적인 업로드)에서 사용하는 설정값이며, cli 폴더에 있는 것은 쉘상에서 사용하는 설정값입니다. 둘 다 설정하는 것을 권장합니다.</ref><ref>경로 중 7.4는 php의 버전을 의미하는 것이므로, 자신이 사용하는 버전을 해당 경로에 입력하시기 바랍니다.</ref> 거의 대부분의 호스팅, [[데비안 apt|apt]]나 [[RHEL yum|yum]]으로 설치한 경우, 기본값으로 설정되어 있습니다. 만약 아래의 설정들을 다 했는데도 불구하고 업로드가 되지 않는다면 확인하시기 바랍니다. php.ini를 변경한 경우, 반드시 환경에 따라 apache2나 PHP-FPM을 재시작하여 설정이 반영되도록 합니다. =====apache2 폴더===== <syntaxhighlight lang='console'> root@gaon:/etc/php/7.4/apache2# ls conf.d php.ini </syntaxhighlight> =====cli 폴더===== <syntaxhighlight lang='console'> root@gaon:/etc/php/7.4/cli# ls conf.d php.ini </syntaxhighlight> ====소유권 및 퍼미션 설정==== =====소유권 및 그룹 변경===== 업로드 되는 폴더(images)의 소유권과 그룹을 변경해 줍니다. <syntaxhighlight lang='console'> root@gaon:/var/www/html/w# chown -R www-data:www-data images </syntaxhighlight> =====퍼미션===== 폴더의 퍼미션을 755로 변경해 줍니다.<ref>777로 변경해도 상관은 없지만, 보안상 권장하지 않습니다.</ref> <syntaxhighlight lang='console'> root@gaon:/var/www/html/w# chmod -R 755 images </syntaxhighlight> ====LocalSettings.php 설정값 변경==== [[미디어위키/LocalSettings.php|LocalSettings.php]] 설정 값을 변경해 줍니다. 대부분 웹 인스톨러로 설치를 하게 되는데, 기본값으로 업로드에 체크가 되어 있기 때문에 해당 부분이 있는지 확인하시기 바랍니다. <syntaxhighlight lang='PHP'> $wgEnableUploads = true; </syntaxhighlight> =====$wgHashedUploadDirectory===== 파일 업로드 시 업로드 될 폴더의 위치를 분할하여 업로드 할 것인지에 대한 설정입니다. 자세한 내용은 [[미디어위키/$wgHashedUploadDirectory]] 문서를 참고하세요! ===업로드 확장자=== ====확장자 추가==== 기본값으로 설정된 [[#기본값|업로드 확장자 기본값]] 외의 확장자를 가진 파일을 업로드 하기 위해서는 [[미디어위키/LocalSettings.php|LocalSettings.php]] 설정 값을 변경해야 합니다. =====1개씩 입력===== 확장자명을 1개씩 입력하는 방법입니다. <syntaxhighlight lang='PHP'> $wgFileExtensions[] = 'docx'; $wgFileExtensions[] = 'xls'; $wgFileExtensions[] = 'pdf'; $wgFileExtensions[] = 'pptx'; </syntaxhighlight> 위와 같이 <code>$wgFileExtensions[] = '확장자명';</code>으로 하나씩 입력 할 수 있습니다. =====여러개 입력===== $wgFileExtensions로 여러개를 입력할 경우 줄이 길어지는 단점이 있기 때문에, 여러개의 확장자를 추가하기 위해서는 아래의 방식으로 추가하기를 권장합니다. ======array====== <syntaxhighlight lang='PHP'> $wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'doc', 'xls', 'mpp', 'pdf', 'ppt', 'tiff', 'bmp', 'docx', 'xlsx' ); </syntaxhighlight> ======array_merge====== <syntaxhighlight lang='PHP'> $wgFileExtensions = array_merge( $wgFileExtensions, array( 'doc', 'xls', 'mpp', 'pdf', 'ppt', 'xlsx', 'jpg' ) ); </syntaxhighlight> ====확장자 블랙리스트==== 특정 확장자들은 보안에 문제가 될 수 있기 때문에 블랙리스트로 설정되어 업로드 할 수 없습니다. 기본값은 다음과 같습니다. <syntaxhighlight lang='PHP'> $wgFileBlacklist = [ # HTML may contain cookie-stealing JavaScript and web bugs 'html', 'htm', 'js', 'jsb', 'mhtml', 'mht', 'xhtml', 'xht', # PHP scripts may execute arbitrary code on the server 'php', 'phtml', 'php3', 'php4', 'php5', 'phps', # Other types that may be interpreted by some servers 'shtml', 'jhtml', 'pl', 'py', 'cgi', # May contain harmful executables for Windows victims 'exe', 'scr', 'dll', 'msi', 'vbs', 'bat', 'com', 'pif', 'cmd', 'vxd', 'cpl', ]; </syntaxhighlight> =====블랙리스트 확장자 업로드 설정===== 만약 블랙리스트에 있는 확장자를 가진 파일을 업로드 할 수 있게 설정하기 위해서는 다음과 같이 입력하면 됩니다. 권장하지는 않습니다. <syntaxhighlight lang='PHP'> $wgFileExtensions[] = 'dll'; $wgFileBlacklist = array_diff( $wgFileBlacklist, array ('dll') ); </syntaxhighlight> ===업로드 용량 설정=== 기본적으로 php.ini에 명시된 업로드 값을 초과하여 업로드 할 수 없습니다.<ref>[[라이믹스]]의 분할 업로드와 같이 파일을 분할하여 업로드 하는 경우 제외</ref> 아래의 내용은 php.ini의 값보다 낮은 용량을 입력하는 것을 전제로 설명합니다. <syntaxhighlight lang='PHP'> $wgUploadSizeWarning = 2147483647; $wgMaxUploadSize = 2147483647; </syntaxhighlight> <code>$wgUploadSizeWarning</code>는 설정된 값보다 큰 파일을 업로드 할 때, 경고를 표시하는 것입니다. 만약 설정값이 0이라면, 경고하지 않습니다. <code>$wgMaxUploadSize</code>로 파일 업로드 용량을 제한 할 수 있습니다. 이 값은 2147483647바이트, 즉 2GB이 최댓값입니다. 이 이상의 파일을 업로드 할 수 없습니다. ===URL로 업로드=== 사용자의 PC에서 파일을 업로드 하는 것이 아닌, URL을 통해 파일을 업로드 할 수 있게 만들 수 있습니다. 이때 서버에서 해당 URL이 있는 서버로 접속 할 수 있어야 합니다. 먼저 <syntaxhighlight lang='PHP'> $wgAllowCopyUploads = true; </syntaxhighlight> 로 설정해야 합니다. 이후 권한 설정을 해야 설정이 완료됩니다. <syntaxhighlight lang='PHP'> $wgGroupPermissions['user']['upload_by_url'] = true; </syntaxhighlight> 위와 같이 입력하면, 로그인한 유저는 모두 URL로 파일을 업로드 할 수 있게 됩니다. ==각주== 편집 요약 가온 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 가온 위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요. 또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요! 취소 편집 도움말 (새 창에서 열림)