Perl CGI 프로그램을 FTP로 파일을 전송시 반드시 아스키 모드로 전송 해야합니다.
만일 바이너리 모드로 전송했을 경우"Internal Sever Error" 라는 메세지를 출력합니다.
일반적으로 *.cgi,*.pl,*.txt,*.html등은 아스키 모드로 전송하시면 되고...
압축파일,이미지 파일 *.tar,*.gz,*.gif,*.jpg등은 바이너리 모드로 전송을 하시면 됩니다.
※. 참고 ASCII모드 와 Binary모드
- ASCII모드란 일반적인 텍스트파일을 이야기 합니다.
우리가 알아볼수 있는 문자들로 이루어진 파일을 아스키모드라 합니다.
즉 메모장등에서 불러 보았을 때 내용을 읽을 수 있는 파일들입니다.
ASCII모드의 일반적인 파일은 .txt , .cgi , .pl , .html , .shtml , .c , .doc , .dat
- Binary(이진) 모드란 우리가 알아볼수 없는 이진파일 즉 기계어라 생각하시면 됩니다.
예) *.gif등의 파일들은 메모장으로 불렀을 때 알수 없는 내용으로 되어 있는 파일들입니다.
Binary 모드의 일반적인 파일은 주로 압축파일 zip , 그림파일 .gif , .jpg, .wav 등입니다.
Binary모드 사용 : .tar , .zip , .gz , .exe , .jpg , .gif, .wav 등
≫ .펄의 위치지정
펄스크립트에는 항상 맨 첫줄에 펄 프로그램을 수행할 서버 내의 펄 경로를 지정해 줍니다.
대부분의 경우 #!/usr/bin/perl 또는 #!/usr/local/bin/perl에 위치해 있습니다.
확인 방법 (텔넷상에서 확인 하셔야 합니다.)
which 프로그램명 ex) which perl
whereis 프로그램명 ex) whereis perl
※ 참고로 다른 프로그램 경로도 이와 같은 방법으로 찾으시면 됩니다.
sendmail 경로 찾은때 ex) whereis sendmail
텔넷계정이 없는 분은 사용하시는 서버 관리자에게 문의하십시오
≫ .CGI 파일의 Permission 바꾸기
chmod 명령으로 아래와 같이 permission 을 바꾸어야 합니다.
cgi 파일 : chmod 755 aaa.cgi
cgi-bin 디렉토리 : chmod 755 cgi-bin 또는 chmod 757 cgi-bin
data 파일 : chmod 777 aaa.dat 위작업은 Telnet 으로 접속하셔서 하시기 바랍니다.
해당 cgi 의 설치법을 우선적으로 참조하시기 바랍니다.
≫ .특수문자 처리
Perl에서는 @ $ " ; &등의 특수문자들을 문법의 일부로 사용합니다.
Perl에서 쓰는 특수문자를 일반 문자로 인식 시키려면 반드시 문자 앞에 백슬래쉬(\)를.....
붙여줘야 합니다.
예)mymail@mail.com 일 때 에러가 발생하므로 mymail\@mail.com 수정해야 합니다.
≫ .CGI 접근을 허용하지 않는 경우
서버에서 사용자에게 CGI 접근을 허용하지 않는 경우입니다.
대부분 호스팅업체는 CGI 접근은 허용하고 있습니다.
하지만 네띠앙,네이버,등 무료 계정에서는 대부분 CGI 접근을 허용하진 않을 경우가 많습니다.
≫ .Perl 에러 찾아 내기
cgi 실행시 에러가 나면 아래와 같이 텔넷모드에서 하시면 됩니다.
그러면 몇 번 라인에서 에러가 생겼는지 알수가 있습니다.
perl -c CGI파일명 하시면 됩니다.
ex) perl -c board.cgi
CGI 에러 메시지 설명
≫ .400 Bad Request
 HTTP의 규약문법에 맞지 않은 요청으로 발생하는 에러
≫ .401 Unauthorized
잘못된 ID와 패스워드를 입력할 경우 발생하는 에러
≫ .403 Forbidden
CGI파일의 퍼미션과 권한이 잘못되어져 있을 때 발생하는 에러
≫ .404 Not Found
 CGI요청한 CGI파일이 해당 디렉토리에 존재하지 않을 때 발생하는 에러
≫ .500 Internal Server Error
서버에 내부적인 오류로 CGI를 실행할 수 없을 때 발생하는 에러
≫ .501 Not Implemented
웹 브라우저에서 요청한 Form METHOD가 웹서버에서 허용한 것이 아닐 때 발생하는 에러
≫ .502 Bad Gateway
요청한 웹서버가 프락시서버나 게이트웨어서버로 실행되고 있을 때 발생되는 에러
≫ .503 Server Unavailable
웹 브라우저의 요청을 웹서버가 처리하지 못할 경우 발생되는 에러로 접속자가 많거나 다른
작업으로 지연될 때 주로 발생함