PHP 및 그누보드 상세 에러 메시지 표시 방법과 errorreporting 설정 가이드
페이지 정보

본문
PHP 프로그램 실행 중 하얀 화면(500 에러)만 나오고 오류 원인을 알 수 없을 때, 화면에 상세한 에러 메시지를 출력하고 보고 수준을 설정하는 방법을 알아봅니다.
PHP 에러 메시지 표시 및 error_reporting 설정 가이드
PHP 프로그램 실행 중 에러 내용이 명확하지 않거나 하얀 화면 및 500 에러가 발생할 때, 페이지 상단에 에러 출력 및 보고 수준 설정을 추가하여 구체적인 오류 내용을 화면에 확인할 수 있습니다.
에러 메시지 출력 설정 코드
확인하고자 하는 PHP 파일의 상단에 아래와 같이 ini_set과 error_reporting 설정 코드를 삽입합니다.
<?php
ini_set('display_errors', 1);
ini_set('error_reporting', E_ALL);
?>
error_reporting 레벨 설정 조합
목적에 따라 오류 보고 수준을 다르게 지정할 수 있습니다.
- 오류 출력 끄기:
error_reporting(0); - 간단한 실행 오류 보고:
error_reporting(E_ERROR | E_WARNING | E_PARSE); - E_NOTICE 포함 (초기화되지 않은 변수나 잘못된 철자 확인):
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);또는error_reporting(-1);(error_reporting(E_ALL);과 동일) - E_NOTICE를 제외한 모든 오류 보기:
error_reporting(E_ALL & ~E_NOTICE);
운영 환경 주의사항
개발 또는 문제 해결이 완료된 후 운영(Live) 환경에서는 보안을 위해 에러 메시지가 사용자에게 노출되지 않도록 ini_set('display_errors', '0');으로 변경하여 출력을 차단해야 합니다.
PHP 오류 보고 수준(error_reporting) 설정 방법
모든 오류를 출력하지 않고 특정 에러(예: E_NOTICE)를 제외하거나 원하는 보고 수준만 설정하려면, PHP 코드 상단에 error_reporting() 함수를 사용하여 필요한 오류 상수 조합을 지정할 수 있습니다.
주요 오류 보고 수준 설정 예시
- 오류 출력 끄기
error_reporting(0); - 간단한 실행 오류 보고 (
E_ERROR,E_WARNING,E_PARSE)error_reporting(E_ERROR | E_WARNING | E_PARSE); E_NOTICE를 포함한 오류 보고 (초기화되지 않은 변수 보고 또는 변수 이름 철자 오류 확인용)error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);E_NOTICE를 제외한 모든 오류 보기error_reporting(E_ALL & ~E_NOTICE);- 모든 오류 보기 (
E_ALL또는-1)error_reporting(E_ALL); // 또는 error_reporting(-1);
PHP 에러 메시지 표시 및 설정 방법
PHP 프로그램 실행 중 에러 내용이 명확하지 않거나 하얀 화면 및 500 에러가 발생할 때 구체적인 에러 내용을 확인하려면 PHP 스크립트 상단에 에러 출력 및 보고 수준 설정 코드를 추가합니다.
에러 출력 설정 코드
페이지 상단에 아래의 코드를 삽입하여 오류 출력과 보고 수준을 설정할 수 있습니다.
<?php
ini_set('display_errors', 1);
ini_set('error_reporting', E_ALL);
?>
error_reporting 레벨별 설정 예시
필요한 범위에 따라 오류 보고 수준을 다르게 지정할 수 있습니다.
- 간단한 실행 오류 보고:
error_reporting(E_ERROR | E_WARNING | E_PARSE); - E_NOTICE 포함 (초기화되지 않은 변수 보고 등):
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); - E_NOTICE를 제외한 모든 오류 보기:
error_reporting(E_ALL & ~E_NOTICE); - 모든 오류 보기:
error_reporting(E_ALL);또는error_reporting(-1); - 오류 출력 끄기:
error_reporting(0);
php.ini 설정 활용
소스코드 수정 외에도 서버의 php.ini 파일에서 display_errors 항목을 수정하여 적용할 수 있습니다.
display_errors = On
주의: 실제 운영(Live) 환경에서는 보안을 위해 화면에 상세 에러 메시지가 노출되지 않도록
display_errors를 끄거나 제한해야 합니다.
운영 환경에서의 에러 메시지 차단 설정 방법
개발 완료 후 운영(Live) 환경에서는 민감한 시스템 경로와 코드가 사용자에게 노출되는 보안 취약점을 방지하기 위해 화면에 출력되는 에러 메시지를 차단해야 합니다.
설정 방법
PHP 스크립트 상단 또는 공통 설정 파일에 아래와 같이 코드를 적용하여 display_errors 값을 0으로 변경합니다.
ini_set('display_errors', '0');
그누보드 환경에서 적용할 경우 /common.php 파일 등을 수정하여 에러 메시지가 화면에 보이지 않게 처리할 수 있습니다.
주의 및 확인 사항
- 실제 운영 환경에서는 에러 메시지를 사용자에게 노출하지 않도록
display_errors설정을 끄고, 필요한 경우 에러 로그를 통해 에러 정보를 기록하도록 설정하는 것이 좋습니다. - 에러 출력을 차단하더라도 시스템 내부적으로 발생하는 오류는 에러 로그를 통해 계속 추적해야 합니다.
상황별 판단 및 행동 가이드
| 내 상황 | 우선할 판단 | 다음 행동 |
|---|---|---|
| PHP 실행 중 하얀 화면이나 500 에러가 발생하며 원인을 알 수 없음 | 화면에 에러를 출력하도록 display_errors 및 error_reporting 설정이 꺼져 있는지 확인 | 문제 발생 페이지 상단에 ini_set('display_errors', 1); 및 error_reporting(E_ALL); 코드를 삽입하여 상세 에러 확인 |
| 특정 알림(E_NOTICE 등)을 제외하고 주요 오류만 확인하고 싶음 | 불필요한 노티스를 제외한 비트 연산자 조합 적용 필요 | 코드 상단에 error_reporting(E_ALL & ~E_NOTICE); 설정 적용 |
| 개발 및 문제 해결을 완료하여 운영 환경에 배포함 | 보안을 위해 사용자 화면에 상세 에러 및 경로 노출 차단 필요 | ini_set('display_errors', '0');(또는 Off)으로 변경하여 에러 출력 차단 및 로그 기록 활용 |
실전 FAQ
Q. 코드를 수정했는데도 에러 메시지가 화면에 나타나지 않는 이유는 무엇인가요?
- 답변: 서버(php.ini) 설정에서
display_errors자체가 원천적으로 차단되어 있거나, 상단에 삽입한 코드보다 먼저 실행되는 다른 설정 파일(예: 그누보드의common.php등)에서 에러 레벨을 다시 덮어쓰고 있을 수 있습니다. 공통 설정 파일의 초기화 구문 위치를 확인하거나php.ini파일에서display_errors = On설정을 직접 확인해야 합니다.
Q. 운영 환경에서 에러 출력을 끄면 디버깅은 어떻게 진행해야 하나요?
- 답변: 화면에 에러를 직접 노출하는 대신 PHP의 에러 로그 기능(
error_log()또는 서버의error_log파일)을 활용하여 사용자가 볼 수 없는 백그라운드 파일에 오류 기록이 남도록 설정해야 합니다.
함께 보면 좋은 글
참고자료
기타 참고자료
- jsonday.tistory.com — PHP 오류 표시 설정 및 보고 수준 설정
- solbel.tistory.com — php 에러 보이도록 설정하는 2가지 방법 (errorreporting / displayerrors)
- dut.goz.kr — PHP 에러 표시하기 또는 에러 표시하지 않기 및 무시하기 | 개발노트 | 코드그랩 | 디유서치
- wikidocs.net — 7.4 에러 처리와 디버깅 - AI가 알려주는 PHP - 여전히 쉽고 빠른 PHP
- sir.kr — 그누보드에서 php 에러 메시지 출력하기 - SIR - 개발자 커뮤니티
- 이전글PHP 환경에서 자바스크립트를 이용한 브라우저 창 크기 감지 및 활용 방법 26.10.15
- 다음글.htaccess를 이용한 특정 IP 및 도메인 접속 차단/허용 설정 가이드 26.10.14
댓글목록
등록된 댓글이 없습니다.