Perl : Premature end of script header 오류 발생시.
| 분류: Perl | 최초 작성: 2009-09-08 21:33:00 |
새 서버에 CGI 파일을 업로드하고 테스트할 때, 가끔 이유 없는 Internal Server Error 를 만날 때가 있다.
이런 경우 아파치 오류 로그를 확인해 보면, Premature end of script header 라는 오류 메시지가....
파일이 변경된 것도 아니고, 그렇다고 Perl 의 첫 쉬뱅 라인을 잘못 적은 것도 아닌데
멀쩡하게 돌아가던 녀석이 말썽을 부린다면...
(밑져야 본전이니) CGI 파일의 형식을 확인해 본다.
텍스트 파일의 경우 Windows 와 Linux 의 개행 문자가 서로 다른데,
리눅스 서버에 이런 Windows 형식의 개행문자(CR+LF) 로 작성된 CGI 파일이 업로드되면,
거의 백발백중 인터널 서버 에러를 만나게 된다.
특히, FTP 상으로 확인했을 때, PC에서 업로드 전 용량과 서버에 업로드된 후의 용량이 똑같다면
(PC가 윈도우이고 서버가 리눅스라면, 개행 문자가 2바이트에서 1바이트로 변하는 결과
파일의 용량이 줄어들 수밖에 없는데, 만약 이게 변하지 않는다면 이건 100%다.)
한번 CGI 파일의 형식을 유닉스 형식(의 개행문자)으로 변환한 후 업로드 해 본다.
* 많은 경우 FTP 프로그램이 텍스트 파일의 경우에 알아서 개행문자를 바꿔 올려주지만,
그렇지 않은 경우도 있기 때문에 (특히 상대편 서버 형식을 FTP 클라이언트 프로그램이 확인할 수
없는 경우) 주의해야 한다.
* 결론 : 상대편이 리눅스 서버인 경우, CGI 파일의 편집은...
이렇게 유닉스 파일 형식으로 해주는 것이 안전하다. 만약,
이렇게 Windows 파일 형식인 경우에는, 운 없는 경우 이런 답답한 경우를 당할 수 있다.
- 이 오류 잡는 데 하루종일을 소비해 본 사람은 이 기분을 이해하리라 생각한다.
이 문제의 해결에는 다음 게시물의 도움이 결정적이었습니다. 감사합니다.
http://www.webmasterworld.com/perl/3767754.htm