
이 글의 링크는 추후 제휴 링크로 바뀔 수 있으며, 그 경우 구매 시 수수료를 받을 수 있습니다.
이 글에서 다루는 것
워드프레스 공식 문서에 적힌 순서만 가지고, 사이트가 흰 화면이 되거나 500 에러가 뜰 때 무엇부터 확인할지를 단계로 정리합니다.
관리자 화면에도 못 들어가서 검색창에 증상을 그대로 쳐 보신 분, 플러그인을 하나씩 껐다 켜는 것 말고 다른 방법이 있는지 궁금한 분을 위한 글입니다.
읽고 나면 원인을 찍어 보는 대신 로그를 열어 확인하는 순서로 바꿀 수 있고, 어디까지가 내 손으로 되는 일이고 어디부터가 호스팅 쪽 일인지 구분할 수 있습니다.
흰 화면과 500 에러는 증상이 다릅니다
둘 다 사이트가 안 열리는 것은 같지만, 브라우저에 남는 흔적이 다릅니다.
흰 화면은 말 그대로 아무것도 없는 빈 화면입니다.
공식 문서는 이것을 WSOD라고 부르고, PHP 오류와 데이터베이스 오류가 둘 다 흰 화면으로 나타날 수 있다고 적고 있습니다.
500 내부 서버 오류는 서버가 "내부 오류 또는 설정 문제로 요청을 처리하지 못했다"는 문구를 돌려주는 경우입니다.
워드프레스가 아니라 웹서버가 답한 것이라, 원인이 워드프레스 바깥에 있을 때도 있습니다.
"이 사이트에 심각한 오류가 발생했습니다"라는 안내 문구가 뜨는 경우도 있습니다.
이때는 공식 문서대로 관리자 이메일함을 먼저 확인합니다.
워드프레스가 어느 파일에서 멈췄는지 메일로 보내 두었을 수 있습니다.
증상이 무엇이든 순서는 같습니다.
원인을 추측하기 전에 오류 기록을 먼저 켭니다.
1단계. 추측하지 말고 오류 기록부터 켭니다
플러그인을 하나씩 끄면서 찾는 방법이 흔하지만, 순서상 뒤에 와야 합니다.
로그를 켜면 어느 파일 몇 번째 줄에서 멈췄는지가 한 줄로 나오는 경우가 많습니다.
공식 디버깅 문서가 설명하는 상수는 세 개입니다.

① WP_DEBUG_LOG를 true로 두면 모든 오류가 wp-content/debug.log 파일에 함께 쌓입니다.
② WP_DEBUG_DISPLAY는 false로 둡니다.
기본값이 true라서 그냥 두면 오류 내용이 방문자 화면에 그대로 노출됩니다.
wp-config.php 에 세 줄을 넣으면 됩니다.
WP_DEBUG가 true여야 나머지 두 개가 동작한다는 점이 문서에 명시돼 있습니다.
| 상수 | 넣을 값 | 하는 일 |
|---|---|---|
| WP_DEBUG | true | 디버그 모드를 켠다(기본값 false) |
| WP_DEBUG_LOG | true | 오류를 wp-content/debug.log 에 쌓는다 |
| WP_DEBUG_DISPLAY | false | 오류가 페이지에 찍히는 것을 막는다 |
주의할 점이 두 가지 있습니다.
공식 문서는 운영 중인 사이트에서 디버그 도구를 쓰는 것을 권하지 않습니다.
원인을 찾는 동안만 켜고, 끝나면 다시 false로 돌려 두시기 바랍니다.
또 하나는 로그 파일의 위치입니다.
wp-content/debug.log 는 주소만 알면 누구나 열어 볼 수 있는 자리라 보안 위험이라고 문서가 못 박고 있습니다.
파일 권한을 600으로 두거나, .htaccess 에 debug.log 접근을 막는 규칙을 넣어 두라고 안내합니다.
2단계. 흰 화면이면 플러그인과 테마를 의심합니다
로그에 특정 플러그인 폴더 이름이 찍혔다면 거기서 끝납니다.
로그를 못 보는 상황이거나 원인이 안 잡히면 공식 문서의 순서를 따릅니다.

① 흰 화면의 첫 번째 원인으로 적힌 것이 플러그인 호환성 문제입니다.
관리자 화면에 들어갈 수 있으면 플러그인을 전부 비활성화한 뒤 하나씩 다시 켜 보라고 안내합니다.
② 관리자 화면에조차 못 들어가면 FTP로 접속해 wp-content/plugins 폴더 이름을 plugins_old 로 바꾸면 전부 비활성화된다고 적혀 있습니다.
폴더 이름을 바꾸는 방식이 통하는 이유는 워드프레스가 그 경로에서 플러그인을 찾지 못하면 그냥 넘어가기 때문입니다.
설정이 날아가지는 않습니다.
여기서 사이트가 살아나면 원인은 플러그인 쪽이 맞습니다.
폴더 이름을 되돌린 다음, 관리자 화면에서 하나씩 켜면서 어느 것이 문제인지 찾습니다.
플러그인을 다 껐는데도 흰 화면이면 다음은 테마입니다.
새 테마를 적용한 직후라면 특히 그렇다고 문서가 적고 있습니다.
관리자 화면에서 기본 테마로 바꾸거나, 들어갈 수 없다면 FTP로 wp-content/themes 안의 현재 테마 폴더 이름을 바꿉니다.
3단계. 500 에러면 .htaccess 를 먼저 봅니다
500 에러는 순서가 조금 다릅니다.
공식 문서가 적어 둔 다섯 가지를 위에서부터 그대로 따라가면 됩니다.

① 가장 가능성이 높은 원인으로 손상된 .htaccess 파일을 꼽습니다.
FTP로 최상위 폴더에 들어가 .htaccess 를 .htaccess_old 로 바꾼 뒤 사이트를 열어 봅니다.
② 그다음이 플러그인 일괄 비활성화이고, ③ 네 번째가 PHP 메모리 한도 올리기입니다.
.htaccess 이름을 바꿔서 사이트가 열렸다면 그대로 두면 안 됩니다.
문서는 설정 > 고유주소 화면에 한 번 들어가 고유주소를 다시 저장하라고 안내합니다.
그러면 워드프레스가 정상적인 .htaccess 파일을 새로 만들어 줍니다.
이 단계를 건너뛰면 글 주소가 전부 404로 바뀝니다.
500 에러를 고치고 나서 "이번엔 글이 안 열린다"는 경우의 상당수가 여기입니다.
세 번째는 기본 테마로 바꿔 보는 것, 다섯 번째는 워드프레스를 새로 받아 wp-admin 과 wp-includes 폴더만 덮어쓰는 것입니다.
다섯 번째까지 갔다면 파일이 깨진 경우라 백업에서 복원하는 편이 빠를 때가 많습니다.
4단계. 메모리 한도에 걸린 경우
로그에 "Allowed memory size of xxxxxx bytes exhausted" 가 찍혀 있으면 메모리 부족입니다.
플러그인을 많이 쓰거나 이미지를 대량으로 처리할 때 자주 나옵니다.

① 공식 wp-config.php 문서는 이 메시지를 받았을 때 WP_MEMORY_LIMIT 값을 올리라고 안내합니다.
워드프레스가 기본적으로 확보하려는 값은 단일 사이트 40MB, 멀티사이트 64MB라서, 지정할 값은 그보다 높아야 한다고 적혀 있습니다.
넣는 방법은 wp-config.php 에 한 줄입니다.
문서가 든 예시는 define( 'WP_MEMORY_LIMIT', '64M' ); 과 '96M' 두 가지입니다.
그런데 같은 문서가 두 가지 단서를 붙여 놓았습니다.
그대로 옮기면 이렇습니다.
첫째, 호스팅에 따라 이 값을 스스로 올릴 수 없는 곳이 있습니다.
문서는 상당수 호스팅이 PHP 한도를 8MB로 잡아 둔다고 적으면서, 그런 경우 호스팅에 요청하라고 안내합니다.
둘째, 한도를 올리는 것은 근본 해결이 아닐 수 있습니다.
진짜 원인을 덮어 두면 플러그인이나 기능이 늘어난 뒤에 같은 문제가 다시 나타난다는 경고가 붙어 있습니다.
그래서 메모리를 올린 뒤에는 로그를 한 번 더 봐야 합니다.
특정 플러그인이 반복해서 메모리를 먹고 있다면 그 플러그인을 바꾸는 것이 맞습니다.
여기서 막히면 서버 쪽입니다
1~4단계는 전부 사이트 안쪽 일이라 돈이 들지 않습니다.
문제는 4단계에서 "호스팅이 한도를 안 올려 준다"에 부딪혔을 때입니다.
공유 호스팅은 여러 사이트가 한 서버를 나눠 쓰기 때문에 PHP 메모리와 실행 시간에 상한이 걸려 있는 경우가 많습니다.
이때는 요금제에 메모리가 얼마나 붙어 있는지를 보게 됩니다.
관리형 클라우드 호스팅인 클라우드웨이즈를 예로 들면 요금 페이지에 사양이 이렇게 적혀 있습니다.

① 가장 낮은 요금제가 월 14달러이고 ② 메모리 1GB, vCPU 1개, NVMe 저장공간 25GB, 전송량 1TB입니다.
설명에는 개인 사이트와 단순한 블로그에 맞는다고 적혀 있습니다.
카드 정보 없이 사흘 동안 써 볼 수 있는 체험도 같은 페이지에 열려 있습니다.
블로그 한두 개를 굴리는 단계에서는 이 가장 낮은 요금제로 충분합니다.
올릴 시점은 요금표를 보고 정하는 것이 아니라, 로그에 메모리 부족이 반복해서 찍히고 플러그인을 정리해도 같은 오류가 남을 때입니다.
가장 낮은 요금제의 메모리와 전송량을 공식 요금 페이지에서 직접 대조해 보기
다만 옮기기 전에 솔직하게 짚을 것이 있습니다.
요금표에 안 보이는 돈과 불편이 있습니다.
표시 금액은 세금이 빠진 값이고, 외부 저장소로 백업을 받으면 서버당 1GB에 0.033달러가 더 붙는다는 고지가 요금표 아래에 적혀 있습니다.
결제는 달러라 환율을 타고, 관리 화면은 영어이며 한국어 상담 창구가 없습니다.
업무용 메일 호스팅도 포함이 아닙니다.
무엇보다, 오늘 500 에러가 난 것이 곧 호스팅을 옮길 이유는 아닙니다.
원인이 플러그인 충돌이었다면 서버를 바꿔도 같은 화면을 다시 보게 됩니다.
월 1만 원 이하 공유 호스팅으로 지금까지 문제가 없었다면 1~4단계만 해 두고 그대로 쓰시는 편이 낫습니다.
관리형 호스팅이 서버 관리를 어디까지 대신하는지 공식 소개에서 살펴보기
자주 묻는 질문
워드프레스 흰 화면, 관리자 페이지도 안 열리는데 어떻게 하나요?
FTP나 호스팅의 파일 관리자로 접속해 wp-content/plugins 폴더 이름을 plugins_old 로 바꿉니다.
공식 문서가 안내하는 방법이고, 이것만으로 플러그인이 전부 비활성화됩니다.
사이트가 열리면 이름을 되돌린 뒤 하나씩 켜면서 범인을 찾습니다.
500 에러가 떴다 안 떴다 합니다. 이런 것도 플러그인 문제인가요?
간헐적으로 난다면 메모리나 실행 시간 한도일 가능성이 큽니다.
접속이 몰리거나 무거운 작업이 돌 때만 한도를 넘기기 때문입니다.
로그에 "Allowed memory size" 나 "Maximum execution time of 30 seconds exceeded" 가 찍혀 있는지 먼저 확인하시기 바랍니다.
WP_MEMORY_LIMIT 을 256M 으로 크게 잡아 두면 안 되나요?
호스팅이 허용하는 PHP 한도를 넘는 값을 적어도 그만큼 쓰지는 못합니다.
공식 문서도 한도를 올리는 것이 원인을 덮는 일이 될 수 있다고 경고합니다.
64M이나 96M으로 먼저 올려 보고, 그래도 같은 오류가 반복되면 값을 더 키우기보다 원인을 찾는 쪽이 맞습니다.
마무리
흰 화면이든 500 에러든 순서는 같습니다.
플러그인을 찍어서 끄기 전에 wp-config.php 에서 디버그 로그를 켜고 wp-content/debug.log 를 먼저 읽습니다.
흰 화면이면 플러그인 폴더 이름을 바꿔 일괄 비활성화한 뒤 테마를 확인하고, 500 에러면 .htaccess 를 먼저 손본 다음 고유주소를 다시 저장합니다.
메모리 부족 메시지가 남았다면 WP_MEMORY_LIMIT 을 40MB보다 높게 올리되, 호스팅이 막아 두었거나 같은 오류가 반복된다면 그때 서버 사양을 따져 봅니다.
지금 쓰시는 호스팅은 PHP 메모리 한도를 얼마로 잡아 두었나요?
댓글로 남겨 주시면 지금 사이트 규모에 충분한지 같이 따져 보겠습니다.
다음 글에서는 「블로그스팟과 워드프레스 비교, 무료로 시작할 때」에 대해 알아보겠습니다.