콘텐츠로 건너뛰기

WordPress 업로드 상한을 변경하는 방법

WordPress 미디어 업로드 상한을 올리는 5가지 방법을 설명합니다. 서버 환경과 이용 중인 호스팅에 맞춰 최적의 방법을 선택하세요.

실효 제한 = 모든 계층의 최솟값 nginx / Apache (proxy) client_max_body_size php.ini post_max_size whole POST php.ini upload_max_filesize per file WP_MEMORY_LIMIT (wp-config) PHP memory 위에서 아래로 각 계층을 통과. 최솟값이 실효 제한
그림: WordPress 업로드 제한을 결정하는 설정 계층

현재 업로드 상한 확인하기

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(엑스서버)

  1. 서버 패널에 로그인
  2. 'PHP' → 'php.ini 설정' 선택
  3. 대상 도메인 선택
  4. 'php.ini 설정 변경' 탭 열기
  5. upload_max_filesizepost_max_size를 원하는 값으로 변경
  6. '확인 화면으로 진행' → '변경하기' 클릭

ConoHa WING

  1. 컨트롤 패널에 로그인
  2. '사이트 관리' → '사이트 설정' → '응용 설정'
  3. 'PHP 설정'의 upload_max_filesize 변경

사쿠라 렌탈 서버

  1. 컨트롤 패널에 로그인
  2. '스크립트 설정' → 'php.ini 설정'
  3. 설정값을 변경하고 저장

설정 변경 후 테스트

설정을 변경했다면 실제로 큰 파일을 업로드해 동작을 확인합시다. DevLab의 임계값 테스트 파일을 사용하면 설정한 상한값의 경계값 테스트를 정확히 수행할 수 있습니다.

테스트 내용 확인 포인트
상한 미만의 파일(예: 설정이 64MB라면 63MB)정상적으로 업로드될 것
상한과 정확히 같은 파일(예: 64MB)업로드 성공 여부를 확인
상한을 초과하는 파일(예: 65MB)적절한 에러 메시지가 표시될 것

문제 해결

  • 설정이 반영되지 않음: 웹 서버(Apache/Nginx) 재시작, PHP 프로세스 재시작이 필요한 경우가 있습니다.
  • 500 에러 발생: .htaccess의 기재 실수나 서버가 지원하지 않는 설정이 없는지 확인하세요.
  • 413 에러 발생: Nginx의 경우 client_max_body_size 설정도 확인하세요(nginx.conf에서 설정).
  • 타임아웃: 대용량 파일 업로드에서는 max_execution_timemax_input_time도 올려야 합니다.

❓ 자주 묻는 질문

설정을 바꿨는데 상한이 변하지 않습니다.
어느 하나라도 작은 값이 남아 있으면 거기가 실효 상한이 됩니다. 확인 순서는 php.ini 의 upload_max_filesize 와 post_max_size, 웹 서버 쪽의 client_max_body_size 또는 LimitRequestBody, 그리고 호스팅 회사 관리 화면의 상한입니다. 공유 호스팅에서는 php.ini 변경 자체가 무시되도록 설정된 경우도 있습니다.
functions.php 에 쓰는 방법과 wp-config.php 는 어느 쪽이 좋나요?
어느 쪽도 PHP 의 ini 설정을 덮어쓴다는 보장이 없고 확실한 것은 서버 쪽 설정입니다. functions.php 는 테마를 바꾸면 사라지므로 적어도 테마에 의존하지 않는 wp-config.php 쪽이 안전합니다. 다만 본질적으로는 php.ini 나 .htaccess, 혹은 호스팅 관리 화면에서 바꿔야 하며 WordPress 쪽 기술은 최후의 수단으로 생각하세요.
큰 동영상을 업로드하는 최선의 방법은?
상한을 올리기보다 동영상을 WordPress 에 두지 않는 것이 정답입니다. 수백 MB 파일은 PHP 의 메모리와 실행 시간을 압박하고 백업도 무거워집니다. YouTube 나 Vimeo, 혹은 S3 같은 오브젝트 스토리지에 두고 임베드하면 상한 문제는 사라지고 배포도 빨라집니다. 꼭 자체 보관해야 한다면 FTP 나 SSH 로 직접 배치하고 미디어 라이브러리에는 등록만 하세요.