본문 바로가기

System engineer

apache CGI Perl 사용_ 간단한 파일 생성 및 URL 테스트



웹 서버가 클라이언트에 제공하는 데이터는 HTML로 작성 됩니다.

HTML은 프로토콜 http에 의해 클라이언트에게 전달되는데 이러한 HTML은 사용자들이 요구하는 동적인 데이터를 제공하지 못하기 때문에 이러한 목적을 위해 PHP, Perl, Python 같은 서버 사이드 스크립트를 이용합니다.

이러한 사이드 스크립트와 웹 서버가 서로 통신하는 방법을 정의한 것이 CGI 입니다.


Perl 사용

 CGI를 사용하려면 먼저 Apache 서버에서 이를 허용하는 설정을 해줘야 한다.


명령어

1 #yum install perl perl-CGI -y

2 #vim /etc/httpd/conf/httpd.conf

3     ScriptAlias /cgi-bin "/var/www/cgi-bin/"

4     <Directory "/var/www/cgi-bin">

5         AllowOverride None

6         Options +ExecCGI

7         Require all granted

8     </Directory>

9        AddHandler cgi-script  .cgi .pl

10 #systemctl restart httpd

      


명령어 설명

1 먼저 패키지를 설치해야 합니다. perl-CGI는 CGI에 대한 http의 요청과 응답을 담당하는 역할

2 apache 서버가 사용하는 설정 파일을 엽니다.

3 ScriptAlias 를 사용해 URL 상에서의 디렉토리 cgi-bin 은 시스템 상에서 /var/www/cgi-bin 을 가리킨다고 선업합니다.

4 CGI 데이터를 저장하고 실행할 디렉토리 정의

6 ExecCGI 옵션을 추가해 apache 서버가 이 디렉토리에서 CGI 실행을 허용하도록 합니다.

9 .cgi .pl 로 끝나는 파일을 CGI로 인식하도록 설정 합니다.

10 위 사항이 적용 되도록 아파치를 재시작 해줍니다.


 perl 테스트 파일 작성 후 확인


이제 서버에서 Perl을 사용할 수 있으므로 테스트를 진행해보겠습니다.

먼저 테스트용 파일을 생성하고 브라우저에서 실제 url로 접속해 perl이 제대로 작동하는지 테스트를 진행해보겠습니다.


명령어

1 #vim /var/www/cgi-bin/first.pl

2 #!/usr/bin/perl

3 print "Content-type: text/html\n\n";

4 print "<html>\n<body>\n;

5 print "<div style=\"width: 100%; font-size: 80px; font-weight: bold; text-align:

6 center;\">\n";

7 print "Perl Test page in www.test.com";

8 print "\n</div>\n";

9 print "</body>\n</html>\n;

10 #chmod 705 /var/www/cgi-bin/first.pl



명령어 설명

1 perl 테스트를 위해 파일을 vim으로 생성하고 열어 줍니다.

2 #!은 아래 스크립트를 읽어 실행할 프로그램을 Perl의 경로로 정의한다는 뜻힙니다. 보통 해석기나 통역기라는 의미로 인터프리터라고 부릅니다.

3~9. 브라우저에서 읽어 들일 텍스트를 작성합니다. 

10 파일을 읽고 실행 가능하도록 권한을 변경해줍니다.


이제 웹 상에서 www.test.com/cgi-bin/first.pl 로 접속하면 "Perl Test Page in www.test.com" 이라는 결과를 얻을 수 있을 것입니다.