WordPress 업로드 상한을 변경하는 방법
WordPress 미디어 업로드 상한을 올리는 5가지 방법을 설명합니다. 서버 환경과 이용 중인 호스팅에 맞춰 최적의 방법을 선택하세요.
현재 업로드 상한 확인하기
WordPress 관리 화면의 '미디어' → '새로 추가' 화면에 '최대 업로드 크기: ○○MB'가 표시됩니다. 또한 '사이트 건강' 화면의 '정보' 탭에서도 PHP 설정값을 확인할 수 있습니다. WordPress 기본값은 PHP 설정에 따라 2MB~10MB 정도로 제한되는 경우가 많습니다.
업로드 상한은 다음 세 가지 설정값 중 가장 작은 값으로 결정됩니다.
upload_max_filesize— 파일 하나당 최대 크기post_max_size— POST 요청 전체의 최대 크기(upload_max_filesize보다 커야 함)memory_limit— PHP가 사용할 수 있는 메모리 상한
방법 1: wp-config.php 편집
가장 간단한 방법입니다. WordPress 루트 디렉터리의 wp-config.php에 다음 한 줄을 추가합니다.
@ini_set('upload_max_filesize', '64M');
다만 서버 설정에서 ini_set이 비활성화되어 있으면 효과가 없습니다. 그런 경우에는 다른 방법을 시도하세요. 더 확실하게 설정하려면 아래처럼 define을 사용하는 방법도 있습니다.
define('WP_MEMORY_LIMIT', '256M');
이 설정은 WordPress의 메모리 상한을 올리지만 파일 업로드 상한에는 직접 영향을 주지 않습니다. 업로드 상한을 변경하려면 다음 방법을 함께 사용하세요.
방법 2: .htaccess 편집(Apache)
Apache 기반 서버에서 모듈(mod_php)을 사용하는 경우, WordPress 루트 디렉터리의 .htaccess 파일에 다음을 추가합니다.
php_value upload_max_filesize 64M
php_value post_max_size 128M
php_value memory_limit 256M
php_value max_execution_time 300
php_value max_input_time 300
주의: CGI판 PHP나 FastCGI를 사용하는 환경(대부분의 공유 호스팅)에서는 .htaccess로 PHP 설정을 변경할 수 없으므로 이 방법을 쓸 수 없습니다. 500 에러가 발생하면 추가한 줄을 삭제하세요.
방법 3: php.ini / .user.ini 편집
PHP 설정 파일을 직접 편집하는 방법입니다. 서버의 PHP 설정을 변경하는 가장 확실한 방법이지만 접근 권한이 필요합니다.
php.ini의 경우
upload_max_filesize = 64M
post_max_size = 128M
memory_limit = 256M
max_execution_time = 300
max_input_time = 300
.user.ini의 경우(공유 서버용)
호스팅 등에서 php.ini를 직접 편집할 수 없는 경우에는 WordPress 루트 디렉터리에 .user.ini 파일을 만들어 같은 내용을 기재합니다. 반영에는 수 분~수 시간이 걸릴 수 있습니다.
upload_max_filesize = 64M
post_max_size = 128M
memory_limit = 256M
방법 4: functions.php에 필터 추가
테마의 functions.php에 필터 훅을 추가하는 방법입니다. PHP 측 설정을 변경할 수 없을 때 사용할 수 있지만, 서버 측 PHP 설정을 넘을 수는 없습니다.
@ini_set('upload_max_filesize', '64M');
@ini_set('post_max_size', '128M');
@ini_set('memory_limit', '256M');
@ini_set('max_execution_time', '300');
@ini_set('max_input_time', '300');
또는 WordPress 필터로 상한을 설정할 수 있습니다.
add_filter('upload_size_limit', function($size) {
return 64 * 1024 * 1024; // 64MB
});
주의: 이 방법은 WordPress 측 상한만 변경하며, PHP 자체의 upload_max_filesize가 그보다 작으면 PHP 측 제한이 우선됩니다.
방법 5: 호스팅 관리 화면에서 변경
국내 주요 호스팅에서는 관리 화면에서 PHP 설정을 변경할 수 있습니다. 가장 안전하고 확실한 방법입니다.
Xserver(엑스서버)
- 서버 패널에 로그인
- 'PHP' → 'php.ini 설정' 선택
- 대상 도메인 선택
- 'php.ini 설정 변경' 탭 열기
upload_max_filesize와post_max_size를 원하는 값으로 변경- '확인 화면으로 진행' → '변경하기' 클릭
ConoHa WING
- 컨트롤 패널에 로그인
- '사이트 관리' → '사이트 설정' → '응용 설정'
- 'PHP 설정'의
upload_max_filesize변경
사쿠라 렌탈 서버
- 컨트롤 패널에 로그인
- '스크립트 설정' → 'php.ini 설정'
- 설정값을 변경하고 저장
설정 변경 후 테스트
설정을 변경했다면 실제로 큰 파일을 업로드해 동작을 확인합시다. DevLab의 임계값 테스트 파일을 사용하면 설정한 상한값의 경계값 테스트를 정확히 수행할 수 있습니다.
| 테스트 내용 | 확인 포인트 |
|---|---|
| 상한 미만의 파일(예: 설정이 64MB라면 63MB) | 정상적으로 업로드될 것 |
| 상한과 정확히 같은 파일(예: 64MB) | 업로드 성공 여부를 확인 |
| 상한을 초과하는 파일(예: 65MB) | 적절한 에러 메시지가 표시될 것 |
문제 해결
- 설정이 반영되지 않음: 웹 서버(Apache/Nginx) 재시작, PHP 프로세스 재시작이 필요한 경우가 있습니다.
- 500 에러 발생:
.htaccess의 기재 실수나 서버가 지원하지 않는 설정이 없는지 확인하세요. - 413 에러 발생: Nginx의 경우
client_max_body_size설정도 확인하세요(nginx.conf에서 설정). - 타임아웃: 대용량 파일 업로드에서는
max_execution_time과max_input_time도 올려야 합니다.