본문으로 건너뛰기
설정

워드프레스 업로드 용량 늘리는 방법 (모든 호스팅)

지금 워드프레스 업로드 제한이 얼마인지 확인하고, 호스팅에 맞는 곳에서 늘리세요. php.ini, .user.ini, .htaccess, cPanel, Nginx, Cloudflare별로 정리했습니다.

게시됨 업데이트됨

워드프레스 업로드 제한을 늘리려면 PHP 설정 두 가지, upload_max_filesize와 post_max_size를 호스팅이 실제로 읽는 설정 파일에서 올려야 합니다. 직접 관리하는 서버라면 php.ini, PHP-FPM이나 FastCGI로 돌아가는 대부분의 공유 호스팅이라면 .user.ini, Apache가 PHP를 모듈로 실행할 때만 .htaccess, cPanel이라면 MultiPHP INI Editor입니다. 서버가 Nginx라면 client_max_body_size도 올리세요. wp-config.php를 수정해서는 업로드 제한이 바뀌지 않습니다.

워드프레스 최대 업로드 크기 도구는 목표 크기 하나를 php.ini(또는 .user.ini), .htaccess, wp-config.php에 맞는 값으로 바꿔 주므로, 직접 입력하지 않고 붙여넣기만 하면 됩니다.

1단계: 현재 업로드 제한 확인하기

무언가를 바꾸기 전에, 지금 제한이 얼마이고 어떤 설정이 그 값을 정하는지 확인하세요.

  • 미디어 > 새로 추가. 업로드 화면에 최대 업로드 파일 크기가 표시됩니다. 이것이 올리려는 숫자입니다.
  • 도구 > 사이트 건강 > 정보. 미디어 처리 항목을 펼치세요. 사이트 건강 문서에 따르면 여기에는 허용되는 POST 데이터 최대 크기, 업로드 파일 최대 크기, 그리고 둘 중 작은 값인 실제 최대 파일 크기가 나옵니다. 서버 항목에는 다른 PHP 값도 나옵니다.
WordPress Upload Media 화면. 업로드 영역 아래에 Maximum upload file size: 2 GB 줄이 있다
업로드 화면에서 한도가 보이는 곳은 업로드 영역 아래입니다. 2 GB는 테스트 서버의 값이며, 많은 호스팅 업체는 이보다 훨씬 낮게 설정합니다.
WordPress 사이트 상태 정보의 Media Handling 섹션. max size of post data allowed, max size of an uploaded file, max effective file size가 나열되어 있다
테스트 사이트의 도구 > 사이트 상태 > 정보 > 미디어 처리입니다. 게시물 데이터, 업로드 파일, 실제 적용 한도가 각각 다른 행에 표시됩니다.

워드프레스는 wp_max_upload_size()에서 제한을 계산합니다. 이 함수는 PHP에서 upload_max_filesize와 post_max_size를 읽어 작은 값을 씁니다. 하나가 64M이고 다른 하나가 8M이면 제한은 8M입니다.

2단계: 어떤 설정이 중요한지 알기

설정제한하는 대상PHP 기본값바꿀 수 있는 곳
upload_max_filesize업로드하는 파일 하나의 최대 크기2Mphp.ini, .user.ini, .htaccess, httpd.conf
post_max_size파일을 포함한 POST 요청 전체8Mphp.ini, .user.ini, .htaccess, httpd.conf
memory_limit실행 중 PHP가 쓸 수 있는 메모리128M어디서나, wp-config.php 포함
max_execution_time스크립트가 실행될 수 있는 초30어디서나, wp-config.php 포함
client_max_body_size (Nginx)Nginx가 받아들이는 요청 본문1mNginx 설정에서만

PHP 기본값과 변경 모드는 php.ini 지시어 목록에서, Nginx 기본값은 Nginx 코어 모듈 문서에서 가져왔습니다. 대부분의 호스팅은 PHP 기본값보다 높은 값을 설정하므로, 실제 숫자는 사이트 건강에서 확인하세요.

upload_max_filesize와 post_max_size는 PHP가 INI_PERDIR라고 부르는 설정입니다. php.ini, .htaccess, httpd.conf, .user.ini에서만 설정할 수 있고 다른 곳에서는 안 됩니다. memory_limit는 파일 크기를 제한하지 않지만, 워드프레스는 큰 이미지의 축소본을 만들 때 메모리가 필요하므로 큰 파일은 도착한 뒤에도 메모리 부족 오류로 실패할 수 있습니다.

3단계: 호스팅에 맞는 곳에서 제한 올리기

환경설정하는 곳참고
VPS 또는 전용 서버PHP가 실제로 불러오는 php.ini이후 PHP-FPM이나 Apache 재시작
PHP-FPM 또는 FastCGI 공유 호스팅워드프레스 루트의 .user.ini적용까지 최대 5분 걸릴 수 있음
PHP를 모듈로 쓰는 Apache(mod_php)php_value를 넣은 .htaccessPHP-FPM이나 FastCGI에서는 500 오류 발생
cPanel 호스팅Software > MultiPHP INI Editorphp.ini, .user.ini, .htaccess를 대신 작성
PHP 앞단의 NginxPHP 값과 함께 client_max_body_size안 하면 Nginx가 413 반환
관리형 워드프레스 호스팅호스팅 대시보드 또는 고객 지원많은 호스팅이 플랫폼 단위로 업로드를 제한
Cloudflare 뒤에 있는 사이트Cloudflare 자체 업로드 제한Free와 Pro 요금제는 100 MB

php.ini (직접 관리하는 서버)

먼저 불러오는 파일을 찾습니다. <?php phpinfo();가 들어간 임시 파일을 만들어 브라우저로 열고, “Loaded Configuration File” 줄을 확인한 다음 그 파일을 삭제하세요. 그 php.ini를 수정합니다.

upload_max_filesize = 128M
post_max_size = 130M
max_execution_time = 300

그런 다음 PHP를 재시작해 변경 사항을 읽게 합니다. PHP-FPM은 서비스 이름에 버전이 들어갑니다. 예를 들어 Debian이나 Ubuntu에서는 sudo systemctl restart php8.3-fpm입니다. mod_php라면 Apache를 재시작하세요.

.user.ini (대부분의 공유 호스팅)

PHP는 CGI나 FastCGI(PHP-FPM 포함)로 실행될 때만 .user.ini 파일을 읽습니다. wp-config.php가 있는 폴더에 .user.ini를 만들거나 수정하세요.

upload_max_filesize = 128M
post_max_size = 130M

PHP는 user_ini.cache_ttl초마다 이 파일을 다시 읽으며, 기본값은 300입니다. 안 된다고 판단하기 전에 5분 기다리거나, 가능하다면 PHP-FPM을 재시작하세요.

.htaccess (mod_php를 쓰는 Apache만)

php_value upload_max_filesize 128M
php_value post_max_size 130M

PHP 매뉴얼은 이 지시어를 Apache 모듈로 실행되는 PHP용으로 설명합니다. 저장하자마자 사이트에 500 Internal Server Error가 뜬다면 PHP가 FastCGI나 PHP-FPM으로 돌아가는 것입니다. 그 줄을 지우고 대신 .user.ini를 쓰세요.

cPanel MultiPHP INI Editor

cPanel에서 Software > MultiPHP INI Editor를 열고 도메인을 고른 뒤 Basic Mode에서 값을 바꿉니다. cPanel 문서에 따르면 Basic Mode는 php.ini, .user.ini, .htaccess 중 해당 설정을 지원하는 파일에 저장하므로, 서버가 어떤 파일을 쓰는지 몰라도 됩니다.

Nginx

Nginx는 PHP가 요청을 보기 전에 요청 크기를 확인합니다. 요청이 client_max_body_size보다 크면 Nginx는 413 Request Entity Too Large를 반환합니다. 기본값은 1m입니다. server 블록에 최소한 post_max_size만큼의 값을 넣으세요.

client_max_body_size 130M;

sudo nginx -t && sudo systemctl reload nginx로 테스트하고 다시 불러오세요. Apache에서 비슷한 설정은 LimitRequestBody인데, 일반적인 워드프레스 호스팅에서는 바꿀 일이 거의 없습니다.

관리형 호스팅과 Cloudflare

일부 관리형 워드프레스 호스팅은 php.ini나 .user.ini를 무시하고 플랫폼 전체에 제한을 겁니다. 변경 후에도 사이트 건강에 예전 숫자가 나온다면, 호스팅에 최대값이 얼마인지, 올려 줄 수 있는지 문의하세요.

사이트가 Cloudflare를 거친다면 Cloudflare에도 자체 제한이 있습니다. 캐시 문서에 따르면 최대 업로드 크기는 Free와 Pro 요금제에서 100 MB, Business에서 200 MB, Enterprise에서 최대 5 GB입니다. 어떤 PHP 설정으로도 이를 넘을 수 없습니다.

wp-config.php로는 안 되는 이유

많은 글이 wp-config.php에 다음을 넣으라고 권합니다.

@ini_set( 'upload_max_filesize', '128M' );
@ini_set( 'post_max_size', '130M' );

두 설정 모두 INI_PERDIR이고, PHP 문서에는 이 모드의 설정은 ini_set()으로 지정할 수 없다고 나와 있습니다. @가 실패를 숨기기 때문에 이 줄은 아무 문제 없어 보이지만 실제로는 아무것도 바꾸지 않습니다. wp-config.php가 바꿀 수 있는 것은 메모리입니다. memory_limit는 어디서나 설정할 수 있기 때문입니다.

define( 'WP_MEMORY_LIMIT', '256M' );

이는 큰 이미지가 처리 중에 실패할 때 도움이 됩니다. 최대 업로드 파일 크기는 바꾸지 않습니다.

4단계: 변경 확인하기

미디어 > 새로 추가를 새로 고치고 최대 업로드 파일 크기가 새 값으로 나오는지 확인하세요. 그대로라면:

  • post_max_size가 upload_max_filesize 이상인지 확인하세요. 워드프레스는 작은 값을 씁니다.
  • PHP가 실제로 불러오는 파일을 수정했는지 확인하세요. 다른 폴더에 있는 php.ini는 무시됩니다.
  • .user.ini를 바꿨다면 5분 기다리거나 PHP-FPM을 재시작하세요.
  • 워드프레스의 숫자는 바뀌었는데 업로드가 여전히 413으로 실패한다면, 막고 있는 곳은 Nginx, 호스팅의 프록시, 또는 Cloudflare입니다.
  • 업로드가 워드프레스까지 도착한 뒤 “HTTP 오류”로 실패한다면 더 이상 크기 문제가 아닙니다. 흔한 원인은 워드프레스 이미지 업로드 HTTP 오류 가이드에서 다룹니다.

얼마나 높게 설정해야 할까?

실제로 올려야 하는 가장 큰 파일에 약간의 여유를 더한 값으로 설정하고, post_max_size는 upload_max_filesize보다 조금 높게 두세요. 큰 파일은 업로드 시간도 길어지므로, 느린 연결에서 큰 파일이 시간 초과된다면 max_execution_time도 올리세요. 긴 영상이나 백업 압축 파일처럼 아주 큰 파일은 브라우저로 한 번에 크게 올리는 것보다 SFTP나 분할 업로드 플러그인을 쓰는 편이 보통 더 안정적이며, Cloudflare 요금제 제한 때문에 브라우저 업로드가 아예 불가능할 수도 있습니다.

목표 크기를 정했다면 최대 업로드 크기 도구가 맞는 PHP 설정 줄을 대신 써 줍니다. 서버가 Nginx라면 이 가이드의 Nginx 줄은 직접 추가하세요.

FAQ

질문

워드프레스의 현재 업로드 제한은 어떻게 확인하나요?

미디어 > 새로 추가로 가면 업로드 화면에 최대 업로드 파일 크기가 표시됩니다. 자세한 내용은 도구 > 사이트 건강 > 정보를 열고 미디어 처리 항목을 펼치세요. 업로드 파일의 최대 크기, POST 데이터의 최대 크기, 그리고 둘 중 작은 값인 실제 최대 파일 크기가 나와 있습니다.

업로드한 파일이 php.ini의 upload_max_filesize 지시어를 초과한다는 메시지가 뜨는 이유는 무엇인가요?

파일이 PHP의 upload_max_filesize 설정보다 크기 때문입니다. 이 제한은 워드프레스가 정하는 것이 아니라 PHP에서 읽어 옵니다. php.ini, .user.ini, 또는 mod_php를 쓰는 Apache라면 .htaccess에서 upload_max_filesize와 post_max_size를 함께 올리세요. PHP 자체의 upload_max_filesize 기본값은 2M밖에 안 되지만, 대부분의 호스팅은 더 높은 값을 설정해 둡니다.

wp-config.php에서 업로드 제한을 늘릴 수 있나요?

아니요. upload_max_filesize와 post_max_size는 PHP_INI_PERDIR 설정이라서 PHP는 php.ini, .htaccess, httpd.conf, .user.ini에서만 받아들입니다. wp-config.php에 넣은 ini_set() 줄은 오류 없이 실행되지만 아무것도 바꾸지 않습니다. wp-config.php로 워드프레스 메모리 한도는 올릴 수 있지만, 파일 크기를 제한하는 것은 메모리가 아닙니다.

PHP 제한을 올렸는데도 413 Request Entity Too Large가 계속 나오는 이유는 무엇인가요?

PHP 앞단의 무언가가 요청을 거부하고 있습니다. Nginx에서는 client_max_body_size이며, 기본값은 1m이고 이를 넘으면 413 오류를 반환합니다. server 블록에서 이 값을 올리고 Nginx를 다시 불러오세요. 사이트가 Cloudflare를 거친다면, 요금제의 업로드 크기 제한 때문에 요청이 서버에 닿기 전에 막힐 수도 있습니다.

post_max_size가 upload_max_filesize보다 커야 하나요?

최소한 같아야 하고, 조금 더 크게 두는 것이 안전합니다. 파일은 다른 폼 데이터와 함께 POST 요청에 담겨 전송되므로 요청 전체가 post_max_size에 포함됩니다. 워드프레스는 두 값 중 작은 값을 업로드 제한으로 쓰기 때문에, upload_max_filesize만 올리면 제한은 그대로입니다.