APCu — 오류 처리 런타임 구성

이 함수의 동작은 php.ini의 설정에 영향을 받습니다.

오류 및 로깅 구성 옵션

Name Default Changeable Changelog
error_reporting NULL PHP_INI_ALL  
display_errors "1" PHP_INI_ALL  
display_startup_errors "1" PHP_INI_ALL Prior to PHP 8.0.0, the default value was "0".
log_errors "0" PHP_INI_ALL  
log_errors_max_len "1024" PHP_INI_ALL  
ignore_repeated_errors "0" PHP_INI_ALL  
ignore_repeated_source "0" PHP_INI_ALL  
report_memleaks "1" PHP_INI_ALL  
track_errors "0" PHP_INI_ALL Deprecated as of PHP 7.2.0, removed as of PHP 8.0.0.
html_errors "1" PHP_INI_ALL  
xmlrpc_errors "0" PHP_INI_SYSTEM  
xmlrpc_error_number "0" PHP_INI_ALL  
docref_root "" PHP_INI_ALL  
docref_ext "" PHP_INI_ALL  
error_prepend_string NULL PHP_INI_ALL  
error_append_string NULL PHP_INI_ALL  
error_log NULL PHP_INI_ALL  
syslog.facility "LOG_USER" PHP_INI_SYSTEM Available as of PHP 7.3.0.
syslog.filter "no-ctrl" PHP_INI_ALL Available as of PHP 7.3.0.
syslog.ident "php" PHP_INI_SYSTEM Available as of PHP 7.3.0.

PHP_INI_* 모드에 대한 자세한 내용과 정의는 구성 설정을 설정할 수 있는 위치를 참조하세요. 다음은 구성 지시문에 대한 간단한 설명입니다.

error_reporting int
오류 보고 수준을 설정합니다. 매개변수는 비트 필드를 나타내는 정수이거나 명명된 상수입니다. error_reporting 수준과 상수는 미리 정의된 상수php.ini에 설명되어 있습니다. 런타임에 설정하려면 error_reporting() 함수를 사용하십시오. display_errors 지시문도 참조하십시오.

기본값은 E_ALL & ~E_NOTICE & E_STRICT & ~E_DEPRECATED입니다. 이 설정은 E_NOTICE, E_STRICTE_DEPRECATED 레벨 오류를 표시하지 않습니다. 개발 중에 표시할 수 있습니다.

메모:

개발 중에 E_NOTICE를 활성화하면 몇 가지 이점이 있습니다. 디버깅 목적: NOTICE 메시지는 코드의 가능한 버그에 대해 경고합니다. 예를 들어 할당되지 않은 값을 사용하면 경고가 표시됩니다. 오타를 찾고 디버깅 시간을 절약하는 데 매우 유용합니다. NOTICE 메시지는 나쁜 스타일에 대해 경고합니다. 예를 들어, $arr[item]$arr['item']로 작성하는 것이 좋습니다. PHP는 "item"을 상수로 취급하려고 하기 때문입니다. 상수가 아니면 PHP는 배열에 대한 문자열 인덱스라고 가정합니다.

메모:PHP 외부의 PHP 상수

httpd.conf와 같이 PHP 외부에서 PHP 상수를 사용하는 것은 유용한 의미가 없으므로 이러한 경우에는 int 값이 필요합니다. 그리고 시간이 지남에 따라 오류 수준이 추가되기 때문에 최대값(E_ALL의 경우)이 변경될 수 있습니다. 따라서 E_ALL 대신 2147483647과 같은 숫자 값(E_ALL뿐만 아니라 모든 오류 포함)과 같은 숫자 값을 사용하여 지금부터 미래까지의 모든 비트 필드를 포괄하는 더 큰 값을 사용하는 것이 좋습니다.

display_errors string
이것은 오류를 출력의 일부로 화면에 인쇄해야 하는지 또는 사용자에게 숨겨야 하는지를 결정합니다.

"stderr" 값은 오류를 stdout 대신 stderr로 보냅니다.

메모:

이것은 개발을 지원하기 위한 기능이며 프로덕션 시스템(예: 인터넷에 연결된 시스템)에서 사용해서는 안 됩니다.

메모:

display_errors가 런타임에 설정될 수 있지만(ini_set()을 사용하여) 스크립트에 치명적인 오류가 있는 경우 아무 효과가 없습니다. 원하는 런타임 작업이 실행되지 않기 때문입니다.

display_startup_errors bool
display_errors가 켜져 있어도 PHP 시작 시퀀스에서 발생하는 오류는 표시되지 않습니다. 디버깅을 제외하고는 display_startup_errors를 꺼두는 것이 좋습니다.
log_errors bool
스크립트 오류 메시지를 서버의 오류 로그 또는 error_log에 기록해야 하는지 여부를 알려줍니다. 따라서 이 옵션은 서버에 따라 다릅니다.

메모:

프로덕션 웹 사이트에 표시되는 오류 대신 오류 로깅을 사용하는 것이 좋습니다.

log_errors_max_len int
log_errors의 최대 길이를 바이트 단위로 설정합니다. error_log에 소스에 대한 정보가 추가됩니다. 기본값은 1024이고 0은 최대 길이를 전혀 적용하지 않도록 합니다. 이 길이는 기록된 오류, 표시된 오류 및 $php_errormsg에도 적용되지만 error_log()와 같이 명시적으로 호출된 함수에는 적용되지 않습니다.

int를 사용하는 경우 값은 바이트 단위로 측정됩니다. 이 FAQ에 설명된 대로 약식 표기법을 사용할 수도 있습니다.

ignore_repeated_errors bool
반복되는 메시지를 기록하지 마십시오. ignore_repeated_source가 true로 설정되지 않은 경우 반복되는 오류는 같은 줄의 같은 파일에서 발생해야 합니다.
ignore_repeated_source bool
반복되는 메시지를 무시할 때 메시지의 출처를 무시합니다. 이 설정이 켜짐이면 다른 파일이나 소스라인에서 반복되는 메시지와 함께 오류를 기록하지 않습니다.
report_memleaks bool
이 매개변수가 On(기본값)으로 설정되면 이 매개변수는 Zend 메모리 관리자가 감지한 메모리 누수 보고서를 표시합니다. 이 보고서는 Posix 플랫폼의 stderr로 전송됩니다. Windows에서는 OutputDebugString()을 사용하여 디버거로 전송되며 » DbgView와 같은 도구를 사용하여 볼 수 있습니다. 이 매개변수는 디버그 빌드 및 error_reporting이 허용 목록에 E_WARNING을 포함하는 경우에만 영향을 미칩니다.
track_errors bool
활성화되면 마지막 오류 메시지는 항상 $php_errormsg 변수에 표시됩니다.
html_errors bool
활성화하면 오류 메시지에 HTML 태그가 포함됩니다. HTML 오류의 형식은 오류를 설명하는 페이지로 사용자를 안내하는 클릭 가능한 메시지를 생성하거나 오류를 일으키는 함수를 제공합니다. 이러한 참조는 docref_rootdocref_ext의 영향을 받습니다.

비활성화된 경우 오류 메시지는 일반 텍스트로만 표시됩니다.

xmlrpc_errors bool
활성화된 경우 일반 오류 보고를 끄고 오류를 XML-RPC 오류 메시지로 형식화합니다.
xmlrpc_error_number int
XML-RPC faultCode 요소의 값으로 사용됩니다.
docref_root string
새 오류 형식에는 오류를 설명하는 페이지 또는 오류를 일으키는 함수에 대한 참조가 포함됩니다. 매뉴얼 페이지의 경우 사용자 언어로 된 매뉴얼을 다운로드하고 이 ini 지시문을 로컬 사본의 URL로 설정할 수 있습니다. "/manual/"로 매뉴얼의 로컬 사본에 도달할 수 있는 경우 docref_root=/manual/을 사용하면 됩니다. 추가로 docref_ext=.html 사본의 파일 확장자와 일치하도록 docref_ext를 설정해야 합니다. 외부 참조를 사용할 수 있습니다. 예를 들어 docref_root=http://manual/en/ 또는 docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon &url=http%3A%2F%2Fwww.php.net%2F"를 사용할 수 있습니다. "

대부분의 경우 docref_root 값이 슬래시 "/"로 끝나기를 원합니다. 그러나 필요하지도 않고 필요하지도 않은 위의 두 번째 예를 참조하십시오.

메모:

함수 설명을 쉽게 조회할 수 있도록 하여 개발을 지원하는 기능입니다. 그러나 프로덕션 시스템(예: 인터넷에 연결된 시스템)에서는 절대 사용해서는 안 됩니다.

docref_ext string
docref_root를 참조하십시오.

메모:

docref_ext의 값은 점 "."으로 시작해야 합니다.

error_prepend_string string
오류 메시지 전에 출력할 문자열입니다. 오류 메시지가 화면에 표시될 때만 사용됩니다. 주요 목적은 오류 메시지에 추가 HTML 마크업을 추가할 수 있도록 하는 것입니다.
error_append_string string
오류 메시지 후에 출력할 문자열입니다. 오류 메시지가 화면에 표시될 때만 사용됩니다. 주요 목적은 오류 메시지에 추가 HTML 마크업을 추가할 수 있도록 하는 것입니다.
error_log string
스크립트 오류가 기록되어야 하는 파일의 이름입니다. 파일은 웹 서버의 사용자가 쓸 수 있어야 합니다. 특수 값 syslog가 사용되면 오류가 대신 시스템 로거로 전송됩니다. Unix에서는 syslog(3)를 의미하고 Windows에서는 이벤트 로그를 의미합니다. 참조: syslog(). 이 지시문이 설정되지 않으면 오류가 SAPI 오류 로거로 전송됩니다. 예를 들어 Apache의 오류 로그 또는 CLI의 stderr입니다. error_log()도 참조하십시오.
syslog.facility string
메시지를 기록하는 프로그램 유형을 지정합니다. error_log가 "syslog"로 설정된 경우에만 유효합니다.
syslog.filter string
기록된 메시지를 필터링할 필터 유형을 지정합니다. 허용되는 문자는 수정되지 않고 전달됩니다. 다른 모든 것은 \x 접두사가 붙은 16진수 표현으로 작성됩니다.
  • all – 기록된 문자열은 개행 문자로 분할되고 모든 문자는 변경되지 않고 전달됩니다.
  • ascii – 기록된 문자열은 개행 문자로 분할되고 인쇄할 수 없는 7비트 ASCII 문자는 이스케이프됩니다.
  • no-ctrl – 기록된 문자열은 개행 문자로 분할되고 인쇄할 수 없는 문자는 이스케이프됩니다.
  • raw – 모든 문자는 줄 바꿈에서 분할하지 않고 변경되지 않고 시스템 로거에 전달됩니다(7.3 이전의 PHP와 동일).

이 설정은 "syslog"로 설정된 error_logsyslog() 호출을 통한 로깅에 영향을 미칩니다.

메모:

raw 필터 유형은 PHP 7.3.8 및 PHP 7.4.0부터 사용할 수 있습니다.

이 지시문은 Windows에서 지원되지 않습니다.

syslog.ident string
모든 메시지에 추가되는 ident 문자열을 지정합니다. error_log가 "syslog"로 설정된 경우에만 유효합니다.