| 헉! php 5.3.x에서 error log가 UTC 시간으로 남는다. | 작성일 : 2012/01/31 18:24 |
| 조회수 : 9603 |
|
제 목 : 헉! php 5.3.x에서 error log가 UTC 시간으로 남는다. 작성자 : 좋은진호(truefeel, http://coffeenix.net/ ) 작성일 : 2012.1.31(화) 작성일 : 2012.2.3(금) php 5.3.10 내용 추가 1월에 나온 php 5.3.9버전과 이후에 나온 5.3.10버전에서 error log를 남길 때 UTC기준으로 로그가 남는다. 로그 시간에 +9시간( 05:23:29 UTC이라면 14:23:29 )을 살펴봐야한다는 것은 여간 불편한게 아니다.
![]() 1. 왜 UTC기준으로 로그가 남을까 main/main.c 소스를 살펴봤더니 error log의 날짜포맷이 변경되었다. 1) php 5.3.8 이하, 5.2.x버전 (5.3.8버전에서 588번째줄)
2) php 5.3.9~5.3.10, 5.4 버전 5.3.9버전 기준으로 603번째줄을 보면 다음과 같이 되어 있다.
숫자 13은 날짜형식의 자리수이다. 날짜 형식에 e가 추가 되었는데 timezone을 말한다. UTC, GMC, Asia/Seoul 등을 의미한다. 여기까지는 문제가 없다. 그런데 '0 TSRMLS_CC'라고 표시되어 있다. 0이면 UTC이고, 1이면 localtime기준으로 시간을 표시한다. 따라서 localtime기준(우리 나라 시간)으로 로그를 남기고 싶다면 5.3.8이전 버전처럼 패치하고 설치해야 한다. ※ 티니(tini)가 php 5.3의 Revision Log를 살펴보니 이미 작년 11.25일에 위처럼 변경이 되어 있었다. 5.3.8은 작년 8월에 발표, 5.3.9은 올 1월에 발표. http://svn.php.net/viewvc/php/php-src/branches/PHP_5_3/main/main.c?revision=319823&view=markup Fixed bug #60373 (Startup errors with log_errors on cause segfault). * php 5.3.9~5.3.10 main.c 패치파일 (5.3.10에서 동일하게 사용가능) 직접 수정하기 귀찮으면 패치 파일 받아서 적용. php소스/main/ 디렉토리로 이동한 후 patch명령을 실행하면 된다.
2. php에서 error log를 남기려면 참고로 error log를 파일로 남길 때는 php.ini에서 다음과 같이 설정한다. 그리고 웹서버 데몬이 이 파일을 쓰기 가능하게 해준다.
|
||||||||||||||||
|
|