PHP ini 파일 ( php.ini
)을 확인했으며 display_errors
설정되었으며 오류보고 기능도 E_ALL
있습니다. Apache 웹 서버를 다시 시작했습니다.
이 줄을 스크립트 맨 위에 놓았으며 간단한 구문 분석 오류도 잡지 않습니다. 예를 들어, 변수를 a로 선언 "$"
하고 문을 닫지 않습니다 ";"
. 그러나 모든 스크립트는 이러한 오류에 빈 페이지를 표시하지만 실제로 브라우저 출력에서 오류 를 보고 싶습니다 .
error_reporting(E_ALL);
ini_set('display_errors', 1);
해야 할 일은 무엇입니까?
답변
이것은 항상 나를 위해 작동합니다 :
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);
그러나 이렇게해도 PHP가 구문 분석 오류를 표시하지는 않습니다. 이러한 오류를 표시하는 유일한 방법은 다음 줄로 php.ini를 수정하는 것입니다.
display_errors = on
에 액세스 할 수없는 php.ini
경우이 줄을 입력해도 효과 .htaccess
가있을 수 있습니다.
php_flag display_errors 1
답변
실제로 실행하기 전에 파일을 구문 분석하기 때문에 런타임에 오류 출력을 활성화하면 구문 분석 오류를 포착 할 수 없습니다 (이 과정에서 오류가 발생하면 아무것도 실행되지 않습니다). display_errors가 켜져 있고 적절한 error_reporting 수준이 사용되도록 실제 서버 구성을 변경해야합니다. php.ini에 액세스 할 수없는 경우 서버에 따라 .htaccess 또는 이와 유사한 것을 사용할 수 있습니다.
이 질문 은 추가 정보를 제공 할 수 있습니다.
답변
php.ini 내부 :
display_errors = on
그런 다음 웹 서버를 다시 시작하십시오.
답변
모든 오류를 표시하려면 다음을 수행하십시오.
1. 브라우저에서 호출하는 PHP 스크립트에 다음 줄이 있습니다 (일반적으로 index.php
).
error_reporting(E_ALL);
ini_set('display_errors', '1');
2. (a)이 스크립트에 구문 오류가 없는지 확인하십시오
-또는-
2 (b)의 설정 display_errors = On
에php.ini
그렇지 않으면, 그 두 줄을 실행할 수 없습니다!
명령 줄에서 다음을 실행하여 스크립트에서 구문 오류를 확인할 수 있습니다.
php -l index.php
당신이 경우 포함 다른 PHP 스크립트에서 스크립트를 그것은 것 에서 구문 오류가 표시 포함 된 스크립트를. 예를 들면 다음과 같습니다.
index.php
error_reporting(E_ALL);
ini_set('display_errors', '1');
// Any syntax errors here will result in a blank screen in the browser
include 'my_script.php';
my_script.php
adjfkj // This syntax error will be displayed in the browser
답변
일부 웹 호스팅 제공 업체를 통해 .htaccess
파일 에서 PHP 매개 변수를 변경할 수 있습니다 .
다음 줄을 추가 할 수 있습니다.
php_value display_errors 1
나는 당신과 같은 문제가 있었고이 솔루션은 그것을 고쳤다.
답변
“오류보고”또는 “디스플레이 오류”에 대한 모든 설정이 PHP 7에서 작동하지 않는 것 같습니다. 이는 오류 처리가 변경 되었기 때문입니다. 대신 이것을 시도하십시오 :
try{
// Your code
}
catch(Error $e) {
$trace = $e->getTrace();
echo $e->getMessage().' in '.$e->getFile().' on line '.$e->getLine().' called from '.$trace[0]['file'].' on line '.$trace[0]['line'];
}
또는 한 번에 예외와 오류를 포착하려면 (PHP 5와 호환되지 않습니다) :
try{
// Your code
}
catch(Throwable $e) {
$trace = $e->getTrace();
echo $e->getMessage().' in '.$e->getFile().' on line '.$e->getLine().' called from '.$trace[0]['file'].' on line '.$trace[0]['line'];
}
답변
이것은 작동합니다 :
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
?>