perl CGI를 개인 계정의 cgi-bin 폴더에서 실행 가능하게 하자!

|
크리에이티브 커먼즈 라이선스
Creative Commons License
perl을 이용해 cgi를 쓰려고 하니 Apache에 설정이 안되어 있었다.
아파치 투토리얼: CGI를 사용한 동적 페이지 생성
: http://httpd.apache.org/docs/2.0/ko/howto/cgi.html
에 자세히 나와있지만 버젼이 올라가면서 약간 바뀌었는지, 아니면 설정이 맞지 않는지 500 error가 나면서 실행이 되지 않는다. 인터넷에 자료를 찾아봐도 제대로 설정해놓은 것을 찾아보기 힘들었다. 대개 윈도우에서 apm을 설치하고 설정해놓은 것들은 많으나, 개인적으로 쓰는 서버인지 자기 폴더만 설정해 놓은 것이 대부분이다.

여기에 내가 쓴 방법을 적어놓는다. 시스템이 우분투이므로 다른 시스템과 약간 다를 수 있다.
여기서 다룰 이야기는 오로지 /home/*/public_html/cgi-bin/ 폴더에 .cgi와 .pl이 실행가능하도록 설정해놓는 것이다.

우선 mine.conf 에 cgi를 실행가능하도록 설정해놓는다. cgi-script를 찾아 uncomment 하면 된다.

sudo vi /etc/apache2/mods-enabled/mime.conf

.pl도 실행가능하게 하려면 아래와 같이 한다.

AddHandler cgi-script .cgi .pl

그리고 userdir.conf 을 설정한다. userdir.conf 파일이 없다면 링크를 만들도록 하자.

sudo ln -s /etc/apache2/mods-available/userdir.* /etc/apache2/mods-enabled/

이미 파일이 있다면 위 과정을 하지않고 userdir.conf를 바로 연다.

sudo vi /etc/apache2/mods-enabled/userdir.conf

이미 public_html까지는 설정되어 있을 것이다.
그 아래에 아래 글을 추가한다.

<Directory /home/*/public_html/cgi-bin>
Options +ExecCGI
AddHandler cgi-script .cgi .pl
</Directory>

그리고 apache를 재시작한다.

sudo /etc/init.d/apache2 restart

이제 완료되었다.

주의할 점은 cgi-bin 폴더와 파일에는 실행권한이 있어야 한다는 것이다. 755 정도 주는 것을 권장한다.

여기 테스트할 코드가 있다.

#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Welcome to the Strange World!\n";


이제 cgi를 즐기면 된다!
저작자 표시 비영리 동일 조건 변경 허락
신고
Trackback 459 And Comment 4
  1. Favicon of http://marukimm.tistory.com BlogIcon MaruKimm 2009.07.11 21:51 신고 address edit & del reply

    안그래도 동아리 서버에서 안돌아가더라;;

  2. 아이시클 2010.03.25 11:43 신고 address edit & del reply

    감사합니다. ^^


티스토리 툴바