2014-01-23 3 views
1

일반적으로 잘 작동하는 CGI 스크립트가 있습니다.Apache CGI - 0이 아닌 종료 코드

그러나 특정 상황에서는 실패 할 수 있으며 종료 코드가 0이 아닙니다. 가끔 실패하기 전에 이미 헤더 등을 출력 할 것입니다.

예를 들어, 출력이 단지 수 있습니다 : 현재 123

의 프로그램 종료 코드와 다음

Content-Type: text/html; charset=utf-8 

<empty body> 

, 아파치는 HTTP 200로이 문제를 취급하고 행복하게 사용자에게 빈 페이지를 반환 .

Apache에서 이러한 프로그램 오류를 오류로 처리하도록하는 방법이 있습니까?

실제로 HTTP 500이 그런 경우에 반환 될 것이라고 생각했지만 분명히 틀렸습니다 (또는 잘못 구성된 것).

답변

1

mod_cgi/mod_cgid가/headers/body라는 상태 줄을 버퍼링하여 결국 CGI가 성공적으로 종료되는지 확인할 방법이 없습니다. 비어있는 본문이 있더라도 헤더가 종료 되 자마자 상태 표시 줄이 작성되므로 너무 늦습니다.

Apache를 제쳐두고 CGI가 자체 stdout을 버퍼링해야하거나 모든 stdout을 버퍼링하고 CGI를 완료까지 완료해야하는 경우가 있습니다.

+1

올바른 것으로 보입니다. 나는이 링크가 유용하다는 것을 발견했다. http://perl.apache.org/docs/2.0/api/ModPerl/Util.html#C_exit_ 그 링크에서 : "이 글을 쓰는 시점에서 무시되는 종료 상태." – jwd

관련 문제