# WordPress 메모리 제한 늘리기

Source: https://support.kapsulehost.com/ko-kr/wordpress-memory-limit

워드프레스나 플러그인이 메모리 고갈 오류로 중단되면 해결책은 PHP 메모리 제한을 늘리는 것이며, KapsuleHost에서는 파일을 편집하는 대신 KPanel의 드롭다운 메뉴에서 이를 처리합니다. 이 가이드는 오류의 의미, 제한을 변경하는 방법, 어떤 값을 선택할지, 그리고 메모리를 더 늘려도 해결되지 않을 때 무엇을 해야 하는지를 다룹니다.

## 오류의 모습

가장 명확한 형태는 페이지에 출력되거나 에러 로그에 기록되는 치명적 오류입니다.

```
Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 20480 bytes)
```

바이트 수치를 1,048,576으로 나누면 메가바이트 단위로 읽을 수 있습니다: `268435456`은 256MB, `134217728`은 128MB입니다.

항상 이렇게 명확하게 드러나지는 않습니다. 같은 근본 문제가 다음과 같은 형태로 나타나기도 합니다.

- 아무 메시지도 없는 완전히 흰 백지 화면. 특정 화면 하나에서만 자주 발생합니다.
- 워드프레스 대시보드는 로드되지만 특정 관리자 페이지(플러그인, 제품, 사이트 상태) 하나만 죽는 경우.
- 미디어 업로드나 가져오기가 중간까지 진행되다가 멈추는 경우.
- 부하가 걸릴 때만 나타나는 500 오류.

> **Note:** 무언가를 변경하기 전에 정말 메모리 문제인지부터 확인하세요. 사이트의 **설정**을 연 다음 **PHP** 탭으로 이동하여 **PHP 에러 로그**까지 스크롤하고 **로그 로드**를 클릭하세요. 그러면 레벨 필터가 적용된 최근 200개 항목이 표시됩니다. 메모리 고갈 오류는 **Fatal**로 표시됩니다. 로그가 비어 있다면 문제는 다른 곳에 있는 것이니 [워드프레스 백색 화면](https://support.kapsulehost.com/ko-kr/wordpress-white-screen)과 [에러 로그 읽는 방법](https://support.kapsulehost.com/ko-kr/error-logs)을 참고하세요.

## KPanel에서 제한 변경하기

1. [KPanel](https://kpanel.kapsulehost.com)에 로그인하여 왼쪽 사이드바에서 **웹사이트**를 클릭합니다.
2. 변경할 사이트를 클릭합니다.
3. 해당 사이트 메뉴에서 **설정**을 연 다음 **PHP**를 선택합니다.
4. **PHP 설정** 카드와 **메모리 제한** 행을 찾습니다.
5. 드롭다운에서 값을 선택합니다: `128M`, `256M`, `512M`, `1024M` 또는 `2048M`.
6. **설정 저장**을 클릭합니다.

![KPanel에서 메모리 제한을 선택하는 사이트의 PHP 설정](https://support.kapsulehost.com/help/screenshots/wordpress-memory-limit.b15db306.webp)

재시작이 필요하지 않으며 변경 작업 중에도 사이트는 계속 운영됩니다. 설정 값은 사이트 루트의 `.user.ini` 파일에 기록되며, 이 파일은 KPanel이 자동으로 관리합니다.

> **Tip:** 새 값이 바로 다음 페이지 로드에서 항상 즉시 반영되지는 않습니다. 서버는 `.user.ini`를 최대 5분간 캐시하므로, 이전 제한값이 계속 표시되더라도 변경이 적용되지 않았다고 단정하기 전에 몇 분 기다렸다가 다시 확인하세요.

같은 카드에서 메모리와 함께 자주 조정해야 하는 다른 네 가지 값도 제어할 수 있습니다.

| 설정 | 옵션 | 올려야 할 때 |
|---|---|---|
| 메모리 제한 | 128M ~ 2048M | 치명적 메모리 오류, 빈 관리자 화면 |
| 최대 실행 시간 | 30 ~ 600초 | 가져오기, 내보내기, 보고서 생성이 중간에 멈출 때 |
| 최대 업로드 크기 | 16M ~ 256M | 테마 zip 파일이나 영상이 너무 크다고 거부될 때 |
| 최대 입력 변수 | 1000 ~ 10000 | 큰 메뉴, 큰 폼, 변형이 많은 제품 |

Post max size는 표시되지 않는데, KapsuleHost가 항상 업로드 제한보다 1MB 높게 자동으로 설정하기 때문입니다. 그래야 제한값에 딱 맞는 파일이 포함된 폼도 문제없이 처리됩니다.

## 어떤 값을 선택해야 할까

모든 KapsuleHost 사이트는 **256M**로 시작하며, 이는 이미 워드프레스 기본값의 두 배로, 대다수 사이트에 충분한 값입니다. 실제 오류가 발생했을 때만 값을 올리세요.

| 사이트 | 권장 제한 |
|---|---|
| 가벼운 테마를 사용하는 소개 사이트나 블로그 | 256M로 충분 |
| 플러그인이 20개 이상인 페이지 빌더 테마 사이트 | 256M, 오류가 계속되면 512M |
| 카탈로그가 적당한 규모인 WooCommerce 스토어 | 256M |
| 구독, 많은 변형, 무거운 재고 플러그인을 사용하는 WooCommerce | 512M |
| 멀티사이트 네트워크 또는 대형 멤버십 사이트 | 512M ~ 1024M |

> **Warning:** 곧바로 2048M까지 올리지 마세요. 매우 높은 제한값은 사이트를 더 빠르게 만들지 않습니다. 오히려 폭주하는 플러그인이 실패하기 전에 서버 자원을 훨씬 더 많이 소모하게 만들어, 하나의 깨진 페이지 문제가 모든 방문자에게 느린 사이트 문제로 번질 수 있습니다. 한 단계씩만 올리고 다시 테스트한 뒤, 오류가 사라지면 그 즉시 멈추세요.

## wp-config.php에서 제한 설정하기

KPanel 드롭다운은 서버 상한선을 설정합니다. 워드프레스에는 이 상한선까지 메모리를 요청하는 자체 상수 두 개가 있으며, 일부 문서에서는 이를 설정하라고 안내합니다.

```php
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );
```

`WP_MEMORY_LIMIT`는 프런트엔드에 적용됩니다. `WP_MAX_MEMORY_LIMIT`는 일반적으로 더 많은 메모리가 필요한 관리자 영역에 적용됩니다. **설정**, 그 다음 **파일 관리자**에 있는 내장 편집기를 사용하거나 SFTP를 통해, `wp-config.php` 내의 `/* That's all, stop editing! */` 행 위에 이 상수들을 추가하세요.

> **Warning:** 워드프레스 상수는 서버 제한값을 절대 초과할 수 없습니다. KPanel 드롭다운이 `256M`로 설정되어 있는데 `WP_MEMORY_LIMIT`를 `1024M`로 설정하면 실제로는 256M만 얻으면서 문제를 해결했다는 잘못된 안도감만 얻게 됩니다. 항상 KPanel 값을 먼저 올리세요.

대부분의 경우 이 상수들은 필요하지 않습니다. KPanel 값을 설정하고 `wp-config.php`는 건드리지 마세요.

## WooCommerce 참고 사항

스토어는 256M를 넘겨야 하는 가장 흔한 이유입니다. wp-admin의 **WooCommerce**, 그 다음 **Status**에서 스토어 자체가 인식하는 제한값을 확인하세요. 시스템 상태 보고서는 자신이 확인할 수 있는 PHP 메모리 제한을 표시하므로, KPanel 변경사항이 실제로 적용되었는지 확인하는 좋은 방법입니다.

다음 중 하나라도 해당한다면 512M로 올리세요.

- 각각 수십 개의 변형이 있는 가변 상품.
- WooCommerce Subscriptions나 예약 확장 기능.
- 동시에 활성화된 결제 게이트웨이 플러그인이 두 개 이상.
- 백그라운드에서 실행되는 재고 또는 회계 동기화.

WooCommerce 관리자 페이지가 느리거나 시간 초과되는 경우는 대개 메모리와 실행 시간이 함께 원인입니다. 동시에 **최대 실행 시간**을 120초로 올리고, [WooCommerce 설정하기](https://support.kapsulehost.com/ko-kr/wordpress-woocommerce)에 있는 캐싱 옵션도 고려해 보세요.

## PHP 버전도 확인하세요

PHP 변경 직후부터 메모리 오류가 시작되었다면 버전 자체가 원인일 수 있습니다. 오래된 플러그인은 더 새로운 런타임에서 심각하게 메모리를 누수할 수 있습니다. 같은 탭 상단의 **PHP 버전** 카드에서 사이트가 실행 중인 버전을 확인할 수 있으며, PHP 8.4, 8.3, 8.2, 8.1 사이에서 전환할 수 있습니다.

버전을 변경하면 사이트의 PHP 풀이 재시작되므로 몇 초간의 다운타임이 발생할 수 있습니다. 자세한 내용은 [PHP 버전 변경하기](https://support.kapsulehost.com/ko-kr/changing-php-version)를 참고하세요.

## 메모리를 늘려도 해결되지 않을 때

두 번이나 제한값을 올렸는데도 개선되지 않는다면 뭔가가 불필요하게 메모리를 소모하고 있다는 뜻입니다. 다음 순서대로 진행하세요.

1. **백업을 받으세요.** 매번 먼저 [백업 받기](https://support.kapsulehost.com/ko-kr/taking-a-backup)부터 하세요.
2. **원인 플러그인을 찾으세요.** 하나씩이 아니라 절반씩 플러그인을 비활성화하세요. 절반을 끄고 다시 테스트한 다음, 여전히 실패하는 절반을 다시 나누세요. **WordPress** 탭, 그 다음 **Plugins**에 있는 **Plugin safe mode**를 사용해도 됩니다. 이는 플러그인 데이터를 삭제하지 않고 모든 플러그인을 한꺼번에 끕니다.
3. **테마를 테스트하세요.** 일시적으로 워드프레스 기본 테마로 전환하세요. 모든 페이지 로드마다 무거운 쿼리를 실행하는 테마가 정확히 이런 패턴을 만듭니다.
4. **사이트가 아니라 작업을 살펴보세요.** 가져오기만 실패한다면 문제는 메모리가 아니라 실행 시간과 배치 크기입니다. 더 작은 단위로 나눠서 가져오세요.
5. **로그를 읽으세요.** PHP 탭의 **PHP 에러 로그**는 메모리가 고갈된 파일과 줄을 알려주며, 이것으로 보통 바로 해당 플러그인을 특정할 수 있습니다.

512M까지 올리고 플러그인을 깨끗하게 테스트했는데도 여전히 해결되지 않는다면 사이트 도메인, 정확한 치명적 오류 메시지, 그리고 발생 당시 하고 있던 작업을 적어 [support@kapsulehost.com](mailto:support@kapsulehost.com)으로 이메일을 보내주세요.
