>  기사  >  백엔드 개발  >  PHP 설정 오류 수준

PHP 설정 오류 수준

王林
王林원래의
2019-09-26 17:40:155872검색

PHP 설정 오류 수준

php 오류 수준 설정

php.ini에서는 오류에 대한 서버의 경보 수준을 설정할 수 있습니다. 기본적으로 PHP는 알림을 제외한 모든 오류를 보고합니다. 오류 보고 수준은 미리 정의된 상수

구문: ​​

int error_reporting ( [int level] )

를 통해 설정됩니다. 매개변수 수준이 지정되지 않은 경우 현재 오류 보고 수준이 반환됩니다. 다음 항목은 가능한 레벨 값입니다.

PHP 설정 오류 수준

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를 구성할 때 /conf/httpd.conf에 있는 http.conf 파일의 기본 구성에 이미 노출되어 있어야 합니다. php.ini 파일에서 이미 수행된 작업을 수행하려면 httpd.conf에 다음 줄을 추가하여 모든 php.ini 파일을 덮어씁니다:

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.