웹 인터페이스(cgi 관련)

운형의 이미지

if [ "$FORM_COMMAND" = "Connect" ]; then                                                                                
        /usr/bin/sudo /bin/report_trafficStats                                                                   
        cat /var/www/report/trafficStats.html                                                                   
        touch /var/www/report/TEST                                                                              
fi                                                                                                                      
cat << EOF
이하 HTML코드 

이부분 머가 잘못 됐는지 알기 힘드네요...

        touch /var/www/report/TEST

이 코드는 이 if문이 작동 잘하는지 보려구 집어 넣은 테스트 코드 입니다.
TEST라는 파일이 정상적으로 생성됩니다.

웹인터 페이스에서 커넥트 버튼 클릭시\

        /usr/bin/sudo /bin/report_trafficStats

를 실행 시켜 /var/www/report/trafficStats.html 파일을 생성합니다.
이것 역시 디렉토리를 살펴 보면 정상적으로 생성되있습니다.

        cat /var/www/report/trafficStats.html 

요게 문제가 되는데... cgi파일이기에 당연히 connect버튼 클릭시 /var/www/report/trafficStats.html 의 내용이 브라우져로 나갈 거라
생각했습니다. 그런데
502 Bad Gateway
The CGI was not CGI/1.1 compliant.

라는 메시지만 출력됩니다.

웹프로그램 꽈당인 상태에서 이 부분 수정하려니 죽을 맛입니다.

참고로 이 cgi파일은 이전에 있던 것으로 정상 작동 됐으며, if문 부분만
제가 만든 c프로그램을 집어 넣은 것입니다.

도움좀 부탁드립니다...

progcom의 이미지

부분 소스만 봐서는 잘 모르겠는데, CGI 만들때 가장 많이 하는 실수 중 하나는 HTTP 헤더 출력을 안하는것입니다.

최소한 Content-Type 헤더를 전송해야 작동을 하게 됩니다.
Content-Type: text/html\r\n\r\n
정도를 출력해주시면 될겁니다.

운형의 이미지

다른데서 삽질해서 오류가 났던거네요..

(__)

Do you think that's the air you are breathing now?