이 글은 shriekout님이 작성하신 글입니다. 최대한 원본을 유지하였습니다.
Tcl로 CGI를 구동하는 방법에 대한 간단한 정리입니다. 윈도 XP에서 아파치 서버 하에서 테스트되었습니다. 서버설치에 대해서는 언급하지 않습니다.
시작하기
#!c:/Tcl/bin/tclsh
puts "Content-Type: text/html"
puts ""
첫 번째 줄에서 "c:/Tcl/bin/tclsh" 부분은 자신의 tclsh라는 프로그램이 깔려 있는 정확한 디렉토리를 적어줍니다. 이것을 아파치 디렉토리의 cgi 디렉토리에 넣어줍니다. 저 같은 경우 아파치 2.0.48 버전을 방금 깔았는데, 디렉토리는 "c:/Program Files/Apach Group/Apache2/cgi-bin" 입니다. 이곳에 위 코드를 작성하여, 넣어줍니다. 확장자는 아무것이나 상관없습니다. 가령 cgi.tcl라는 파일명으로 저장하였으면, 주소는 "http://localhost/cgi-bin/cgi.tcl" 입니다. 올바르게 입력되었다면, 아무것도 나타나지 않는 빈 화면이 나타납니다. 잘 못 되었다면, CGI관련 에러로 500번 에러가 납니다. 이 때는 위에서부터 차근차근 다시 해보세요.
Hello World 출력하기
자, 이제 Hello World라는 문구를 출력해 봅시다.
#!c:/Tcl/bin/tclsh
puts "Content-Type: text/html"
puts ""
위 코드를 입력하면 타이틀바에 Tcl Cgi Test라는 글자가 나오고, 메인화면에 Hello World라는 글자가 나옵니다.
한글 출력
한글출력을 시도해 봅시다. 위 두 번째 장에서 Hello World라는 문장을 "안녕, 세상아"라는 문장으로 바꾸어주면, 글자가 깨어져 나옵니다. 이것을 한글로 보려면, 익스를 사용하신다면, 보기 메뉴에서 인코딩을 한글로 강제 적용해 주어야 한글로 나옵니다. 하지만, ncgi라는 패키지를 사용하면, 한글로 자동으로 인코딩해 줍니다. 소스는 아래 있습니다.
#!c:/Tcl/bin/tclsh
package require ncgi
ncgi::header "text/html; charset=euc-kr"
puts "<title>Tcl로 Cgi 구동하기</title>"
puts "안녕, 세상아!"
한글이 잘 나옵니다.
끝내며...
html 관련 모든 태그들은 잘 됩니다. puts 명령문 안에 html 태그들을 넣어주면 됩니다. tk도 cgi로 구동이 되는데, 이 부분은 저도 아직 잘... 다음에 기회가 닿는다면... 즐거운 시간 되시길...