워드프레스 미디어 라이브러리에 이미지를 업로드할 때 진행 막대가 멈추며 붉은 글씨로 'HTTP 오류(HTTP Error)' 가 뜨는 경우가 있습니다. 원인을 직관적으로 알려주지 않아 당황스럽지만, 웹 서버의 구조를 이해하면 원인은 비교적 명확합니다. 이 글에서는 서버의 메모리 제한 설정값을 직접 수정해 오류를 해결하는 방법을 단계별로 정리합니다.
HTTP 오류의 주요 원인 3가지
PHP 메모리 제한 도달: 워드프레스는 PHP로 구동됩니다. 서버에 설정된 PHP 가용 메모리가 낮게 설정되어 있으면, 이미지를 압축하고 썸네일을 생성하는 연산 과정에서 메모리가 초과되어 프로세스가 강제 종료됩니다. 가장 흔한 원인입니다.
업로드 파일 크기 제한 초과: 서버 설정상 허용된 최대 업로드 용량(upload_max_filesize)을 초과하는 이미지를 올리려 할 때 발생합니다.
플러그인 충돌: 이미지 최적화 플러그인(Smush, Imagify 등)이 업로드 즉시 백그라운드 연산을 시도하다가 서버 리소스와 충돌하는 경우입니다.
작업 전 반드시 백업부터
wp-config.php, .htaccess, php.ini는 워드프레스 핵심 파일입니다. 수정 전 반드시 원본 파일을 로컬에 다운로드해 백업해 두십시오. 코드를 잘못 입력하면 사이트 전체가 접속 불가 상태가 될 수 있습니다.
해결법 1 — wp-config.php 수정 (가장 먼저 시도할 방법)
워드프레스 루트 디렉터리의 wp-config.php 파일을 수정해 메모리 한도를 늘려줍니다.
FTP(FileZilla 등) 또는 호스팅 cPanel의 파일 관리자로 접속 후 wp-config.php 파일을 열어 아래 문구를 찾습니다.
/* That's all, stop editing! Happy publishing. */
해당 문구 바로 위에 아래 코드를 추가하고 저장합니다.
define( 'WP_MEMORY_LIMIT', '256M' );
저장 후 워드프레스 미디어 라이브러리에서 이미지를 다시 업로드해 보십시오.
중요한 주의사항:
wp-config.php의 메모리 설정은 호스팅 서버가 허용한 PHP 상한선을 초과할 수 없습니다. 예를 들어 호스팅 업체가 서버 레벨에서 PHP 메모리를 128M로 제한해 두었다면,wp-config.php에 256M를 입력해도 실제로는 128M만 적용됩니다. 이 경우 아래 2단계나 3단계를 시도하거나, 호스팅 업체에 메모리 한도 상향을 직접 요청해야 합니다.
해결법 2 — php.ini 파일 수정 (서버 레벨 근본 해결)
1단계로 해결되지 않는다면 PHP 자체의 한도를 수정해야 합니다. 루트 디렉터리에서 php.ini 파일을 찾아 열고, 아래 세 가지 항목을 찾아 수치를 변경합니다. 항목이 없다면 새로 추가합니다.
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
post_max_size는upload_max_filesize보다 같거나 커야 합니다. 이 관계가 역전되면 업로드가 정상적으로 작동하지 않습니다.
수정 후 저장하고 서버에 덮어씌웁니다.
해결법 3 — .htaccess 수정 (공유 호스팅 환경 대안)
공유 호스팅 환경이라 php.ini 수정 권한이 없다면 .htaccess 파일로 우회 적용할 수 있습니다. 루트 디렉터리의 .htaccess 파일을 열어 맨 하단에 아래 코드를 추가합니다.
php_value memory_limit 256M
php_value upload_max_filesize 64M
php_value post_max_size 64M
주의: 일부 공유 호스팅 환경에서는
.htaccess를 통한 PHP 설정 변경이 적용되지 않을 수 있습니다. 변경 후 워드프레스 대시보드 → [도구] → [사이트 상태] → [정보] → [서버] 항목에서 실제 적용된 메모리 수치를 확인하십시오.
위 방법을 모두 시도했는데도 해결이 안 된다면
세 가지 방법을 모두 적용했음에도 오류가 지속된다면 아래를 추가로 확인하십시오.
플러그인 일괄 비활성화: 이미지 최적화 플러그인이 원인일 수 있습니다. 모든 플러그인을 일시적으로 비활성화한 뒤 이미지를 업로드해 보고, 오류가 사라지면 플러그인을 하나씩 활성화하며 원인을 찾습니다.
Imagick → GD Library로 전환: 워드프레스는 이미지 처리 시 Imagick 또는 GD Library를 사용합니다. wp-config.php에 아래 코드를 추가해 GD Library로 전환하면 오류가 해결되는 경우가 있습니다.
define( 'WP_THUMB_DRIVER', 'gd' );
호스팅 업체 고객센터 문의: 위 방법을 모두 시도했다면 호스팅 업체에 직접 메모리 한도 상향을 요청하는 것이 가장 확실합니다. 오류 화면 캡처와 현재 설정값을 함께 첨부해 문의하면 빠르게 처리됩니다.
전체 해결 순서 요약
1. wp-config.php에 WP_MEMORY_LIMIT 256M 추가 → 재시도
2. 그래도 안 된다면 php.ini에서 메모리 수치 직접 변경
3. php.ini 수정 권한이 없다면 .htaccess로 우회 적용
4. 플러그인 일괄 비활성화 후 원인 플러그인 색출
5. 위 방법 모두 실패 시 호스팅 업체에 직접 요청
마무리
워드프레스 이미지 업로드 HTTP 오류는 대부분 서버의 메모리 제한이 원인입니다. wp-config.php 수정부터 순서대로 시도하면 대부분 해결됩니다. 단, 본인이 사용하는 호스팅 환경에 따라 적용 가능한 방법이 다를 수 있으므로, 설정 변경 후 실제로 적용되었는지 사이트 상태 페이지에서 반드시 확인하는 습관을 들이십시오.
자주 묻는 질문 (FAQ)
Q. wp-config.php를 수정했는데도 오류가 계속 나옵니다. 왜 그런가요?
호스팅 업체가 서버 레벨에서 PHP 메모리 상한선을 제한해 두었기 때문일 가능성이 높습니다. wp-config.php의 설정은 이 상한선을 초과할 수 없습니다. php.ini 수정을 시도하거나, 호스팅 업체에 직접 메모리 한도 상향을 요청하십시오.
Q. 수정하는 파일들이 많은데 순서가 중요한가요? 네. wp-config.php → php.ini → .htaccess 순서로 시도하는 것이 가장 안전합니다. 단계별로 적용 여부를 확인하며 진행하면 원인을 정확히 파악할 수 있습니다.
Q. 메모리를 256M보다 더 높여도 되나요? 호스팅 플랜이 허용하는 범위 내에서는 가능합니다. 다만 무작정 높인다고 좋은 것은 아닙니다. 메모리를 많이 할당할수록 다른 프로세스에 영향을 줄 수 있으며, 공유 호스팅 환경에서는 업체가 최대 허용 한도를 별도로 설정해 두는 경우가 많습니다.
Q. 이 오류가 특정 이미지 형식에서만 발생한다면 원인이 다른 건가요? 맞습니다. WebP, HEIC 등 특정 포맷은 서버의 PHP 이미지 처리 라이브러리(Imagick, GD)가 해당 포맷을 지원하지 않을 때 오류가 발생하기도 합니다. 이 경우 이미지를 JPEG나 PNG로 변환 후 업로드하거나, 라이브러리 업데이트를 호스팅 업체에 요청하면 됩니다.
댓글
댓글 쓰기