[ mod_uploader ¤È¤Ï? | ưºî¥µ¥ó¥×¥ë | ưºî´Ä¶ | ¥À¥¦¥ó¥í¡¼¥É | ¥é¥¤¥»¥ó¥¹ | ¥Ð¥°¾ðÊó | ¥³¥ó¥Ñ¥¤¥ëÊýË¡ | ¥¤¥ó¥¹¥È¡¼¥ë | ÀßÄê | µ¯Æ° | ¥È¥é¥Ö¥ë¡¦¥·¥å¡¼¥Æ¥£¥ó¥° | ¥Æ¥ó¥×¥ì¡¼¥È¤Î½ñ¼° | ¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹ | API ¥É¥¥å¥á¥ó¥È | ¥Ä¡¼¥ë | »²¹Íʸ¸¥ ]
mod_uploader ¤Ï¡¤¤è¤¯¤¢¤ë¥¢¥Ã¥×¥í¡¼¥À¤ò Apache ¤Î¥â¥¸¥å¡¼¥ë¤È¤·¤Æ ¼ÂÁõ¤·¤¿¤â¤Î¤Ç¤¹¡¥°Ê²¼¤Î¤è¤¦¤ÊÆÃŤ¬¤¢¤ê¤Þ¤¹¡¥
http://acapulco.dyndns.org:8888/up/
mod_uploader ¤Ï¡¤UNIX ·Ï OS µÚ¤Ó Windows ¤Çưºî¤·¤Þ¤¹¡¥ ¾ÜºÙ¤ò°Ê²¼¤Ë¼¨¤·¤Þ¤¹¡¥
³«È¯¤Ï¡¤Linux kernel 2.6.10¡¤GCC 3.3.5¡¤Apache 2.0.52¡¤ImageMagick 6.1.8.8 ¤Ç¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡¥
The zlib/libpng License (ËÝÌõ) ¤Ë½¾¤¤¤Þ¤¹¡¥
¥Ð¥°¤ò¸«¤Ä¤±¤¿¾ì¹ç¤Ï¡¤¥ê¥ó¥¯Àè¤Î¡Ö¿·µ¬¥ì¥Ý¡¼¥È¡×¤«¤é½ñ¤¹þ¤ó¤Ç¤¯¤À¤µ¤¤¡¥
GCC ¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¾ì¹ç¤Ï¡¤
$ ./configure
$ make
¤È¤·¤Þ¤¹¡¥Intel C++ Compiler ¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¾ì¹ç¤Ï¡¤
$ CC=icc ./configure
$ make
¤È¤·¤Þ¤¹¡¥
configure ¤Ï¼¡¤Î¥ª¥×¥·¥ç¥ó¤ò¼õ¤±ÉÕ¤±¤Þ¤¹¡¥¥¨¥é¡¼¤¬¤Ç¤¿¾ì¹ç¤Ï¡¤--with-apxs2 ¡¤--with-aprconf ¤ä --enable-iconv-const ¤ò»î¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡¥
¤Þ¤º¡¤UNIX ·Ï OS ¤Ç configure ¤·¤Þ¤¹¡¥
$ ./configure
¼¡¤Ë¡¤¥Ç¥£¥ì¥¯¥È¥ê¤ò´Ý¤´¤È Windows ¤Ë¥³¥Ô¡¼¤·¡¤src/GNUmakefile.win32 ¤Î¼¡¤ÎÉô ʬ¤ò¡¤Apache ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ª¤è¤ÓImageMagick ¤ò¥¤¥ó ¥¹¥È¡¼¥ë¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ë½ñ¤´¹¤¨¤Þ¤¹¡¥
APACHERDIR := C:/Server/Apache2
MAGICKDIR := C:/Application/Image/Edit/ImageMagick
°Ê¾å¤¬´°Î»¤·¤¿¤é¡¤src/GNUmakefile.win32 ¤ò»È¤Ã¤Æ make ¤·¤Þ¤¹¡¥
> cd src
> vsvars32.bat
> make -f GNUmakefile.win32
vsvars32.bat ¤Ï¡¤¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤é Visual C++ ¤ò»È¤¦¤¿¤á¤Î´Ä¶ÀßÄê ¤ò¹Ô¤¦¥¹¥¯¥ê¥×¥È¤Ç¤¹¡¥Visual C++ ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼ ¤Î Common7/Tools ¤Ë¤¢¤ê¤Þ¤¹¡¥
¼¡¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤À¤±¤Ç OK ¤Ç¤¹¡¥
$ su
# make install
¥³¥ó¥Ñ¥¤¥ë or ¥À¥¦¥ó¥í¡¼¥É¤·¤¿ mod_uploader.so ¤ò Apache ¤ò¥¤¥ó¥¹¥È¡¼ ¥ë¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Ë¤¢¤ë modules ¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥³¥Ô¡¼¤·¡¤Apache ¤ÎÀßÄê¥Õ¥¡¥¤¥ë (httpd.conf) ¤Ë
LoadModule uploader_module modules/mod_uploader.so
¤òÄɲä·¤Þ¤¹¡¥
¼¡¤Ë¡¤´Ä¶ÊÑ¿ô APR_ICONV_PATH ¤Ë¡¤Apache ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¥Ç¥£¥ì¥¯ ¥È¥ê°Ê²¼¤Ë¤¢¤ë bin/iconv ¥Ç¥£¥ì¥¯¥È¥ê¤Ø¤Î¥Ñ¥¹¤ò»ØÄꤷ¤Þ¤¹¡¥¤³¤ì¤¬Àµ ¾ï¤Ë¹Ô¤ï¤ì¤Æ¤¤¤Ê¤¤¤È¡¤¡Öʸ»ú¥³¡¼¥É¤ÎÊÑ´¹¤ò¹Ô¤¦¥³¥ó¥Ð¡¼¥¿¤¬Â¸ºß¤·¤Þ¤» ¤ó¡¥¡×¤È¤¤¤¦¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤¹¡¥
ÀßÄê¤Ï¡¤Apache ¤ÎÀßÄê¥Õ¥¡¥¤¥ë(.htaccess ¤ÏÉÔ²Ä)¤Ë¡¤°Ê²¼¤Î¤è¤¦¤Ëµ½Ò ¤·¤Þ¤¹¡¥(* °õ¤¬¤Ä¤¤¤Æ¤¤¤ë¤â¤Î¤Ïɬ¿Ü) ¥Æ¥ó¥×¥ì¡¼¥È¤Ï¡¤tmpl ¥Ç¥£¥ì¥¯¥È¥ê¤ËÆþ¤Ã¤Æ¤¤¤ë view.htm¡¤download.htm¡¤ thumbnail.htm¡¤error.htm ¤òÍøÍѤ·¤Æ¤¯¤À¤µ¤¤¡¥
<Location ¥¢¥Ã¥×¥í¡¼¥À¤òÀßÃÖ¤¹¤ë¾ì½ê>
SetHandler uploader
Url ¥¢¥Ã¥×¥í¡¼¥À¤Î URL (RSS ¤ÎÀ¸À®¤ËÍøÍÑ)
FileDirectory ¥¢¥Ã¥×¥í¡¼¥É¥Õ¥¡¥¤¥ë¤òÊݸ¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê [*]
ThumbDirectory ¥µ¥à¥Í¥¤¥ë²èÁü¤òÊݸ¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê [*]
TmpDirectory °ì»þ¥Õ¥¡¥¤¥ë¤òÊݸ¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê [*]
LockDirectory ¥í¥Ã¥¯¥Õ¥¡¥¤¥ë¤òÊݸ¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê [*]
MaxFileSize °ì²ó¤Ë¥¢¥Ã¥×¥í¡¼¥É¤Ç¤¤ë¥Õ¥¡¥¤¥ë¤ÎºÇÂ祵¥¤¥º(KB)
TotalFileSizeLimit ¥Õ¥¡¥¤¥ë¤Î¹ç·×¥µ¥¤¥º¤Î¾å¸ÂÃÍ(KB)
TotalFileNumberLimit ¥Õ¥¡¥¤¥ë¤Î¸Ä¿ô¤Î¾å¸ÂÃÍ
PerPageItemNumber 1 ¥Ú¡¼¥¸¤¢¤¿¤ê¤Ëɽ¼¨¤¹¤ë¥¢¥¤¥Æ¥à¿ô
ViewTemplateFile ¥È¥Ã¥×¥Ú¡¼¥¸¤Î¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë [*]
DownloadTemplateFile DL pass ÆþÎϲèÌ̤Υƥó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë [*]
ThumbTemplateFile ¥µ¥à¥Í¥¤¥ë¥Ú¡¼¥¸¤Î¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë [*]
ErrorTemplateFile ¥¨¥é¡¼¥Ú¡¼¥¸¤Î¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë [*]
</Location>
http://foo/up ¤ËÀßÃÖ¤¹¤ë¾ì¹ç¤ÎÀßÄêÎã¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡¥/css ¤ä /thumb ¤Î Alias ¤Ïɬ¿Ü¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡¥¥Æ¥ó¥×¥ì¡¼¥È¤ò½ñ¤´¹¤¨¤¿¤¯¤Ê¤¤ ¾ì¹ç¤Ë»ØÄꤷ¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡¥(¤³¤ì¤Ï¤¢¤¯¤Þ¤Ç¤âÎã¤Ç¤¹¡¥¥Ç¥£¥ì¥¯¥È¥ê¤ä ¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹¤Ï´Ä¶¤è¤Ã¤Æ°ã¤Ã¤Æ¤¤Þ¤¹)
<Location /up>
SetHandler uploader
Url "http://acapulco.dyndns.org/up/"
FileDirectory "Z:/prog/Apache/Uploader/file"
ThumbDirectory "Z:/prog/Apache/Uploader/thumb"
TmpDirectory "Z:/prog/Apache/Uploader/tmp"
LockDirectory "Z:/prog/Apache/Uploader/lock"
MaxFileSize 1024
TotalFileSizeLimit 10240
TotalFileNumberLimit 1000
PerPageItemNumber 20
ViewTemplateFile "Z:/prog/Apache/Uploader/tmpl/view.htm"
DownloadTemplateFile "Z:/prog/Apache/Uploader/tmpl/download.htm"
ThumbTemplateFile "Z:/prog/Apache/Uploader/tmpl/thumbnail.htm"
ErrorTemplateFile "Z:/prog/Apache/Uploader/tmpl/error.htm"
</Location>
Alias /css "Z:/prog/Apache/Uploader/css"
Alias /thumb "Z:/prog/Apache/Uploader/thumb"
Windows ¤Ç¥µ¥à¥Í¥¤¥ëºîÀ®µ¡Ç½¤ò»È¤¦¾ì¹ç¡¤´Ä¶ÊÑ¿ô PATH ¤Ë¡¤ ImageMagick ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê (CORE_RL_*.dll ¤¬¤¢¤ë¥Ç¥£ ¥ì¥¯¥È¥ê) ¤òÄɲ䷤Ƥ¯¤À¤µ¤¤¡¥
Apache ¤òÉáÄ̤˵¯Æ°¤¹¤ì¤Ð OK ¤Ç¤¹¡¥
mod_uploader ¤ò¼Â¹Ô¤¹¤ë¤Î¤ËɬÍפʴͤ¬À°¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡¥ ¤³¤Î¾ì¹ç¡¤Apache ¤Î¥¨¥é¡¼¥í¥°¤Ë¡¤¡ÖException: \xc0\xdf\xc4\xea\xcf\xb3\xa4\xec\xa4\xac\xa4\xa2\xa4\xea\xa4\xde\xa4\xb9\xa1\xa5 ¡×¤Î¤è¤¦¤Ê½ÐÎϤ¬½Ð¤Æ¤¤¤ë¤È»×¤¤¤Þ¤¹¡¥Exception °Ê¹ß¤Îʸ»úÎó¤ò¥³¥Ô¡¼¤· ¤Æ¡¤¥³¥ó¥½¡¼¥ë¤Ç°Ê²¼¤Î¤è¤¦¤Ê¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡¥ÆüËܸì¤Î ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òÆÉ¤à¤³¤È¤¬¤Ç¤¤Þ¤¹¡¥
$ perl -e 'print "\xc0\xdf\xc4\xea\xcf\xb3\xa4\xec\xa4\xac\xa4\xa2\xa4\xea\xa4\xde\xa4\xb9\xa1\xa5", "\n"'
ÀßÄêϳ¤ì¤¬¤¢¤ê¤Þ¤¹¡¥
²¼µ¤Î¤è¤¦¤Ë¡¤LD_PRELOAD ¤Ë libunwind.so.5 ¤ò»ØÄꤷ¤Ê¤¬¤é Apache ¤ò µ¯Æ°¤·¤¿¤é¾É¾õ¤¬²þÁ±¤¹¤ë¾ì¹ç¡¤ICC ¤Î¥¤¥ó¥¹¥È¡¼¥ëÊýË¡¤ËÌäÂ꤬¤¢¤ê¤Þ¤¹¡¥ ¤â¤¦°ìÅÙÀßÄê¤ò¸«Ä¾¤·¤Æ¤¯¤À¤µ¤¤¡¥
$ LD_PRELOAD=/opt/intel_cc_81/lib/libunwind.so.5 "Apache ¤Îµ¯Æ°¥³¥Þ¥ó¥É"
Comming soon...
mod_uploader ¤Ï¡¤É½¼¨¤òÈó¾ï¤Ë¹â®¤Ë¹Ô¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡¥
±¦¤Ë¾¤Î¥¢¥Ã¥×¥í¡¼¥À¤È¤Î®ÅÙÈæ³Ó¤ò¼¨¤·¤Þ¤¹¡¥HTML ¤Ï¡¤É½¼¨¤òÀÅŪ¤Ê
HTML ¤Ç¹Ô¤¦¤â¤Î¡¤Perl ¤ª¤è¤Ó PHP ¤Ï¤½¤ì¤¾¤ì¤Î¸À¸ì¤Çºî¤é¤ì¤¿¥¢¥Ã¥×¥í¡¼
¥À¤ò»Ø¤·¤Æ¤¤¤Þ¤¹¡¥Â¬Äê¤Ë¤Ï ApacheBench ¤òÍѤ¤¡¤5 ÊÂÎó¤Ç 10,000 ¥ê¥¯
¥¨¥¹¥Èȯ¹Ô¤·¤¿¾ì¹ç¤ÎÃͤò¥×¥í¥Ã¥È¤·¤Þ¤·¤¿¡¥
mod_uploader ¤Ï Perl ¤ÎÌó 100 ÇÜ¡¤PHP ¤ÎÌó 10 Çܹ⮤Ëưºî¤·¤Æ¤¤¤Þ¤¹¡¥ ¤¿¤À¤·¡¤¤³¤ì¤é¤Î¸À¸ì¤ò»È¤Ã¤¿¾ì¹ç¡¤ mod_perl (ModPerl::Registry) ¤ä APC ¤ò»ÈÍѤ¹¤ì¤Ð¡¤ ¤¢¤ëÄøÅÙ®ÅÙ¤ò²þÁ±¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡¥¤½¤ì¤Ç¤â¡¤mod_uploader ¤Ë¤ÏµÚ ¤Ó¤Þ¤»¤ó¡¥ ¤Þ¤¿¡¤mod_uploader ¤Ï¡¤ÀÅŪ¤Ê HTML ¤òÍѤ¤¤ë¤â¤Î¤ÈÈæ¤Ù¤Æ¤â¤ï¤º¤« ¤Ê¤¬¤é¹â®¤Ëưºî¤·¤Þ¤¹¡¥¤³¤ì¤Ï¡¤É½¼¨¤ËÀÅŪ¤Ê HTML ¤òÍѤ¤¤ë¾ì¹ç¤Ç¤â¡¤ ¥¢¥Ã¥×¥í¡¼¥É½èÍý¤Î¤¿¤á¤Ë¤Ï libphp4.so ¤ò¥í¡¼¥É¤¹¤ëɬÍפ¬¤¢¤ë¤Î¤Ç¡¤¤½ ¤Î¤¿¤á¤Î¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤¬¤«¤«¤Ã¤Æ¤¤¤ë¤Î¤¬¸¶°ø¤È»×¤ï¤ì¤Þ¤¹¡¥ libphp4.so ¤Î¥í¡¼¥É¤ò̵¤¯¤·¤¿¾ì¹ç¡¤HTML ¤ÎÃÍ¤Ï 2,800 ¤òͤ¨¤ÆºÇ®¤Ë ¤Ê¤ê¤Þ¤¹¡¥
mod_uploader ¤Ï¡¤µðÂç¤Ê¥Õ¥¡¥¤¥ë¤Î¥¢¥Ã¥×¥í¡¼¥É¤Ë¤â¤ï¤º¤«¤Ê¥á¥â¥ê¤·¤«
¾ÃÈñ¤·¤Þ¤»¤ó¡¥
¤½¤ì¤ËÂФ·¤Æ¥¢¥Ã¥×¥í¡¼¥À¤Î¿¤¯¤Ï¡¤¥¢¥Ã¥×¥í¡¼¥É¤µ¤ì¤¿¥Ç¡¼¥¿¤ò°ìöÁ´¤Æ
¥á¥â¥ê¤ËÆþ¤ì¤Æ½èÍý¤¹¤ë¤¿¤á¡¤¥¢¥Ã¥×¥í¡¼¥É¤Ë¤Ï¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤ËÈæÎ㤷¤¿
¥µ¥¤¥º¤Î¥á¥â¥ê¤ò¾ÃÈñ¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡¥
±¦¤Ë¡¤mod_uploader ¤Ç Ìó 500MB ¤Î¥Õ¥¡¥¤¥ë¤ò¥¢¥Ã¥×¥í¡¼¥É¤·¤¿ºÝ¤Î¡¤ Apache ¤Î¥á¥â¥ê»ÈÍÑÎ̤οä°Ü¤ò¼¨¤·¤Þ¤¹¡¥mod_uploader ¤Ï¡¤¤ï¤º¤« 20 MB ÄøÅ٤Υá¥â¥ê¤·¤«¾ÃÈñ¤·¤Æ¤¤¤Þ¤»¤ó¡¥Æ±ÍͤνèÍý¤ò¾Ê¥á¥â¥êưºî¤ò¹Íθ ¤·¤Æ¤¤¤Ê¤¤¥¢¥Ã¥×¥í¡¼¥À¤Ç¹Ô¤Ã¤¿¾ì¹ç¡¤¤³¤ÎÃÍ¤Ï 500 MB °Ê¾å¤Ë¤Ê¤Ã¤Æ¤·¤Þ ¤¤¤Þ¤¹¡¥
http://acapulco.dyndns.org/mod_uploader/api/
¥×¥í¥°¥é¥à¤ÎºîÀ®¤Ë¤¢¤¿¤Ã¤Æ¤ªÀ¤Ïäˤʤ俥ġ¼¥ë¤ò¾Ò²ð¤·¤Þ¤¹¡¥
¥×¥í¥°¥é¥à¤ÎºîÀ®¤Ë¤¢¤¿¤Ã¤Æ¤ªÀ¤Ïäˤʤä¿Ê¸¸¥¤ò¾Ò²ð¤·¤Þ¤¹¡¥