|
|
Á¤Çö(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); À§¿Í °°Àº ¼½¼ÇÀÇ ¹Ù·Î ¹Ø ºÎºÐ¿¡ ¾Æ·¡ÀÇ Äڵ带 Áý¾î³Ö¾î ÁֽʽÿÀ.
$_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 |