ȸ¿øµî·Ï £ü ºñ¹øºÐ½Ç

¤ýÀÛ¼ºÀÚ °ü¸®ÀÚ
¤ýÀÛ¼ºÀÏ 2006-03-31 (±Ý) 12:46
¤ýÃßõ: 0  ¤ýÁ¶È¸: 18026      
¤ýIP:
[ÆÁ] PHP Setup for IISÀÇ ¿î¿ë¿¡ °üÇÑ ¸î °¡Áö

Á¤Çö(junghyun0816)   http://cafe.naver.com/monodevelop/389

Mono¿Í »ó°üÀº ¾ø½À´Ï´Ù¸¸ PHP Setup for IIS¸¦ ÀÌ¿ëÇؼ­ Windows ±â¹ÝÀÇ PHP À¥ »çÀÌÆ®¸¦ ¿î¿µÇÏ°íÀÚ ÇϽô ºÐµé¿¡°Ô´Â ºÐ¸íÈ÷ µµ¿òÀÌ µÇ¸®¶ó »ý°¢ÇÏ°í ±ÛÀ» ¾¹´Ï´Ù. PHP Setup for IIS´Â http://okstart.pe.kr ¿¡¼­ ¹ÞÀ¸½Ç ¼ö ÀÖÀ¸¸ç Windows NT 4.x Server Family, 2000 Server Family, Server 2003 Family¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. (Windows 9x ¹× Windows NT 4.x, Windows 2000 ProfessionalÀÇ Personal Web Server¿Í´Â ȣȯµÇÁö ¾Ê½À´Ï´Ù.)

rkttu.comÀº ÇöÀç Windows Server 2003ÀÇ IIS 6.0À» ¼­¹ö·Î »ç¿ëÇϸç PHP Setup for IIS¸¦ »ç¿ëÇÏ¿© PHP¿¡ °üÇÑ Áö¿øÀ» Ãß°¡ÇÏ¿´½À´Ï´Ù.

ÇÏÁö¸¸ ½ÇÁ¦·Î ¸î¸î PHP À¥ ¾îÇø®ÄÉÀ̼ǵéÀº ȣȯ¼º ¹®Á¦·Î ÀÎÇÏ¿© ÀüÇô ¿¹»óÇÏÁö ¸øÇϰųª ±â´ëÇÏÁö ¾Ê¾Ò´ø ºÒÆíÀ» ÃÊ·¡Çϱ⵵ ÇÕ´Ï´Ù. ÀÌ ±ÛÀ» ÅëÇÏ¿© Á¶±ÝÀ̳ª¸¶ µµ¿òÀÌ µÇ½Ã±â¸¦ ¹Ù¶ó¸ç ±ÛÀ» ¿Ã¸³´Ï´Ù.

1. ÈçÈ÷ ¹ß»ýÇÏ´Â ÆÛ¹Ì¼Ç ¹®Á¦

±âÁ¸ÀÇ À¯´Ð½º³ª ¸®´ª½º °è¿­ ¿î¿µ üÁ¦¿¡¼­´Â ¼¼ ÀÚ¸®ÀÇ ¼ýÀÚ·Î Æ۹̼ǿ¡ °üÇÑ ¸ðµç ¼³Á¤À» Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ Windows NTÀÇ º¸¾È ü°è´Â À̺¸´Ù ÈξÀ º¹ÀâÇÑ ±¸Á¶¸¦ ³ªÅ¸³À´Ï´Ù. µû¶ó¼­, ±âÁ¸¿¡ ³Î¸® »ç¿ëµÇ³Í chmod ¸í·É¾î³ª FTP¸¦ ÅëÇÑ ÆÛ¹Ì¼Ç Á¶Á¤Àº ºÒ°¡ÇÕ´Ï´Ù.

Windows NT °è¿­ÀÇ ¿î¿µ üÁ¦¿¡¼­´Â Á¢±ÙÀÇ ÁÖü°¡ »ç¿ëÀÚ¶ó´Â ´ÜÀ§¿¡ ÀÇÇÏ¿© ¹ß»ýµË´Ï´Ù. µû¶ó¼­, IISµµ ÇÕ´çÇÑ »ç¿ëÀÚ °èÁ¤À» ȹµæÇÑ »óȲ¿¡¼­ ÆÄÀÏÀ» Àаųª ¾²´Â ÀÛ¾÷À» ó¸®ÇÏ°Ô µÇ¾îÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ °èÁ¤Àº ½Ã½ºÅÛ °èÁ¤À¸·Î, [IUSR_ÄÄÇ»ÅÍÀ̸§]°ú °°Àº ÇüÅ·Π¹Ì¸® ¸¸µé¾îÁý´Ï´Ù.

Ưº°È÷ IISÀÇ °ü¸® ÄܼÖÀ» ÀÌ¿ëÇÏ¿© µð·ºÅ͸®¿¡ Á¢±ÙÇÏ´Â »ç¿ëÀÚÀÇ ±ÇÇÑÀ» ´Ù¸¥ °èÁ¤À¸·Î ÁÖÁö ¾Ê¾Ò´Ù¸é [IUSR_ÄÄÇ»ÅÍÀ̸§] °èÁ¤¿¡ ´ëÇÑ ±ÇÇÑ ÇÒ´çÀ» ÇØÁÖ´Â °ÍÀÌ ÆÛ¹Ì¼Ç ÇÒ´ç ÀÛ¾÷¿¡ ÇØ´çµË´Ï´Ù.

ÆÛ¹Ì¼Ç ÇÒ´ç ÀÛ¾÷Àº ÄÁÅÙÃ÷°¡ ÀúÀåµÈ µð·ºÅ͸®¸¦ Ž»ö±â·Î ¿­°í, ÇØ´ç °³Ã¼¸¦ ¿À¸¥ÂÊ ¹öÆ°À¸·Î Ŭ¸¯ÇÏ°í "¼Ó¼º" ¶Ç´Â "µî·Ï Á¤º¸" ¸Þ´º¸¦ ¼±ÅÃÇÏ¸é ³ªÅ¸³ª´Â ¼¼ºÎ »çÇ× ´ëÈ­ »óÀÚÀÇ "º¸¾È" ÅÇÀ» ÅëÇØ Á¶ÀýÇÒ ¼ö ÀÖ½À´Ï´Ù.

2. PHP.INI¿¡ ¼³Á¤µÈ Àӽà µð·ºÅ͸®¿¡ °üÇÏ¿©.

PHP.INI ÆÄÀÏ¿¡ ÆÄÀÏ ¾÷·Îµå ¹× ¼¼¼Ç 󸮸¦ À§ÇÑ Àӽà µð·ºÅ͸® °ü·Ã ¼³Á¤ÀÌ ÀÖ½À´Ï´Ù. ¿©±â¿¡ ¸í½ÃµÈ µð·ºÅ͸®´Â ¹Ýµå½Ã Everyone (±×·ì)¿¡ ´ëÇØ ¸ðµç ±ÇÇÑ ÇÒ´çÀ» ÇØÁÖ¾î¾ß ÇÕ´Ï´Ù.

3. IIS 6.0ÀÇ À¥ ¼­ºñ½º È®Àå¿¡ ´ëÇÏ¿©.

IIS 5.0°ú 6.0ÀÇ º¸¾È»óÀÇ Â÷ÀÌÁ¡ Áß °¡Àå ´«¿¡ ¶ç´Â °ÍÀº ISAPI ¹× CGI¿¡ ´ëÇÑ º¸¾È ¼³Á¤ÀÌ ±¸Ã¼È­µÇ¾ú´Ù´Â Á¡ÀÔ´Ï´Ù. Áï, IIS 6.0¿¡¼­´Â »ç¿ëÇÏ·Á´Â ISAPI DLLÀ̳ª CGI EXE´Â ¹Ýµå½Ã À¥ ¼­ºñ½º È®Àå ¼½¼Ç¿¡ µî·ÏµÇ¾î¾ß ÇÑ´Ù´Â ÀǹÌÀÔ´Ï´Ù. ¿©±â¿¡ µî·ÏÇÏÁö ¾Ê°í À¥ »çÀÌÆ® ¶Ç´Â ƯÁ¤ µð·ºÅ͸®ÀÇ ÀÀ¿ëÇÁ·Î±×·¥ Ç® ±¸¼º¿¡¸¸ µî·ÏÇÒ °æ¿ì µ¿ÀÛÇÏÁö ¾Ê°Ô µË´Ï´Ù.

4. PHP ±â¹Ý ÀÀ¿ëÇÁ·Î±×·¥µéÀº Ç×»ó º°µµÀÇ ÀÀ¿ëÇÁ·Î±×·¥À¸·Î µ¶¸³½ÃÄÑÁÙ°Í.

PHP ±â¹Ý ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ÀúÀåµÈ µð·ºÅ͸® °³Ã¼ÀÇ µî·Ï Á¤º¸¸¦ IIS °ü¸®ÀÚ¿¡¼­ »ìÆ캸¸é µð·ºÅ͸® ÅÇÀÌ Àִµ¥ ±×°÷ÀÇ ÀÀ¿ëÇÁ·Î±×·¥ ¼³Á¤ ¼½¼ÇÀ» »ìÆ캸¸é ±âº»°ªÀº ¸¸µé¾îÁ® ÀÖÁö ¾ÊÀº °ÍÀ¸·Î µÇ¾îÀÖ½À´Ï´Ù. ÁÂÃøÀÇ ¸¸µé±â ¹öÆ°À» ´­·¯¼­ º°µµ·Î ºÐ¸®¸¦ ½ÃÅ°°í, ¹Ýµå½Ã ½ÇÇà ±ÇÇÑ¿¡´Â "½ºÅ©¸³Æ® Àü¿ë"À» ¼±ÅÃÇØ ÁÖ¼Å¾ß ÇÕ´Ï´Ù. ±×¸®°í ´ç¿¬ÇÑ À̾߱âÀÌÁö¸¸ "±¸¼º" ¹öÆ°À» ´­·¯¼­ php È®ÀåÀÚ¿¡ ´ëÇÏ¿© php-cgi.exe ¿£ÁøÀ» ¿¬°á½ÃÄÑÁÖ¾î¾ß ÇÕ´Ï´Ù.

5. ÇÊ¿äÇÑ °÷¿¡¼­¸¸ PHP Çؼ®±â ¿£ÁøÀ» »ç¿ëÇϱâ

À§ÀÇ 4¹ø°ú °°ÀÌ PHP ÀÀ¿ëÇÁ·Î±×·¥µéÀ» µû·Î µ¶¸³½ÃÄѵθé ÇÊ¿äÇÑ °÷¿¡¼­¸¸ PHP ¿£ÁøÀ» È£ÃâÇϵµ·Ï ±¸ºÐÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¸°Ô ÇÏ¿© ¼º´ÉÀ» ÃÖ´ëÇÑ ¹ßÈÖÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â °Íµµ °¡´ÉÇÕ´Ï´Ù.

6. ±âº» ¹®¼­¿¡ À¯ÀÇÇÒ °Í

IIS´Â Apache¿Í ´Þ¸® Default ¶ó´Â ´Ü¾îÀÇ ÆäÀÌÁö°¡ ¹Ì¸® ÁöÁ¤µÇ¾îÀÖ½À´Ï´Ù. ±×·¡¼­ ±âº» ¹®¼­¿¡ index.html°ú index.php ÆÄÀÏÀ» Ãß°¡ÇØ ÁÖ´Â °ÍÀ» ÀØÁö ¸»¾Æ¾ß ÇÏ°Ú½À´Ï´Ù. ¶ÇÇÑ, ¿ì¼± ¼øÀ§¸¦ ³ô°Ô Àâ¾ÆÁÖ¾î »¡¸® ãµµ·Ï ÇØÁÖ´Â °Íµµ Áß¿äÇÕ´Ï´Ù.

7. Á¦·Îº¸µå¿Í ÅÂÅÍÅøÁîÀÇ ·Î±×ÀÎ ¹®Á¦

Á¦·Îº¸µå¿Í ÅÂÅÍÅøÁÀÇ ¹®Á¦´Â ¾Æ´Ò °ÍÀÔ´Ï´Ù. ºñ½ÁÇÏ°Ô È°¿ëÇÒ ¼ö ÀÖ´Â °÷ÀÌ ÀûÁö ¾ÊÀ» °ÍÀÌ¶ó º¸°í °øÅëÀÇ ÄÚµå µÎ ÁÙÀ» ¾Ë·Áµå¸³´Ï´Ù. ÀÌ ÄÚµå µÎ ÁÙÀ» ÇÊ¿äÇÑ °÷¿¡ ÀûÀýÈ÷ ¹èÄ¡ÇÏ´Â °ÍÀÌ Áß¿äÇϸ®¶ó »ý°¢µË´Ï´Ù.

7.1. Á¦·Îº¸µåÀÇ ·Î±×ÀÎ ¹®Á¦ ÇØ°á

Á¦·Îº¸µåÀÇ ·Î±×ÀÎ ¹®Á¦¸¦ ÇØ°áÇϱâ À§Çؼ­´Â lib.php ÆÄÀÏ¿¡¼­ ´ÙÀ½ÀÇ ¼½¼ÇÀ» ãÀ¸¼Å¾ß ÇÕ´Ï´Ù.

/*******************************************************************************
* ¿¡·¯ ¸®Æ÷Æà ¼³Á¤°ú register_globals_onÀ϶§ º¯¼ö Àç Á¤ÀÇ
******************************************************************************/

@error_reporting(E_ALL ^ E_NOTICE);
@extract($HTTP_GET_VARS);
@extract($HTTP_POST_VARS);
@extract($HTTP_SERVER_VARS);
@extract($HTTP_ENV_VARS);

À§¿Í °°Àº ¼½¼ÇÀÇ ¹Ù·Î ¹Ø ºÎºÐ¿¡ ¾Æ·¡ÀÇ Äڵ带 Áý¾î³Ö¾î ÁֽʽÿÀ.

$_QU = ($QUERY_STRING) ? "?" : "" ;
$REQUEST_URI = "$PHP_SELF"."$_QU"."$QUERY_STRING";

7.2. ÅÂÅÍÅøÁîÀÇ ·Î±×ÀÎ ¹®Á¦ ÇØ°á

ÅÂÅÍÅøÁîÀÇ ·Î±×ÀÎ ¹®Á¦¸¦ ÇØ°áÇϽñâ À§Çؼ­´Â inc_function.php ÆÄÀÏÀ» ¿­°í ´ÙÀ½ÀÇ ¼½¼ÇÀ» ã¾ÆÁֽʽÿÀ.

reset($HTTP_SERVER_VARS);
    while (list($key, $val) = each($HTTP_SERVER_VARS)) {
        $$key = $val;
    }

¹Ù·Î ¹Ø¿¡ µÎ ÁÙÀÇ Äڵ带 Áý¾î³Ö½À´Ï´Ù.

$_QU = ($QUERY_STRING) ? "?" : "" ;
$REQUEST_URI = "$PHP_SELF"."$_QU"."$QUERY_STRING";

µÎ °÷ ¸ðµÎ °°Àº Äڵ带 Áý¾î³Ö¾ú½À´Ï´Ù. ·Î±×ÀÎ ¹®Á¦°¡ ¹ß»ýÇÏ´Â PHP ÇÁ·Î±×·¥¿¡´Â À§¿Í °°Àº ¹æ¹ýÀ» »ç¿ëÇÏ¿© ÇØ°áÀÌ °¡´ÉÇÒ °ÍÀÌ¶ó º¾´Ï´Ù.

8. ÀϺΠPerl ÇÁ·Î±×·¥µéÀÇ ÆÄÀÏ ÀÔ/Ãâ·Â ¹®Á¦

IIS¿¡¼­´Â Active PerlÀ» »ç¿ëÇÏ¿© Perl À¥ ÇÁ·Î±×·¥µéÀ» ±¸µ¿ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ ¹®Á¦Á¡ÀÌ Àִµ¥, À¯´Ð½º³ª ¸®´ª½º¿Í´Â ´Þ¸® Windows NT´Â ½Éº¼¸¯ ¸µÅ©ÀÇ °³³äÀÌ ¾ø½À´Ï´Ù. ±×¿¡ µû¶ó¼­ ÆÄÀÏ ¾×¼¼½º¸¦ Çϱâ À§ÇÏ¿© ÆÄÀÏ ÇÚµéÀ» ¿­¾î³õÀ¸¸é ´Ù¸¥ ÇÁ·Î¼¼½º°¡ Á¢±ÙÇÒ ¼ö ¾ø°Ô µË´Ï´Ù. Áï, ´ÙÁß »ç¿ëÀÚ Á¢¼Ó¿¡ Ãë¾àÇÏ°Ô µË´Ï´Ù.

ÀÌ Á¡À» °íÄ¡±â À§ÇÏ¿© Á÷Á¢ Win32 API¸¦ Çڵ鸵ÇÏ¿© Shared Mode·Î ¿­µµ·Ï °íÃĵµ µÇ°Ú½À´Ï´Ù¸¸ ¸¹Àº ³ë·ÂÀÌ ÇÊ¿äÇÒ °ÍÀÔ´Ï´Ù. ÀÌ Á¡¿¡ ´ëÇÑ ¸¶¶¥ÇÑ ÇØ°áÃ¥Àº ¾ÆÁ÷±îÁö ¾ø´Âµí ÇÕ´Ï´Ù.

9. MBSA (Microsoft Baseline Security Analyzer)ÀÇ °ËÁø º¸°í¼­¿¡¼­ Á¶½ÉÇØ¾ß ÇÒ °Í

ÃÖ±Ù¿¡ °æÇèÇÑ »ç½Ç ÇÑ °¡Áö°¡ ÀÖ½À´Ï´Ù. MBSA ¶ó´Â À¯Æ¿¸®Æ¼´Â Microsoft»ç°¡ TechnetÀ» ÅëÇÏ¿© ¹«·á·Î ¹èÆ÷ÇÏ´Â º¸¾È Á¡°Ë À¯Æ¿¸®Æ¼ÀÔ´Ï´Ù. ±º´õ´õ±â ¾ø´Â Á¤È®ÇÑ ÇÖÇȽº¸¸À» ¼³Ä¡ÇÒ ¼ö À־ ÀÚÁÖ ¾Ö¿ëÇÏ°í ÀÖ´Â À¯Æ¿¸®Æ¼À̱⵵ ÇÕ´Ï´Ù. ÃÖ±Ù¿¡ Àú´Â ÀÌ À¯Æ¿¸®Æ¼¸¦ »ç¿ëÇϸ鼭 ÇÑ °¡Áö ½Ç¼ö¸¦ ÀúÁú·¶½À´Ï´Ù. ±×°ÍÀº ´Ù¸§ÀÌ ¾Æ´Ï¶ó IIS¿Í ¿¬°ü¼ºÀÌ ÀÖ´Â(?) World Wide Web Publishing Service ¶ó´Â À̸§ÀÇ ¼­ºñ½º¿¡ ´ëÇÑ º¸°í¼­¿´½À´Ï´Ù. MBSA´Â ÀÌ°ÍÀ» ±×´Ú ÇÊ¿ä¾ø´Â ¼­ºñ½ºÀ̱⠶§¹®¿¡ ²¨µµ ÁÁ´Ù°í À̾߱⸦ ÇÏ°í ÀÖ½À´Ï´Ù¸¸ ÀÌ´ë·Î ½ÃÇàÇÏ¿´´Ù°¡ ³¶Æи¦ ºÃ½À´Ï´Ù. CGI ±â¹ÝÀ¸·Î ¿¬°áµÈ PHP Çؼ®±â°¡ µ¿ÀÛÇÏÁö ¾Ê±â ½ÃÀÛÇÏ¿´½À´Ï´Ù. ÇÏ´Â ¼ö ¾øÀÌ ¿ø·¡´ë·Î º¹±¸¸¦ ÇÏ°í IIS¸¦ Àç½ÃÀÛÇÏ´Ï ±×Á¦¼­¾ß Á¦ÀÚ¸®¸¦ ã¾Ò½À´Ï´Ù. ÀÌ Á¡¿¡ ´ëÇؼ­ ´Ù¸¥ ÀÇ°ßÀÌ ÀÖÀ¸½Ã¸é µè°í ½Í½À´Ï´Ù. ^^

¼­¹ö °ü¸®ÀÚ ¿©·¯ºÐµé²²¼­´Â ¸¹Àº µµ¿òÀÌ µÇ¼Ì±â¸¦ ¹Ù¶ø´Ï´Ù.

³²Á¤Çö(junghyun0816) http://rkttu.com

  0
3500