php 오류 수준 설정
php.ini에서는 오류에 대한 서버의 경보 수준을 설정할 수 있습니다. 기본적으로 PHP는 알림을 제외한 모든 오류를 보고합니다. 오류 보고 수준은 미리 정의된 상수
구문:
int error_reporting ( [int level] )
를 통해 설정됩니다. 매개변수 수준이 지정되지 않은 경우 현재 오류 보고 수준이 반환됩니다. 다음 항목은 가능한 레벨 값입니다.
php.ini 파일에서 기본 보고서는 다음 명령문으로 설정된 알림을 제외한 모든 오류입니다.
error_reporting = E_ALL & ~ (E_NOTICE)
위 표현식에서 , 기호 "&"는 여러 조건의 병치를 나타내고, "~"는 부정을 나타내며 NOT을 의미합니다. 경고 메시지를 무시하려면 다음 문을 설정하면 됩니다.
error_reporting = E_ALL & ~(E_NOTICE) & ~(E_WARNING)
php.ini 파일에서 오류 관련 설정은 다음과 같습니다.
(1)error_reporting, 오류 수준을 설정
(2)display_errors, 오류 보고서 표시 여부, 열려면 ON으로 설정, 모든 오류 프롬프트를 닫으려면 OFF로 설정
(3)log_errors, 기본 설정은 OFF이며 오류 로그 기록 여부;
(4) track_errors, 기본 설정은 OFF 입니다. 이 옵션은 PHP가 기본 기능을 제공하도록 하는 대신 코드의 오류를 해결하는 데 도움이 될 수 있습니다.
PHP에 대한 오류 보고
php.ini 파일에는 많은 구성 설정이 있습니다. Linux에 PHP 및 Apache2 설치에 대한 설명서에 표시된 대로 php.ini 파일을 설정하고 적절한 디렉터리에 배치해야 합니다. PHP 애플리케이션을 디버깅할 때 알아야 할 두 가지 구성 변수가 있습니다. 두 변수와 해당 기본값은 다음과 같습니다.
display_errors = Off error_reporting = E_ALL
이 두 변수의 현재 기본값은 php.ini 파일에서 검색하여 확인할 수 있습니다. display_errors 변수의 목적은 분명합니다. 이는 PHP에게 오류를 표시할지 여부를 알려줍니다. 기본값은 끄기입니다. 그러나 개발 프로세스를 더 쉽게 하려면 이 값을 On으로 설정하세요.
display_errors = On
error_reporting 변수의 기본값은 E_ALL입니다. 이 설정은 잘못된 코딩 관행부터 무해한 팁, 오류까지 모든 것을 보여줍니다. E_ALL은 브라우저의 출력을 엉망으로 만드는 작은 일(예: 변수가 초기화되지 않음)에 대한 힌트도 화면에 표시하므로 개발 목적에 비해 너무 세분화되어 있습니다. 오류와 잘못된 코딩 관행만 보고 싶고 무해한 팁은 보고 싶지 않습니다. 따라서 error_reporting의 기본값을 다음 값으로 바꾸십시오.
error_reporting = E_ALL & ~E_NOTICE
Apache를 다시 시작하면 모든 설정이 완료됩니다. 다음으로 Apache에서 동일한 작업을 수행하는 방법을 알아봅니다.
서버 오류 보고
는 Apache가 수행하는 작업에 따라 달라지며, 컴퓨터에 여러 PHP 버전이 있을 수 있으므로 PHP에서 오류 보고를 켜는 것이 작동하지 않을 수 있습니다. Apache는 하나의 php.ini 파일만 볼 수 있기 때문에 Apache가 어떤 PHP 버전을 사용하고 있는지 알기 어려울 때가 있습니다. Apache가 자체 구성을 위해 어떤 php.ini 파일을 사용하는지 모르는 것은 보안 문제입니다. 그러나 올바른 오류 수준이 설정되도록 Apache에서 PHP 변수를 구성하는 방법이 있습니다. 또한 서버 측에서 이러한 구성 변수를 설정하여 php.ini 파일을 재정의하거나 선점하여 더 높은 수준의 보안을 제공하는 방법을 아는 것이 좋습니다.
Apache를 구성할 때
php_flag display_errors on php_value error_reporting 2039
이것은 php.ini 파일에 이미 설정된 display_errors 플래그를 재정의합니다. error_reporting 값입니다. 값 2039는 E_ALL & ~E_NOTICE를 나타냅니다. E_ALL을 사용하려면 값을 2047로 설정하세요. 이번에도 Apache를 다시 시작해야 합니다.
다음으로 서버에서 오류 보고를 테스트합니다.
error_reporting() 함수와 관련하여 일부 오류 메시지를 보호할 수 있지만 PHP 코어로 인해 발생한 오류는 보호할 수 없습니다. 왜냐하면 PHP 코어로 인해 발생한 오류는 직접적으로 PHP 파일 컴파일이 실패하도록 하기 때문입니다. PHP 코딩 규칙에 따라 작성하여 발생하는 오류는 차단할 수 없습니다.
일반적인 것은 다음과 같습니다:
// Turn off all error reporting;关闭所有的错误 error_reporting(0); // Report simple running errors;报告一个简单的运行错误 error_reporting(E_ERROR | E_WARNING | E_PARSE); // Reporting E_NOTICE can be good too (to report uninitialized // variables or catch variable name misspellings …);包括报告一些未初始化的变量或捕捉变量名的拼写错误 error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); // Report all errors except E_NOTICE // This is the default value set in php.ini;报告所有的错误但不包括E_NOTICE error_reporting(E_ALL ^ E_NOTICE); // Report all PHP errors (bitwise 63 may be used in PHP 3);报告所有的错误 error_reporting(E_ALL); // Same as error_reporting(E_ALL);同上 ini_set(’error_reporting’, E_ALL);
추천 튜토리얼: PHP 비디오 튜토리얼
위 내용은 PHP 설정 오류 수준의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!