Tcl로 CGI 구동 하기

admin의 아바타

이 글은 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 ""
puts "<title>Tcl Cgi Test</title>"
puts "Hello World"

위 코드를 입력하면 타이틀바에 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로 구동이 되는데, 이부분은 저도 아직 잘... 다음에 기회가 닿는다면... 즐거운 시간되시길...