1. CGI 에러 체크 리스트
① CGI 스크립트는 반드시 확장자가 .cgi이어야 합니다.
② 스크립트는 public_html 디렉토리나 그 이하 디렉토리에 있어야 합니다.
cgi-bin 폴더는 public_html 폴더내에 존재하면 안됩니다.
③ Perl 스크립트는 반드시 아스키(ASCII) 모드로 업로드 하셔야 합니다.
④ Perl 스크립트의 가장 윗줄에 Perl의 경로를 정확하게 기재합니다.
⑤ CGI 스크립트는 반드시 실행가능한 퍼미션으로 변경해 주셔야 합니다.
chmod 705 file.cgi
⑥ CGI 스크립트에 의해 쓰기가 이루어질 파일은 모든 사람에게 쓰기 사용권한이
허용되어야 합니다.
chmod 707 file.html
⑦ CGI 스크립트에 의해 파일이 생성되어질 디렉토리도 모든 사람에게 쓰기가
허용되어야 합니다.
chmod 707 dir_name
⑧ 웹 상에서 스크립트가 실행이 안된다면, 스크립트를 텔넷 상에서 실행해 보십시오.
perl file.cgi
⑨ 스크립트가 유닉스 상에서는 잘 실행되나, 웹 상에서는 되지 않을 때 파일이나
디렉토리의 사용권한을 살펴보십시오.
⑩ 만약 프로그램 문법이나 코딩에 에러가 있다면 해당 에러메시지가 출력됩니다.
에러메시지를 참조하여 소스를 수정하여 주십시오.
2. CGI 에러 찾기
해당 스크립트 코드 내의 체크하고자 하는 부분에 다음과 같은 내용을 삽입하십시오.
print "Content-type: text/htmlnnn";
print "
exit;
웹브라우저 상에서 해당 CGI를 실행하여, 만약 "여기까지는 에러 없습니다."라는
글이 출력된다면 스크립트 내에서 위의 내용이 있는 부분까지는 정상적으로
실행된다는 의미입니다.
다시 위의 내용을 좀 더 아래에 삽입하여 테스트 해 보십시오.
만약 위의 메시지가 나오지 않는다면, 그 앞부분에 에러가 있다는 뜻입니다.
위의 내용을 좀 더 위에 삽입하여 에러가 있는 위치를 찾아내시면 됍니다
3. CGI 에러코드
1) 4로 시작하는 에러코드
: 실행시킨 CGI에 에러가 발생하여 웹서버에서 웹브라우저로 보내주는 에러코드 입니다
① 400 : Bad request
HTTP의 규약에 맞지않는 요청을 했을 경우에 발생하는 에러입니다.
② 401 : Unauthorized
인증(허가)되지 않은 ID와 패스워드를 입력했을 경우에 나타나는 것입니다.
③ 403 : Forbidden
요청한 CGI파일에 대한 권한이 없거나 실행 가능한 파일이 아님에도 실행하려
할 경우에 발생하는 에러입니다.
④ 404 : Not Found
요청한 CGI파일이 디렉토리에 존재하지 않을 경우에 발생하는 에러입니다.
2) 5로 시작하는 에러코드
: 실행시킨 CGI가 웹서버에서 실행도중 발생한 에러코드 입니다.
① 500 : Internal Server Error
에러범위가 넓은 경우이며 일반적인 웹서버의 내부적인 에러발생을 의미합니다.
펄의 경로나, 퍼미션이 잘못 설정 되었을 때, cgi파일이 UNIX용 아스키 파일이
아닐 경우 등에 발생합니다.
② 501 : Not Implemented
웹브라우저에서 요청한 Form METHOD 가 웹서버에서 허용하는 것이 아닐 경우에
발생하는 에러코드입니다.
③ 502 : Bad Gateway
요청한 웹서버가 프락시서버나 게이트웨이서버로 실행되고 있을 경우에 발생할
수 있는 에러코드입니다.
④ 503 : Server Unavailable
웹브라우저의 요청에 웹서버가 제대로 처리하지 못할 경우에 발생하는 에러로서
일반적으로 다른 작업처리로 인하여 요청한 처리를 하지 못할 경우 발생합니다.
① CGI 스크립트는 반드시 확장자가 .cgi이어야 합니다.
② 스크립트는 public_html 디렉토리나 그 이하 디렉토리에 있어야 합니다.
cgi-bin 폴더는 public_html 폴더내에 존재하면 안됩니다.
③ Perl 스크립트는 반드시 아스키(ASCII) 모드로 업로드 하셔야 합니다.
④ Perl 스크립트의 가장 윗줄에 Perl의 경로를 정확하게 기재합니다.
⑤ CGI 스크립트는 반드시 실행가능한 퍼미션으로 변경해 주셔야 합니다.
chmod 705 file.cgi
⑥ CGI 스크립트에 의해 쓰기가 이루어질 파일은 모든 사람에게 쓰기 사용권한이
허용되어야 합니다.
chmod 707 file.html
⑦ CGI 스크립트에 의해 파일이 생성되어질 디렉토리도 모든 사람에게 쓰기가
허용되어야 합니다.
chmod 707 dir_name
⑧ 웹 상에서 스크립트가 실행이 안된다면, 스크립트를 텔넷 상에서 실행해 보십시오.
perl file.cgi
⑨ 스크립트가 유닉스 상에서는 잘 실행되나, 웹 상에서는 되지 않을 때 파일이나
디렉토리의 사용권한을 살펴보십시오.
⑩ 만약 프로그램 문법이나 코딩에 에러가 있다면 해당 에러메시지가 출력됩니다.
에러메시지를 참조하여 소스를 수정하여 주십시오.
2. CGI 에러 찾기
해당 스크립트 코드 내의 체크하고자 하는 부분에 다음과 같은 내용을 삽입하십시오.
print "Content-type: text/htmlnnn";
print "
여기까지는 에러가 없습니다
";exit;
웹브라우저 상에서 해당 CGI를 실행하여, 만약 "여기까지는 에러 없습니다."라는
글이 출력된다면 스크립트 내에서 위의 내용이 있는 부분까지는 정상적으로
실행된다는 의미입니다.
다시 위의 내용을 좀 더 아래에 삽입하여 테스트 해 보십시오.
만약 위의 메시지가 나오지 않는다면, 그 앞부분에 에러가 있다는 뜻입니다.
위의 내용을 좀 더 위에 삽입하여 에러가 있는 위치를 찾아내시면 됍니다
3. CGI 에러코드
1) 4로 시작하는 에러코드
: 실행시킨 CGI에 에러가 발생하여 웹서버에서 웹브라우저로 보내주는 에러코드 입니다
① 400 : Bad request
HTTP의 규약에 맞지않는 요청을 했을 경우에 발생하는 에러입니다.
② 401 : Unauthorized
인증(허가)되지 않은 ID와 패스워드를 입력했을 경우에 나타나는 것입니다.
③ 403 : Forbidden
요청한 CGI파일에 대한 권한이 없거나 실행 가능한 파일이 아님에도 실행하려
할 경우에 발생하는 에러입니다.
④ 404 : Not Found
요청한 CGI파일이 디렉토리에 존재하지 않을 경우에 발생하는 에러입니다.
2) 5로 시작하는 에러코드
: 실행시킨 CGI가 웹서버에서 실행도중 발생한 에러코드 입니다.
① 500 : Internal Server Error
에러범위가 넓은 경우이며 일반적인 웹서버의 내부적인 에러발생을 의미합니다.
펄의 경로나, 퍼미션이 잘못 설정 되었을 때, cgi파일이 UNIX용 아스키 파일이
아닐 경우 등에 발생합니다.
② 501 : Not Implemented
웹브라우저에서 요청한 Form METHOD 가 웹서버에서 허용하는 것이 아닐 경우에
발생하는 에러코드입니다.
③ 502 : Bad Gateway
요청한 웹서버가 프락시서버나 게이트웨이서버로 실행되고 있을 경우에 발생할
수 있는 에러코드입니다.
④ 503 : Server Unavailable
웹브라우저의 요청에 웹서버가 제대로 처리하지 못할 경우에 발생하는 에러로서
일반적으로 다른 작업처리로 인하여 요청한 처리를 하지 못할 경우 발생합니다.