PHP 메모리 부족 오류 해결기 : WordPress가 갑자기 느려진 이유
도입
WordPress를 운영하다 보면 어느 날 갑자기 관리자 화면이 느려지거나 페이지가 정상적으로 열리지 않는 경우가 있습니다. 처음에는 홈서버의 성능이 부족한 것은 아닌지, Docker 설정에 문제가 생긴 것은 아닌지부터 의심하게 됩니다.
하지만 실제로는 PHP 메모리 부족이 원인인 경우도 적지 않습니다. 특히 플러그인을 추가하거나 백업, 이미지 처리와 같은 작업을 수행할 때 메모리 사용량이 급격히 증가하면서 오류가 발생하기도 합니다.
이번 글에서는 PHP 메모리 부족이 무엇인지, WordPress가 왜 느려지는지, 그리고 어떤 순서로 확인하면 되는지 정리해 보겠습니다.

※ 다이어그램은 운영 환경 설계를 바탕으로 AI 도구를 활용해 제작했으며, 최종 구성과 내용은 운영자가 직접 검수했습니다.
출처: 디지털 장난감
본문
① PHP 메모리란 무엇일까?
PHP는 WordPress가 동작할 때 필요한 작업을 처리하는 프로그램입니다. 페이지를 생성하거나 플러그인을 실행하고, 데이터베이스에서 정보를 불러오는 과정 모두 PHP를 통해 이루어집니다.
이 과정에서 PHP는 일정량의 메모리를 사용합니다. 그리고 PHP가 사용할 수 있는 최대 용량은 memory_limit이라는 설정값으로 제한됩니다.
이 제한을 초과하면 PHP는 더 이상 작업을 진행하지 못하고 오류를 발생시킵니다. 흔히 볼 수 있는 메시지가 Allowed memory size exhausted 계열의 오류입니다.
- PHP 메모리는 PHP 작업 하나가 사용할 수 있는 한도입니다.
- 서버 전체 RAM과 같은 의미가 아닙니다.
- WordPress, 플러그인, 테마 작업이 PHP 메모리를 사용합니다.
memory_limit을 초과하면 오류가 발생할 수 있습니다.
즉, 서버에 메모리가 충분하더라도 PHP가 사용할 수 있는 메모리 한도를 넘으면 WordPress는 정상적으로 동작하지 않을 수 있습니다.
② WordPress가 갑자기 느려지는 이유
메모리 부족 현상은 단순히 방문자가 많아서 발생하는 것만은 아닙니다. 오히려 홈서버에서 WordPress를 운영할 때는 관리자 화면 작업이나 플러그인 작업 중에 문제가 먼저 나타나는 경우가 있습니다.
대표적인 원인은 다음과 같습니다.
| 원인 | 설명 | 확인할 점 |
|---|---|---|
| 플러그인 증가 | 여러 플러그인이 동시에 PHP 작업을 수행 | 최근 설치한 플러그인 |
| 이미지 처리 | 썸네일 생성, 이미지 최적화 작업 | 이미지 관련 플러그인 |
| 백업 작업 | 대용량 파일과 DB를 한 번에 처리 | 백업 시간과 오류 발생 시간 |
| 페이지 빌더 | 많은 설정과 데이터를 불러옴 | 편집 화면 속도 |
| 관리자 화면 | 일반 페이지보다 많은 기능이 실행됨 | 관리자 페이지에서만 느린지 확인 |
이처럼 여러 작업이 겹치면 PHP가 사용할 수 있는 메모리를 초과할 수 있습니다. 그 결과 WordPress의 속도가 느려지거나, 관리자 화면이 멈추거나, 오류 메시지가 나타날 수 있습니다.
③ 무조건 메모리를 늘리면 해결될까?
메모리 부족 오류가 발생했다고 해서 가장 먼저 메모리 값을 높이는 것은 좋은 방법이 아닐 수 있습니다. 물론 memory_limit을 늘리면 일시적으로 오류가 사라질 수는 있습니다.
하지만 특정 플러그인이 비정상적으로 많은 메모리를 사용하고 있다면, 메모리를 늘려도 근본 원인은 그대로 남아 있습니다. 그래서 먼저 어떤 작업이 메모리를 많이 사용하는지 확인하는 것이 중요합니다.
- 오류 로그를 확인합니다.
- 최근 설치하거나 업데이트한 플러그인을 확인합니다.
- PHP
memory_limit설정을 확인합니다. - Docker 컨테이너 설정을 확인합니다.
- 불필요한 플러그인을 정리합니다.
- 필요한 경우에만 메모리 값을 조정합니다.
원인을 먼저 파악한 뒤 필요한 경우에만 메모리 값을 조정하는 것이 안정적인 운영 방법입니다.
④ Docker 환경에서는 무엇이 다를까?
Docker에서 WordPress를 운영하는 경우에는 PHP 설정뿐 아니라 컨테이너 자체의 리소스 제한도 함께 확인해야 합니다.
많은 초보자가 Docker 메모리와 PHP 메모리를 같은 개념으로 생각하지만 실제로는 서로 다른 설정입니다. Docker는 컨테이너가 사용할 수 있는 리소스 범위와 관련이 있고, PHP의 memory_limit은 PHP 프로세스가 사용할 수 있는 메모리 한도와 관련이 있습니다.
| 구분 | 의미 | 점검 위치 |
|---|---|---|
| 서버 RAM | 홈서버 전체 물리 메모리 | free -h, 시스템 모니터링 |
| Docker 메모리 | 컨테이너가 사용할 수 있는 리소스 | Compose 설정, Docker Desktop 설정 |
| PHP memory_limit | PHP 작업 하나가 사용할 수 있는 한도 | php.ini, WordPress 환경 |
| WordPress 사용량 | 테마와 플러그인이 실제 사용하는 자원 | 로그, 플러그인 점검 |
따라서 Docker 환경에서는 서버 전체 상태, 컨테이너 상태, PHP 설정을 나누어 확인하는 습관이 필요합니다.
⑤ 오류 로그를 먼저 확인하기
문제가 발생했을 때 가장 먼저 해야 할 일은 설정을 바꾸는 것이 아니라 로그를 확인하는 것입니다. 로그에는 어떤 파일에서 오류가 발생했는지, 어떤 플러그인이 관련되었는지, 메모리 한도가 얼마나 초과되었는지 단서가 남아 있을 수 있습니다.
docker compose logs wordpress
또는 WordPress 디버그 설정을 통해 오류를 확인할 수도 있습니다. 다만 운영 중인 사이트에서는 디버그 메시지가 외부에 노출되지 않도록 주의해야 합니다.
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
로그를 확인하면 무작정 설정을 변경하는 것보다 훨씬 빠르게 원인을 좁힐 수 있습니다.
⑥ PHP 메모리 값을 조정할 때 주의할 점
필요하다면 PHP 메모리 값을 조정할 수 있습니다. WordPress에서는 wp-config.php에 다음과 같은 설정을 추가하는 방식이 자주 사용됩니다.
define( 'WP_MEMORY_LIMIT', '256M' );
하지만 이 설정만으로 모든 문제가 해결되는 것은 아닙니다. 서버 환경에 따라 PHP 설정 파일이나 컨테이너 이미지 설정이 우선될 수도 있습니다. 또한 지나치게 큰 값을 설정하면 문제가 되는 플러그인을 계속 방치하게 될 수도 있습니다.
운영 철학
메모리 부족 오류는 메모리를 늘리라는 신호일 수도 있지만, 먼저 원인을 확인하라는 신호일 수도 있습니다.
운영노트
홈서버를 운영하면서 문제가 발생하면 가장 먼저 서버 성능을 의심했던 적이 많았습니다. 하지만 실제로는 오류 메시지를 차분히 확인하는 것만으로도 원인을 찾을 수 있는 경우가 적지 않았습니다.
이번 내용을 정리하면서 다시 느낀 것은, 설정을 무작정 변경하기보다 원인을 이해하는 과정이 훨씬 중요하다는 점이었습니다. 특히 WordPress는 플러그인, 테마, PHP 설정, Docker 환경이 함께 움직이기 때문에 한 가지 설정만 보고 판단하면 놓치는 부분이 생길 수 있습니다.
| 처음 생각 | 실제 확인한 점 | 배운 점 |
|---|---|---|
| 서버 성능이 부족한가? | PHP 메모리 제한 확인 | 서버 RAM과 PHP 한도는 다름 |
| Docker 문제인가? | 컨테이너 로그 확인 | 로그가 먼저임 |
| 메모리만 늘리면 되나? | 플러그인 사용량 확인 | 원인 분석이 우선 |
에디터의 해석노트
PHP 메모리 부족 오류는 WordPress를 처음 운영하는 사용자라면 한 번쯤 경험할 수 있는 문제입니다.
중요한 것은 오류 메시지를 보고 바로 설정값부터 키우는 것이 아니라, 왜 메모리가 부족해졌는지 이해하는 과정입니다. 원인을 알면 같은 문제가 반복될 때 더 빠르게 대응할 수 있습니다.
홈서버 운영은 결국 작은 오류를 하나씩 이해해 가는 과정이라고 느낍니다. 이번 글도 단순한 설정 변경법보다, 문제를 바라보는 순서를 정리하는 데 초점을 두었습니다.
참고 링크 (References)
트러블슈팅
문제: WordPress 관리자 화면이 느려지거나 메모리 부족 오류가 발생함
이 문제는 서버 성능 부족처럼 보일 수 있지만, 실제로는 PHP memory_limit, 플러그인, Docker 설정, 로그 오류가 복합적으로 영향을 줄 수 있습니다.
확인: 먼저 컨테이너 로그와 WordPress 오류 로그를 확인합니다.
docker compose logs wordpress
원인: 대표적인 원인은 플러그인 과다 사용, 백업 작업, 이미지 처리, PHP 메모리 한도 부족, 컨테이너 리소스 제한, 비정상적인 플러그인 동작입니다.
해결: 오류 로그를 확인하고 최근 설치한 플러그인을 점검합니다. 필요한 경우 WP_MEMORY_LIMIT을 조정하되, 설정 변경 전에 원인을 먼저 확인합니다.
- 서버 RAM 부족으로 오해: PHP 메모리 한도와 서버 RAM은 다릅니다.
- 설정부터 변경: 로그 확인이 먼저입니다.
- Docker와 PHP 혼동: 컨테이너 리소스와 PHP 설정은 분리해서 봐야 합니다.
- 플러그인 방치: 사용하지 않는 플러그인은 정리합니다.
- 오류 재발: 메모리 값을 늘린 뒤에도 로그를 계속 확인합니다.
핵심 체크포인트 10
- PHP 메모리와 서버 RAM은 같은 개념이 아니다.
memory_limit은 PHP가 사용할 수 있는 최대 메모리 한도다.- WordPress 플러그인은 PHP 메모리를 많이 사용할 수 있다.
- 관리자 화면은 일반 페이지보다 더 많은 작업을 수행할 수 있다.
- 오류가 발생하면 먼저 로그를 확인한다.
- Docker 메모리와 PHP 메모리는 분리해서 점검한다.
- 메모리 값을 늘리기 전에 원인을 먼저 찾는다.
- 최근 설치한 플러그인과 테마를 확인한다.
- 필요한 경우
WP_MEMORY_LIMIT설정을 검토한다. - 홈서버 운영에서는 문제 해결 순서를 기록해두는 것이 좋다.
마무리
WordPress는 비교적 쉽게 시작할 수 있는 CMS이지만, 운영 환경이 복잡해질수록 작은 설정 하나가 성능에 큰 영향을 줄 수 있습니다.
PHP 메모리 부족 역시 단순히 메모리를 늘리는 것으로 끝낼 문제가 아니라, 어떤 작업이 메모리를 사용하고 있는지 이해하는 것이 더 중요합니다.
홈서버를 안정적으로 운영하기 위해서는 문제를 해결하는 것뿐 아니라, 문제의 원인을 이해하는 습관을 함께 만들어 가는 것이 가장 좋은 방법이라고 생각합니다.
'코어-테크 : 트러블 슈팅 노트' 카테고리의 다른 글
| WordPress를 Docker에 설치하는 방법 : 홈서버에서 직접 구축하기 (0) | 2026.06.30 |
|---|---|
| 셀프 호스팅은 왜 시작할까? 클라우드 대신 내 서버를 선택한 이유 (0) | 2026.06.29 |
| 백업은 복사가 아니라 복구다 : 홈서버 데이터를 지키는 전체 흐름 (0) | 2026.06.28 |
| 백업이 제대로 되었는지 확인하는 방법 (0) | 2026.06.27 |
| 매일 자동으로 백업하기 : cron과 Docker 자동화 (0) | 2026.06.26 |