PHP 개발 중에 디버깅 오류는 개발자의 피할 수없는 부분입니다. 개발자가 문제를보다 빠르고 정확하게 식별하고 수정할 수 있도록 PHP는 Display_Errors 구성 옵션을 제공하여 오류 디버깅 경험을 크게 최적화 할 수 있습니다. 이 기사는 Display_Errors 구성을 결합하여 PHP 오류 디버깅의 효율성을 향상시키는 방법을 심층적으로 탐색합니다.
Display_Errors는 PHP가 오류가 발생할 때 클라이언트에 오류 메시지를 직접 표시하는지 여부를 제어하는 PHP의 구성 옵션입니다. 이 옵션이 ON 으로 설정되면 PHP는 오류 유형, 파일 경로, 줄 번호 및 관련 스택 추적 정보를 포함하여 브라우저에 자세한 오류 정보를 표시합니다. 이것은 개발 및 디버깅에 매우 도움이되지만 생산 환경에서는 일반적으로 민감한 정보가 유출되지 않도록 꺼집니다.
개발 환경에서 Display_Errors를 켜면 구문 오류, 경고 및 알림을 포함하여 PHP 프로그램의 다양한 오류를 실시간으로 볼 수 있습니다. 이 구성을 가능하게하려면 일반적으로 두 가지 방법이 있습니다.
가장 일반적인 방법은 PHP의 구성 파일 php.ini 에서 display_errors를 설정하는 것입니다.
<span><span><span class="hljs-attr">display_errors</span></span><span> = </span><span><span class="hljs-literal">On</span></span><span>
</span></span>
수정 후 PHP 서비스를 다시 시작하여 구성을 활성화하십시오.
서버의 전역 구성을 수정하지 않으려면 PHP 스크립트에서 Display_Errors를 동적으로 설정할 수 있습니다. 예를 들어:
<span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'display_errors'</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">error_reporting</span></span><span>(E_ALL); </span><span><span class="hljs-comment">// 모든 유형의 오류를 표시하십시오</span></span><span>
</span></span>
이러한 방식으로 php.ini 파일이 수정되지 않더라도 스크립트에서 오류 표시를 활성화 할 수 있습니다. 이러한 방식으로 다른 PHP 파일에 대한 다른 오류 표시 정책을 설정할 수 있습니다.
Display_Errors 만 켜면 디버깅 환경을 완전히 최적화하지 않으며 Error_Recorporting 구성을 합리적으로 사용하는 것이 중요합니다. Error_Reporting은 어떤 유형의 오류 PHP 보고서를 설정하는 데 사용됩니다. Display_Errors 와 함께 사용하여 지정된 수준에서 오류 메시지를 표시 할 수 있습니다.
예를 들어 모든 오류를 표시하도록 설정합니다.
<span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'display_errors'</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">error_reporting</span></span><span>(E_ALL); </span><span><span class="hljs-comment">// 모든 오류를 표시하십시오,경고 포함、알림 등</span></span><span>
</span></span>
이는 모든 오류, 경고 및 알림이 표시되어 개발자가 코드의 실행 상태를보다 포괄적으로 이해할 수 있도록 도와줍니다. 일반적으로 사용되는 error_reporting 구성 값은 다음과 같습니다.
E_ALL : 모든 오류를 표시하십시오.
E_ERROR : 치명적인 오류 만 표시하십시오.
e_warning : 경고 오류 표시.
E_Notice : 표시 알림 오류.
e_strict : 코드에 엄격한 표준 오류가 표시됩니다.
display_errors 와 error_reporting 구성을 결합하면보다 자세한 오류 디버깅 정보를 사용자 정의 할 수 있습니다.
개발 환경에서 Display_Errors를 활성화하는 것은 매우 유용하지만 프로덕션 환경에서는 일반적으로 민감한 오류 메시지를 사용자에게 노출하지 않도록 기능을 끄는 것이 좋습니다. 공격자는 이러한 오류 메시지를 사용하여 시스템의 구조 및 잠재적 취약점을 이해하고 공격을 시작할 수 있습니다.
프로덕션에서 display_errors를 비활성화하려면 php.ini 에서 설정할 수 있습니다.
<span><span><span class="hljs-attr">display_errors</span></span><span> = </span><span><span class="hljs-literal">Off</span></span><span>
</span></span>
또는 다음 코드를 사용하여 오류 표시를 동적으로 끄십시오.
<span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'display_errors'</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">error_reporting</span></span><span>(</span><span><span class="hljs-number">0</span></span><span>); </span><span><span class="hljs-comment">// 오류 가보고되지 않습니다</span></span><span>
</span></span>
프로덕션 환경에서는 오류 메시지를 페이지에 표시하지 않고 로그 파일에 로그인하는 것이 좋습니다. 이러한 방식으로 개발자는 여전히 로그 파일을보고 시스템이 정상적으로 실행 중인지 확인하면서 사용자에게 너무 많은 디버깅 정보를 표시하지 않도록 할 수 있습니다.
프로덕션 환경에서 오류를 효과적으로 추적하려면 오류 메시지를 직접 표시하는 대신 로그 오류 로그를 로그로 Log_errors 구성을 활성화 할 수 있습니다. 다음 구성을 사용하십시오.
<span><span><span class="hljs-attr">log_errors</span></span><span> = </span><span><span class="hljs-literal">On</span></span><span>
</span><span><span class="hljs-attr">error_log</span></span><span> = /path/to/php-error.log // 로그 파일 경로를 설정하십시오
</span></span>
이러한 방식으로 모든 오류 정보는 지정된 로그 파일에 기록되며 개발자는 사용자 경험에 영향을 미치지 않고 시스템 작동 및 디버그를 확인할 수 있습니다.
ERRER_REPORTING 및 LOG_ERRORS 와 결합 된 Display_Errors 구성 옵션을 합리적으로 구성하면 PHP 개발 중에 오류 디버깅 경험을 효과적으로 최적화 할 수 있습니다. 개발 환경에서는 오류 표시 및 상세한 오류 보고서를 켜면 문제를 신속하게 찾을 수 있습니다. 생산 환경에서 오류 표시를 끄고 오류 로깅을 활성화하면 시스템이 민감한 정보를 유출하지 못하도록 보호 할 수 있습니다. 이러한 구성을 마스터하면 개발자가 개발과 발사 단계에서보다 효율적으로 작업 할 수 있습니다.