비상시에 워드프레스 오류와 경고를 숨기는 방법
라이브 워드프레스 사이트에 PHP 오류나 경고가 찍히기 시작해 디자인을 해치거나 방문자를 혼란스럽게 하는 경우가 있습니다. 화면에 보이는 메시지를 잠시 숨겨 공개 사이트가 다시 정상처럼 보이게 할 수는 있습니다. 다만 이는 응급 조치일 뿐입니다. 버그를 고친 것도 아니고, 문제가 사라졌다는 뜻도 아닙니다.
중요: 화면에서 경고나 오류를 숨기는 것은 임시 조치일 뿐입니다. 표시를 막는다고 근본 원인이 해결되지는 않습니다. 운영 사이트에서는 단기적인 완화책으로만 사용한 뒤, 로그를 안전하게 확인하고, 원인인 플러그인·테마·PHP 코드를 찾아, 백업이나 스테이징 복사본에서 해당 코드를 수정하거나 업데이트한 다음 사이트를 검증하세요. 숨겨 두었다고 오류를 무시해도 된다고 생각하지 마세요.
WP_DEBUG를 끈다고 오류가 로그 파일에 기록되는 것도 아닙니다.
임시 조치: 방문자에게 오류 메시지 숨기기
워드프레스는 이미 wp-config.php에 WP_DEBUG 줄이 있습니다. 그 기존 줄을 수정하세요. 두 번째 define( 'WP_DEBUG', ... )를 붙여 넣지 마세요. 같은 상수를 두 번 정의하면 PHP 알림이 날 수 있습니다. 이 설정은 /* That's all, stop editing! */ 주석 앞에 두고, 그 뒤에 두지 마세요.
1. wp-config.php 찾기
FTP 클라이언트나 호스팅 파일 관리자로 접속한 뒤, 워드프레스 설치 루트 디렉터리에 있는 wp-config.php를 엽니다.
2. 기존 WP_DEBUG 줄 수정하기
이미 define( 'WP_DEBUG', true ); 또는 define( 'WP_DEBUG', false );처럼 보이는 줄을 찾으세요. 디버그가 꺼지도록 이렇게 바꿉니다:
define( 'WP_DEBUG', false );
따옴표 없는 불리언 false를 사용하세요. 따옴표로 감싼 'false'는 문자열이라 PHP가 참으로 취급합니다.
3. 화면에 남는 PHP 오류가 있으면 숨기기
워드프레스 디버그 모드를 꺼도 호스트가 PHP 오류를 계속 출력하는 경우가 있습니다. 그럴 때는 WP_DEBUG 설정 근처에 다음 줄을 아직 없을 때만 추가하세요:
@ini_set( 'display_errors', 0 );
신중히 수정한 뒤에는 그 부분이 아래처럼 보여야 합니다. WP_DEBUG가 두 줄씩 겹치면 안 됩니다:
define( 'WP_DEBUG', false ); @ini_set( 'display_errors', 0 );
각 줄의 역할:
define( 'WP_DEBUG', false );— 워드프레스 디버그 모드를 끕니다. 방문자는 워드프레스 디버그 출력을 보지 않아야 합니다. 이 설정은 오류를 대신 기록해 주지 않습니다.@ini_set( 'display_errors', 0 );— PHP가 페이지 HTML에 오류를 출력하지 않게 합니다. 화면에 대한 설정일 뿐, 문제를 고치는 코드는 아닙니다.
주된 방법으로 error_reporting(0);는 피하는 것이 좋습니다. PHP 보고를 너무 강하게 막아 무엇이 깨졌는지 알기 어려워집니다.
다음에 해야 할 일: 실제 오류를 진단하고 고치기
공개 사이트를 다시 읽을 수 있게 되는 즉시 원인을 찾으세요. 좋은 순서는 다음과 같습니다:
- 플러그인, 테마, 코드를 바꾸기 전에 백업을 만드세요.
- 가능하면 스테이징 복사본이나 로컬 사이트에서 문제를 재현해, 방문자가 디버그 출력을 보지 않게 하세요.
- 그 스테이징 복사본에서는 화면에는 오류를 보여 주지 않고 로깅만 켭니다. 아래 내용은
/* That's all, stop editing! */앞에 두고, 이미 있는 디버그 줄을 고치며 중복해서 넣지 마세요:
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false ); @ini_set( 'display_errors', 0 );
이 줄들이 함께 하는 일:
WP_DEBUG— 나머지 두 디버그 상수가 작동하려면true여야 합니다.WP_DEBUG_LOG— 메시지를wp-content/debug.log(또는 지정한 다른 경로)에 기록합니다.WP_DEBUG가 false이면 아무 일도 하지 않습니다.WP_DEBUG_DISPLAY— 를false로 두고display_errors를0으로 두면 메시지가 페이지에 나오지 않아 로그에서 읽을 수 있습니다.
debug.log는 브라우저에서 내려받을 수 있게 두지 말고, FTP나 호스트 파일 관리자로 여세요. wp-content 안의 로그 파일은 HTTP로 가져갈 수 있으면 서버 경로와 플러그인 이름이 드러날 수 있습니다. 작업을 마치면 디버그를 다시 끄고 로그 파일을 삭제하거나 접근을 제한하세요.
로그로 경고나 오류를 일으킨 플러그인, 테마, PHP 파일을 찾은 뒤 그 코드를 업데이트하거나 고칩니다. 해당 페이지를 다시 열어 메시지가 사라졌는지 확인하세요.
워드프레스는 이 디버그 설정을 개발자 핸드북에 안내합니다.
메시지를 숨기는 데 그치면 안 되는 이유
숨긴 오류도 기능을 깨뜨리거나 사이트를 느리게 하거나 보안 문제를 남겨 둘 수 있습니다. 화면을 정리하는 것은 작업하는 동안 방문자를 보호하기 위한 것일 뿐입니다. 진짜 목표는 근본 문제를 해결해 사이트를 안정적으로 만드는 것입니다.
정리
비상시에는 기존 WP_DEBUG 줄을 false로 바꾸고, 필요하면 display_errors를 꺼서 워드프레스와 PHP 오류 출력을 숨길 수 있습니다. 항상 “stop editing” 주석 앞에서 작업하고, 같은 상수를 두 번 정의하지 마세요. 그다음 백업이나 스테이징 사이트에서 디버그 로그로 원인을 진단하고, 해당 플러그인·테마·PHP 코드를 고친 뒤 확인하세요. 경고를 숨기는 것은 임시이고, 오류를 고치는 것이 남는 일입니다.
