À¥È£½ºÆà ÄÚ·ÎÄÉÀÌ¼Ç ¼­ºñ½ºÀÌ¿ë¿ä±Ý ½Å±Ô½Åû Ãß°¡½Åû ¸¶ÀÌÆäÀÌÁö °í°´¼¾ÅÍ





HOME > °í°´¼¾ÅÍ > ÀÌ¿ë µµ¿ò¸»


CGI(Common Gateway Interface) »ç¿ë¹ý ¡¤ ¿¡·¯´ëÃ¥



1. CGI¶õ?

CGI(Common Gateway Interface)´Â ÇÁ·Î±×·¥À̳ª ½ºÅ©¸³Æ®¸¦ À¥ ¼­¹ö¿¡¼­ ½ÇÇàÇÏ°Ô ÇÏ¿© ±× °á°ú¸¦ À¥ ÆäÀÌÁö¿¡ º¸¿©ÁÖ´Â ¿ªÇÒÀ» ÇÕ´Ï´Ù. CGI ÆÄÀÏÀº »ç¿ëÀÚÀÇ À¥ »çÀÌÆ®¿¡ ¶Ù¾î³­ ±â´ÉÀ» ´õÇØÁÙ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é, ¿Â¶óÀÎÁÖ¹® Æû, °Ë»ö¿£Áø, Ä«¿îÅÍ, ¹æ¸í·Ï, °Ô½ÃÆÇ µîÀÌ ÀÖ½À´Ï´Ù. CGI ÇÁ·Î±×·¥Àº C, C++, Perl µî ´Ù¾çÇÑ ¾ð¾î·Î ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.


2. CGI »ç¿ëÇϱâ

- CGI ÇÁ·Î±×·¥Àº ÀڽŠ°èÁ¤ÀÇ public_html µð·ºÅ丮³ª ±× ¾Æ·¡ÀÇ ¾î´À µð·ºÅ丮¿¡¼­µç ½ÇÇàÀÌ °¡´ÉÇÕ´Ï´Ù.

- CGI ÇÁ·Î±×·¥ÀÇ È®ÀåÀÚ´Â ¹Ýµå½Ã .cgi ¸¦ »ç¿ëÇÏ¼Å¾ß À¥ ¼­¹ö°¡ CGI ÇÁ·Î±×·¥À¸·Î ÀνÄÇÏ¿© Á¤»óÀûÀ¸·Î ½ÇÇàÇÏ°Ô µË´Ï´Ù.

[ÁÖÀÇ!]
cgi-sys µð·ºÅ丮´Â »ç¿ëÀÚ Àüü°¡ °øÀ¯ÇϹǷΠ°³ÀÎÀûÀ¸·Î »ç¿ëÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.
cgi-bin µð·ºÅ丮¸¦ ¸¸µé¾î »ç¿ëÇϽô °ÍÀÌ º¸¾È¿¡ È¿°úÀûÀÔ´Ï´Ù.


3. cgiwrapÀÇ »ç¿ë

cgiwrapÀ» »ç¿ëÇÒ ¶§ÀÇ °æ·Î´Â ´ÙÀ½°ú °°½À´Ï´Ù.

http://www.ÀÚ½ÅÀǵµ¸ÞÀÎ/cgi-sys/cgiwrap/ÀÚ½ÅÀÇID/ÇÁ·Î±×·¥À̸§.cgi

À§¿Í °°ÀÌ cgiwrapÀ» »ç¿ëÇÒ ¶§¿¡´Â ÀÚ½ÅÀÇ public_html ³»ºÎÀÇ cgi-bin µð·ºÅ丮¿¡ ÇØ´ç ÇÁ·Î±×·¥À» ¼³Ä¡ÇÏ°í »ç¿ëÇÏ½Ã¸é µË´Ï´Ù. cgiwrapÀ» »ç¿ëÇϸé ÆÄÀÏÀÇ »ç¿ë±ÇÇÑ°ú º¸¾È¿¡ »ó´çÈ÷ ¸¹Àº ÀåÁ¡ÀÌ ÀÖ½À´Ï´Ù. »ý¼ºµÇ´Â ÆÄÀÏ¿¡ ¾²±â »ç¿ë±ÇÇÑÀ» ÁÙ ÇÊ¿ä°¡ ¾øÀ¸¹Ç·Î ÀڽŸ¸ ÀÐ°í ¾µ ¼ö ÀÖ´Â ÆÄÀÏ »ç¿ë±ÇÇÑÀ¸·Îµµ CGI¸¦ ½ÇÇà½Ãų ¼ö ÀÖ½À´Ï´Ù.


4. CGI »ç¿ë½Ã À¯ÀÇÁ¡

È£½ºÆ®¿ÍÀ̵å´Â º°´Ù¸¥ Ãß°¡ºñ¿ë¾øÀÌ CGI ÇÁ·Î±×·¥À» »ç¿ëÇÏ½Ç ¼ö ÀÖµµ·Ï ÇÏ°í ÀÖ½À´Ï´Ù. CGI´Â ¼­¹öÀÇ CPU¿Í ¸Þ¸ð¸®ÀÇ ½ÇÇà´É·Â¿¡ ¸¹Àº ¿µÇâÀ» ÁÝ´Ï´Ù. ±×·¯¹Ç·Î ¼­¹öÀÇ ½ÇÇà´É·Â¿¡ ³ª»Û ¿µÇâÀ» ¹ÌÄ¡Áö ¾Êµµ·Ï CGIÀÇ ³²¿ëÀº ÀÚÁ¦ÇÏ¿© Áֽñ⠹ٶø´Ï´Ù.


5. CGI·Î ¸ÞÀÏÀ» º¸³¾¶§¿¡ ÁÖÀÇÇØ¾ß ÇÒ »çÇ×

CGI¸¦ ÀÌ¿ëÇؼ­ ¸ÞÀÏÀ» ¹ß¼ÛÇÒ °æ¿ì¿¡ /usr/sbin/sendmailÀ» »ç¿ëÇϽøé ÇÁ·Î±×·¥ ³»¿¡¼­ ¸ÞÀÏ ¹ß¼ÛÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª, ¸ÞÀÏÀÌ ¼º°øÀûÀ¸·Î µµÂøÇÏÁö ¾Ê°í ¹Ý¼ÛµÉ °æ¿ì¿¡ ½Ã½ºÅÛ °ü¸®ÀÚ¿¡°Ô ¹Ý¼Û¸ÞÀÏÀÌ ¿À°Ô µÇ¹Ç·Î ¸ÞÀÏÀÇ ³»¿ëÀÌ ³ëÃâµË´Ï´Ù. ¶ÇÇÑ ¹Ý¼Û¸ÞÀÏÀÇ ¾çÀÌ ¸¹À» °æ¿ì¿¡ ¾÷¹«¿¡ ÁöÀåÀ» ÁÖ°Ô µË´Ï´Ù.

CGI·Î º¸³½ ¸ÞÀÏÀ» »ç¿ëÀÚ Àڽſ¡°Ô ¹Ý¼ÛµÇµµ·Ï ÇÏ´Â ¹æ¹ýÀº ¾Æ·¡¿Í °°ÀÌ sendmail¿¡ ¿É¼ÇÀ» ¼³Á¤ÇÏ¸é °£´ÜÈ÷ ÇØ°áµË´Ï´Ù.

/usr/sbin/sendmail -f ÀÚ½Å@Àڱ⵵¸ÞÀÎ

[°í±Þ]
cgiwrapÀ» »ç¿ëÇؼ­ ¸ÞÀÏÀ» ¹ß¼ÛÇϸé Ưº°ÇÑ ¼³Á¤ÀÌ ¾ø¾îµµ ÀÚ½ÅÀÌ º¸³½ ¸ÞÀÏ·Î ÀνÄÇÕ´Ï´Ù.

[ÁÖÀÇ!]
CGI·Î ¹ß¼ÛµÈ ¸ÞÀÏÀ» ¸ðµÎ Â÷´ÜÇÏ´Â ¸ÞÀÏ ¼­¹öµµ ÀÖÀ¸¹Ç·Î, Áß¿äÇÑ ¸ÞÀÏÀ» º¸³¾ ¶§´Â ¹Ýµå½Ã À̸ÞÀÏ Àü¿ëÇÁ·Î±×·¥À» ÀÌ¿ëÇϽʽÿÀ.


6. CGI µð¹ö±ë

È£½ºÆ®¿ÍÀ̵å´Â ½Ã½ºÅÛ ¿î¿µ¿¡ ´ëÇÑ Ã¥ÀÓÀÌ ÀÖÀ» »Ó, »ç¿ëÀÚÀÇ CGI ÇÁ·Î±×·¥ °³¹ß ¹× µð¹ö±ë¿¡ ´ëÇÑ Ã¥ÀÓÀº ¾ø½À´Ï´Ù. CGI ÇÁ·Î±×·¥»óÀÇ ¹®Á¦·Î ¹®ÀÇÇÏ´Â ÀÏÀº ÇÇÇØ Áֽñ⠹ٶó¸ç, ½Ã½ºÅÛ ¹®Á¦ ¶§¹®¿¡ CGI ½ÇÇà¿¡ ÀÌ»óÀÌ ÀÖ´Ù°í ÆǴܵǴ °æ¿ì¿¡¸¸ ¹®ÀÇÇØ Áֽñ⠹ٶø´Ï´Ù.

CGI´Â ÇÁ·Î±×·¡¹Ö°ú À¯´Ð½º ½Ã½ºÅÛ¿¡ ´ëÇÑ Àü¹®Áö½ÄÀÌ ÇÊ¿äÇÕ´Ï´Ù. ¸¸¾à ¿©·¯ºÐ²²¼­ CGI¿¡ ´ëÇÑ ´õ ÀÚ¼¼ÇÑ »çÇ×À» ¾Ë°í½ÍÀ¸½Ã´Ù¸é ¾Æ·¡ÀÇ ¸µÅ©¸¦ ÂüÁ¶ÇØ Áֽñ⠹ٶø´Ï´Ù.

Matt's Scripts Archive [http://www.worldwidemart.com/scripts/]
CGI-Resources [http://www.cgi-resources.com/Documentation/]
Boutell Web Tools [http://www.boutell.com/tools.html]


7. CGI ¿¡·¯ üũ¸®½ºÆ®

CGI ÇÁ·Î±×·¥¿¡¼­ ¹ß»ýÇÏ´Â ¿¡·¯µéÀº ´ëºÎºÐ °£´ÜÇÑ °ÍÀÔ´Ï´Ù. ¿©·¯ºÐÀÌ »ç¿ëÇϽô CGI ÇÁ·Î±×·¥¿¡¼­ ¿¡·¯°¡ ¹ß»ýÇß´Ù¸é ´ÙÀ½ÀÇ Ã¼Å©¸®½ºÆ®¸¦ Âü°íÇÏ¿© ¹®Á¦¸¦ ÇØ°áÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù.

  • CGI ½ºÅ©¸³Æ®´Â ¹Ýµå½Ã È®ÀåÀÚ°¡ .cgiÀ̾î¾ß ÇÕ´Ï´Ù.
  • ½ºÅ©¸³Æ®´Â public_html µð·ºÅ丮³ª ±× ÀÌÇÏ µð·ºÅ丮¿¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù.
  • Perl ½ºÅ©¸³Æ®´Â ¹Ýµå½Ã ¾Æ½ºÅ°(ASCII) ¸ðµå·Î ¾÷·ÎµåÇÏ¼Å¾ß ÇÕ´Ï´Ù.
  • Perl ½ºÅ©¸³Æ®ÀÇ °¡Àå À­ÁÙ¿¡ PerlÀÇ °æ·Î¸¦ ´ÙÀ½°ú °°ÀÌ Àû¾îÁÖ¼Å¾ß ÇÕ´Ï´Ù.

    #!/usr/local/bin/perl ¶Ç´Â
    #!/usr/bin/perl

  • CGI ½ºÅ©¸³Æ®´Â ¹Ýµå½Ã ½ÇÇà°¡´ÉÇÑ Æ۹̼ÇÀ¸·Î º¯°æÇØ ÁÖ¼Å¾ß ÇÕ´Ï´Ù. ÅÚ³ÝÀ¸·Î Á¢¼ÓÇÑ »óÅ¿¡¼­ ´ÙÀ½°ú °°ÀÌ ½ÇÇàÇØ ÁֽʽÿÀ.

    chmod 705 file.cgi

  • CGI ½ºÅ©¸³Æ®¿¡ ÀÇÇØ ¾²±â°¡ ÀÌ·ç¾îÁú ÆÄÀÏÀº ¸ðµç»ç¶÷¿¡°Ô ¾²±â »ç¿ë±ÇÇÑÀÌ Çã¿ëµÇ¾î¾ß ÇÕ´Ï´Ù.

    chmod 707 file.html

  • CGI ½ºÅ©¸³Æ®¿¡ ÀÇÇØ ÆÄÀÏÀÌ »ý¼ºµÇ¾îÁú µð·ºÅ丮µµ ¸ðµç»ç¶÷¿¡°Ô ¾²±â°¡ Çã¿ëµÇ¾î¾ß ÇÕ´Ï´Ù.

    chmod 707 dir_name

  • ¸¸¾à À¥ »ó¿¡¼­ ½ºÅ©¸³Æ®°¡ ½ÇÇàÀÌ ¾ÈµÈ´Ù¸é, ½ºÅ©¸³Æ®¸¦ ÅÚ³Ý »ó¿¡¼­ ´ÙÀ½°ú °°ÀÌ ½ÇÇàÇØ ÁֽʽÿÀ.

perl file.cgi

¸¸¾à ÇÁ·Î±×·¥ ¹®¹ýÀ̳ª ÄÚµù¿¡ ¿¡·¯°¡ ÀÖ´Ù¸é ÇØ´ç ¿¡·¯¸Þ½ÃÁö°¡ Ãâ·ÂµË´Ï´Ù. ¿¡·¯¸Þ½ÃÁö¸¦ ÂüÁ¶ÇÏ¿© ¼Ò½º¸¦ ¼öÁ¤ÇÏ¿© ÁֽʽÿÀ.

  • ½ºÅ©¸³Æ®°¡ À¯´Ð½º »ó¿¡¼­´Â Àß ½ÇÇàµÇ³ª, À¥ »ó¿¡¼­´Â µÇÁö ¾ÊÀ» ¶§ ÆÄÀÏÀ̳ª µð·ºÅ丮ÀÇ »ç¿ë±ÇÇÑÀ» »ìÆì º¸½Ê½Ã¿À.


8. CGI ¿¡·¯ ã±â

Perl ½ºÅ©¸³Æ®ÀÇ ¿¡·¯¸¦ ã´Â ´Ù¸¥ ÇÑ °¡Áö ¹æ¹ýÀº, ÇØ´ç ½ºÅ©¸³Æ® ÄÚµå ³»ÀÇ Ã¼Å©ÇÏ°íÀÚ ÇÏ´Â ºÎºÐ¿¡ ´ÙÀ½°ú °°Àº ³»¿ëÀ» »ðÀÔÇÏ´Â °ÍÀÔ´Ï´Ù.

print "Content-type: text/html\n\n\n";
print "<h1>¿©±â±îÁö´Â ¿¡·¯°¡ ¾ø½À´Ï´Ù</h1>";
exit;

À¥ºê¶ó¿ìÀú »ó¿¡¼­ ÇØ´ç CGI¸¦ ½ÇÇàÇÏ¿©, ¸¸¾à "¿©±â±îÁö´Â ¿¡·¯ ¾ø½À´Ï´Ù."¶ó´Â ±ÛÀÌ Ãâ·ÂµÈ´Ù¸é ½ºÅ©¸³Æ® ³»¿¡¼­ À§ÀÇ ³»¿ëÀÌ ÀÖ´Â ºÎºÐ±îÁö´Â Á¤»óÀûÀ¸·Î ½ÇÇàµÈ´Ù´Â ÀǹÌÀÔ´Ï´Ù. ´Ù½Ã À§ÀÇ ³»¿ëÀ» Á» ´õ ¾Æ·¡¿¡ »ðÀÔÇÏ¿© Å×½ºÆ® ÇØ º¸½Ê½Ã¿À. ¸¸¾à À§ÀÇ ¸Þ½ÃÁö°¡ ³ª¿ÀÁö ¾Ê´Â´Ù¸é, ±× ¾ÕºÎºÐ¿¡ ¿¡·¯°¡ ÀÖ´Ù´Â ¶æÀÔ´Ï´Ù. À§ÀÇ ³»¿ëÀ» Á» ´õ À§¿¡ »ðÀÔÇÏ¿© ¿¡·¯°¡ ÀÖ´Â À§Ä¡¸¦ ã¾Æ³»½Ã¸é µË´Ï´Ù.

 





Á¤º¸º¸È£ ¾ÈÀüÁø´Ü ÇÊÁõ