mod_url.c : ¹Ú¿ø±Ô README ÀÛ¼º: ±Ç¼ø¼± ¼öÁ¤ ¹Ú¿ø±Ô COPYRIGHT: GPL ÃÖÁ¾¾÷µ¥ÀÌÆ®: 2001/09/05 - 2000/10/11: glibc-2.1.x ¿Í glibc-2.1.9x ¿¡¼­ ¸ðµÎ µ¹¾Æ°¡µµ·Ï ¼öÁ¤ - 2001/04/03: FreeBSD ¹× Solaris¿¡¼­ Å×½ºÆ® °­±æ»ó (°¨»çÇÕ´Ï´Ù :-) - 2002/8/??:±èÁ¤±Õ´ÔÀÇ mod_url-apache2.c ¸ðµâ ¾÷·Îµå Çѱ۷ΠµÈ URLÀ» Á¤»óÀûÀ¸·Î ó¸®ÇÒ ¼ö ÀÖ°Ô ÇÏ´Â mod_url.cÀÇ ¼³Ä¡ ¹æ¹ýÀº ´ÙÀ½°ú °°½À´Ï´Ù. ÇöÀç ½ÇÇàµÇ°í ÀÖ´Â httpd ÇÁ·Î¼¼½º¸¦ È®ÀÎÇÏ¿© DSO(Dynamic Shared Object)°¡ »ç¿ë °¡´ÉÇÑÁö È®ÀÎÇÕ´Ï´Ù. 1. DSO È®ÀÎ =========== # httpd -l (in debian) Compiled-in modules: http_core.c mod_so.c mod_php3.c # /usr/sbin/httpd -l |grep mod_so (in redhat) mod_so.c ¿©±â¼­ mod_so.c °¡ º¸À̸é DSO¸¦ ÅëÇØ °£ÆíÇÏ°Ô mod_url.c¸¦ ¼³Ä¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. 2.1. ÄÄÆÄÀÏ(ÀϹÝÀûÀÎ °æ¿ì RedHatÀº ¾Æ·¡ ÂüÁ¶) ============================================ ¼³Ä¡´Â ¾ÆÆÄÄ¡ È®Àå ÅøÀÎ apxs¸¦ ÀÌ¿ëÇÕ´Ï´Ù. #apxs -i -a -c mod_url.c ÀÌ·¸°Ô ½ÇÇàÇÏ¸é µË´Ï´Ù. $ apxs -i -a -c mod_url.c gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_url.c ld -Bshareable -o mod_url.so mod_url.o cp mod_url.so /path_to/apache/libexec/mod_url.so chmod 755 /path_to/apache/libexec/mod_url.so [activating module `redurl' in /path_to/apache/etc/httpd.conf] 2.2. ÄÄÆÄÀÏ(RedHat °æ¿ì) ======================== ·¹µåÇòÀÇ °æ¿ì´Â apxs °¡ ÀνºÅçµÇÁö ¾Ê½À´Ï´Ù. apache-devel ÀÌ ¼³Ä¡µÇ¾î ÀÖ´ÂÁö È®ÀÎÇϽðí, $ rpm -q apache-devel apache-devel-1.3.12-25 (¹öÁ¯Àº 1.3.9 ÀÌ»óÀÌ¸é µÉ°Ì´Ï´Ù ) $ gcc -fpic -DSHARED_MODULE -I/usr/include/apache -c mod_url.c ȤÀº $ gcc -fpic -DSHARED_MODULE -I/usr/include/apache -DEAPI -c mod_url.c (EAPI ´Â ¹öÁ¯ 1.3.? À̻󿡼­ Áö¿øµÇ´Â °ÍÀε¥, error_log ¿¡¼­ ÀÌ¿¡ °ü·ÃµÈ warningÀÌ º¸À̸é À̸¦ Á¤ÀÇÇÏ°í ÄÄÆÄÀÏ Çϼ¼¿ä.) $ gcc -shared -o mod_url.so mod_url.o (ȤÀº ld -Bshareable -o mod_url.so mod_url.o) $ su # cp mod_url.so /usr/lib/apache/ # chmod 755 /usr/lib/apache/mod_url.so ±×·± ´ÙÀ½, /etc/httpd/conf/httpd.conf ¸¦ ¿­¾î¼­ ´ÙÀ½ ¶óÀÎÀ» Ãß°¡/È®ÀÎ [...]´Â »ý·«Çß´Ù´Â ¶æÀÔ´Ï´Ù. -----------8x----------- [...] LoadModule redurl_module modules/mod_url.so [...] AddModule mod_url.c [...] -----------8x----------- 2.3. mod_url È°¼ºÈ­ =================== ¾ÆÆÄÄ¡ ¼³Á¤ ÆÄÀÏÀÎ httpd.conf¸¦ ³¡ºÎºÐ¿¡ ´ÙÀ½°ú °°Àº ³»¿ëÀ» Ãß°¡ÇÕ´Ï´Ù. ---------8X--------- [...] CheckURL On -------------------- 2.4 Àç½ÇÇà ========== ÀÌÁ¦ ¾ÆÆÄÄ¡¸¦ Àç½ÇÇàÇϸé ÇÑ±Û URLÀÌ Á¦´ë·Î Àνĵ˴ϴÙ. # apachectl restart (or /etc/init.d/httpd restart or /etc/rc.d/init.d/httpd restart) 3. ±âŸ ======= ¹èÆ÷º»¿¡ ÆÐÅ°Áö ÇüÅ·Πµé¾î ÀÖ´Â ¾ÆÆÄÄ¡ À¥¼­¹öÀÇ ´ëºÎºÐÀº ´Ù¾çÇÑ ¸ðµâµéÀ» »ç¿ëÇÒ ¼ö ÀÖ°Ô Çϱâ À§ÇØ DSO¸¦ ±âº»ÀûÀ¸·Î »ç¿ë °¡´ÉÇÏ°Ô ÇØ µÎ¾úÀ¸³ª ¼Ò½º·ÎºÎÅÍ ÄÄÆÄÀÏÇÏ¿© ¾ÆÆÄÄ¡¸¦ ¼³Ä¡ÇÑ °æ¿ì¿¡´Â ¼Ò½º¸¦ Á÷Á¢ ÆÐÄ¡ÇÏ¿©¾ß ÇÕ´Ï´Ù. *ÁÖÀÇ: ÀÌ ¸ðµâÀº ÇöÀç ¾ÆÆÄÄ¡ 1.3.9¿Í 1.3.11¿¡¼­ Å×½ºÆ®µÇ¾ú½À´Ï´Ù. ´Ù¸¥ ¹öÀü¿¡ ´ëÇؼ­´Â Á¦´ë·Î Å×½ºÆ®µÇÁö ¸øÇÏ¿´À¸´Ï Ȥ½Ã ´Ù¸¥ ¹öÀü¿¡ ´ëÇؼ­ Å×½ºÆ®ÇØ º¸½Å ºÐÀº °á°ú¸¦ ¾Ë·Á ÁÖ½Ã¸é º» ¹®¼­¿¡ ¹Ý¿µÇϵµ·Ï ÇÏ°Ú½À´Ï´Ù. *ÁÖÀÇ: ¸®´ª½ºÀÇ °æ¿ì´Â glibc-2.1.x ȯ°æ¿¡¼­¸¸ µË´Ï´Ù. mod_url.c´Â glibc-2.1.xÀÇ iconv()ÇÔ¼ö¸¦ »ç¿ëÇÕ´Ï´Ù. * iconv() °¡ UTF8 <-> EUCKR À» Áö¿øÇÑ´Ù¸é ¾î¶² ½Ã½ºÅÛ¿¡ ´ëÇÏ¿©µµ Àû¿ë°¡´ÉÇÒ °ÍÀÔ´Ï´Ù. 4. TODO ======= * iconv¸¦ ÀÌ¿ëÇϹǷÎ, EUCKR -> UTF8, UTF8->EUCKR, ȤÀº UTF8 -> EUCJPµîµî ¾î¶°ÇÑ º¯È¯µµ °¡´ÉÇÕ´Ï´Ù. ÀÌ°ÍÀ» ¿É¼ÇÀ¸·Î ÁöÁ¤ÇÒ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù. CheckURL On ConvertFrom UTF-8 ConvertTo EUC-KR --[÷ºÎ³»¿ë]------------------------------------------------------------------ =============== FreeBSD ¿¡ ¼³Ä¡ =============== Æ÷Æ® ÄÝ·º¼ÇÀÇ iconv(/usr/ports/converts/iconv)¸¦ ¸ÕÀú ¼³Ä¡ÇÕ´Ï´Ù. /usr/local/share/iconv/charset.aliases ÆÄÀÏÀ» ¿­¾î euc-kr ºÎºÐÀ» ã¾Æ euckr º°¸íÀ» Ãß°¡ÇÕ´Ï´Ù. # grep -i '^euc-kr' /usr/local/share/iconv/charset.aliases euc-kr cseuckr euckr ¿ÜºÎ ¶óÀ̺귯¸®¸¦ »ç¿ëÇϹǷΠDSO ¼³Ä¡½Ã FreeBSD¿¡¼­´Â libiconv.a ÆÄÀÏÀ» Æ÷ÇÔ½ÃÄѾßÇÕ´Ï´Ù. ´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Î ¼³Ä¡ÇÕ´Ï´Ù. # apxs -i -a -c -I/usr/local/include -L/usr/local/lib -liconv mod_url.c ³ª¸ÓÁö ¼³Ä¡¹æ¹ýÀº À§¿¡¼­ ¼³¸íÇÑ¹Ù¿Í °°½À´Ï´Ù. =============== Solaris ¿¡ ¼³Ä¡ =============== ¼Ö¶ó¸®½ºÀÇ iconv ·ÎÄÉÀÏÀÇ ¹®Àڼ À̸§Àº EUCKR À̶ó´Â À̸§À» »ç¿ëÇÏÁö ¾ÊÀ¸¹Ç·Î mod_url.c ÀÇ ³»¿ëÁß ``EUCKR''À̶õ ¹®ÀÚ¿­À» ``EUC-KR'' À̶ó°í ¼öÁ¤ÇÑ ÈÄ À§¿¡¼­ ¼³¸íÇÑ °Í(Linux)°ú µ¿ÀÏÇÑ ¹æ¹ýÀ¸·Î ¼³Ä¡ÇÏ½Ã¸é µË´Ï´Ù. ´Ù¸¸ ¹®Àڼ À̸§Àº ¹Ýµå½Ã ´ë¹®ÀÚ EUC-KR À̰ųª ȤÀº man iconv_ko ȤÀº iconv_ko.UTF-8 ¿¡¼­ ¼³¸íÇÏ´Â KSC5601¿¡ ´ëÀÀÇÏ´Â À̸§À̾î¾ß ÇÕ´Ï´Ù. -Ãß½Å: ¼Ö¶ó¸®½º 7,8 ¿¡¼­ È®ÀÎÇß½À´Ï´Ù. ================ static À¸·Î ¼³Ä¡ ================ mod_urlÀÇ ¾ÆÆÄÄ¡ ¸ðµâ¸íÀÌ redurl À̹ǷΠmod_url.c ÀÇ ÆÄÀϸíÀ» mod_redurl.c ·Î º¯°æÇÏ°í ¸ÕÀú º¯°æÇÑ ÈÄ ¾ÆÆÄÄ¡ configure ¿É¼Ç¿¡ --add-module=/path/to/mod_redurl.c ¶ó°í Ãß°¡ÇÑ ÈÄ ÄÄÆÄÀÏ ÇÕ´Ï´Ù. À̸§À» ¹Ù²Ù¾úÀ¸¹Ç·Î httpd.conf ÆÄÀÏÀÇ ³»¿ë¿¡ ´ÙÀ½Ã³·³ Ãß°¡ÇÕ´Ï´Ù. CheckURL On