[php 에러 메세지 출력하기 (php.ini 설정)]
기본적으로 php.ini 파일에서 에러 메세지를 출력하도록 세팅할 수 있지만,
초보는 그런거 찾아 들어가서 세팅 바꾸고 하는게 쉽지는 않다.
따라서 가장 간단한 것이 php 소스에 다음과 같은 코드를 붙여주면 된다.
error_reporting(E_ALL);
ini_set("display_errors", 1);
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
$string = "Hello World ! <br/>"
echo $string
?>
[php.ini 설정 변경시에는]
1.
예전 버전 같으면 함수에러가 발생하면 어떤 함수 때문에 에러가 발생되었다.
php-5.3 이후로는 http 500 내부 서버 오류를 출력하여 error_log 파일을 보지 않는한 알 수 없게 되었다.
서버 보안 때문인 듯 한데... 개발자 입장에서는 난감한 부분이다.
이를 해결하기 위해서는 php.ini에서 display_errors=Off 를 On으로 변경해야 한다.
2.
display_error=On으로 설정하게 되면 PHP Notice: Use of undefined constant DOCUMENT_ROOT - assumed...
이라는 notice 오류 메세지를 흔히 볼 수 있게 되었다.
배열에 대한 규제가 강화되어서 그런데... $_SERVER['DOCUMENT_ROOT'] 와 같이 []내부에 ''을 넣어 주면 해결된다.
3.
하지만 이러한 notice에러 출력은 빼고 싶다면 php.ini에서 error_reporting=E_ALL~E_NOTICE를 변경해 주면 된다.
0 : 모든 오류 보고를 끈다.
E_ERROR | E_WARNING | E_PARSE : 간단한 실행 오류만 보여준다.
E_ERROR | E_WARNING | E_PARSE | E_NOTICE : 간단한 실행 오류에 notice오류를 보여준다.
E_ALL ^ E_NOTICE : notice를 제외한 전체를 보여준다.
E_ALL : 모든 오류를 보고한다.
4.
Warning: date(): It is not safe to rely on the system’s timezone settings. 와 같은 에러 메세지는
php.ini에 timezone을 셋팅하지 않아서 생기는 문제이다.
php.ini에서 date.timezone="Asia/Seoul" 로 교체