워드프레스 5.2 버전부터는 사이트에 치명적인 오류(Fatal Error)가 발생했을 때, 방문자에게는 “사이트에 기술적인 문제가 발생했습니다.”와 같은 안내 화면을 보여주고 사이트 관리자에게는 원인 파악에 도움이 되는 이메일을 자동으로 발송하는 기능이 도입되었습니다. 이 기능을 **’치명적 오류 핸들러(Fatal Error Handler)’**라고 합니다.
개발 환경에서는 오류 발생 시 이메일을 받기보다 화면에서 직접 오류 코드를 확인하는 것이 더 효율적일 수 있습니다. 이럴 때 아래와 같이 wp-config.php 파일에 상수를 정의하여 이메일 알림 기능을 비활성화할 수 있습니다.
주요 상수 #
WP_DISABLE_FATAL_ERROR_HANDLER: 이 값을true로 설정하면 치명적 오류 핸들러가 비활성화됩니다. 즉, 오류 발생 시 관리자에게 이메일이 발송되지 않으며, 방문자에게도 안내 화면이 표시되지 않고 PHP 오류가 그대로 노출될 수 있습니다.
상황별 wp-config.php 설정 가이드 #
wp-config.php 파일에 아래와 같이 목적에 맞는 코드를 추가하세요. (/* That's all, stop editing! Happy publishing. */ 주석 바로 위에 추가하는 것을 권장합니다.)
1. 개발 환경 설정 #
개발 환경에서는 오류를 즉시 화면에서 확인하고 디버깅하는 것이 중요합니다. 따라서 오류 핸들러를 끄고 디버그 모드를 활성화하는 것이 일반적입니다.
/** 개발 환경 설정 */
// 치명적 오류 핸들러 비활성화 (오류 발생 시 이메일 발송 안 함)
define( 'WP_DISABLE_FATAL_ERROR_HANDLER', true );
// 워드프레스 디버그 모드 활성화 (화면에 모든 PHP 오류 표시)
define( 'WP_DEBUG', true );
2. 운영 환경(라이브 서버) 설정 #
실제 운영 중인 사이트에서는 방문자에게 오류 코드가 노출되어서는 안 되며, 문제가 발생했을 때 관리자가 신속하게 인지하는 것이 중요합니다. 따라서 오류 핸들러를 활성화하고 디버그 모드는 비활성화해야 합니다.
/** 운영 환경 설정 */
// 치명적 오류 핸들러 활성화 (기본값)
define( 'WP_DISABLE_FATAL_ERROR_HANDLER', false );
// 워드프레스 디버그 모드 비활성화 (기본값)
define( 'WP_DEBUG', false );
참고: 위 설정은 워드프레스의 기본값이므로, 별도로 코드를 추가하지 않아도 동일하게 동작합니다.
3. 운영 중인 사이트 디버깅 설정 #
운영 중인 사이트에서 부득이하게 문제를 해결해야 할 때 사용하는 설정입니다. 방문자에게는 오류를 노출하지 않으면서, 서버에 로그 파일을 생성하여 오류의 원인을 파악할 수 있습니다.
/** 운영 사이트 디버깅 설정 */
// 치명적 오류 핸들러는 활성화하여 방문자에게 친화적인 화면 유지
define( 'WP_DISABLE_FATAL_ERROR_HANDLER', false );
// 디버그 모드는 켜서 오류를 기록하도록 설정
define( 'WP_DEBUG', true );
// 화면에 오류가 표시되지 않도록 설정 (매우 중요)
define( 'WP_DEBUG_DISPLAY', false );
// wp-content/debug.log 파일에 오류 내용을 기록하도록 설정
define( 'WP_DEBUG_LOG', true );
이 설정을 통해 관리자는 debug.log 파일을 확인하여 문제를 분석하고 해결할 수 있으며, 방문자는 사이트 이용에 불편을 겪지 않습니다.
관련문서