mod_small_light ã§åçã«ç»åãªãµã¤ãº
仿´ã§ãããlivedoor ã«ããæä¾ããã¦ãã mod_small_light ãã¤ã³ã¹ãã¼ã«ãã¦ã¿ã¾ããã
mod_small_light ã¯åçã«ãµã ãã¤ã«ç»åãçæãããã§ãã Apache ã¢ã¸ã¥ã¼ã«ã§ãã
SMALL LIGHT ãããããç»åãµã ãã¤ã«ä½æã¢ã¸ã¥ã¼ã«ã | livedoor labs EDGE
http://labs.edge.jp/smalllight/
ã¡ãªã¿ã«ãmod_small_light 㯠OpenMP ãæå¹ãª ImageMagick ã§ã¯ãã«ãæã«ã¨ã©ã¼ã«ãªã£ã¦ãã¾ããããªã®ã§ã前回インストールした OpenMP を無効にしたものã使ç¨ãã¦ãã¾ãã
==================== 2013/06/15 è¿½è¨ ====================
ã³ã¡ã³ãæ¬ã§ id:cubicdaiya ããã«æãã¦é ãã¾ããã
以ä¸ã«ãããããã Makefile.in ã«å½ã¦ãäºã§ãOpenMP ãæå¹ãª ImageMagick ã§ã mod_small_light ã®ãã«ããéãããã«ãªãã¾ãã
https://github.com/yamac/smalllight/pull/2/files
ã¾ããImageMagick ã® OpenMP ãæå¹ãªã¾ã¾ã ã¨ãµã¼ããé«è² è·ã«ãªãåé¡ãããã¾ããããã¡ãã¯ç°å¢å¤æ°ãOMP_NUM_THREADSãã« 1 ãè¨å®ããäºã§åé¿ã§ãã¾ãã
é å¸ããã¦ãã ImageMagick ã§ã¯ããã©ã«ãã§ OpenMP ãæå¹ãªã®ã§ãBugfix ãªã©ã§å°ã¾ãã«ã¢ãããã¼ããããã¨ãèããã¨æä¾ããã¦ãã RPM ããã®ã¾ã¾å ¥ãã¦ãOpenMP ã¯ç°å¢å¤æ°ã§å¶å¾¡ãããã¨ããéç¨ã®æ¹ãè¯ãããã§ãã
id:cubicdaiya ããããããã¨ããããã¾ããï¼
==================== 追è¨ããã¾ã§ ====================
æ¤è¨¼ç°å¢ã¯ä»¥ä¸ã«ãªãã¾ãã
- CentOS 6.3 x86_64
- ImageMagick 6.8.5-10(OpenMP ç¡å¹)
ã¤ã³ã¹ãã¼ã«
Apache ã¢ã¸ã¥ã¼ã«ãªã®ã§ãã¾ã㯠httpd-devel ãã¤ã³ã¹ãã¼ã«ãã¾ãã
# yum install httpd-devel
æ¨æºãªãã¸ããªãªã®ã§ãApache/2.2.15 ãã¤ã³ã¹ãã¼ã«ããã¾ããã
# apachectl -v Server version: Apache/2.2.15 (Unix) Server built: May 13 2013 22:11:16
imlib2 㯠EPEL ã«ãããã®ã使ç¨ãã¾ãã
# yum install http://dl.fedoraproject.org/pub/epel/6/x86_64/imlib2-1.4.2-5.el6.x86_64.rpm \ http://dl.fedoraproject.org/pub/epel/6/x86_64/imlib2-devel-1.4.2-5.el6.x86_64.rpm
ImageMagick ã¯前回入れたものããã®ã¾ã¾ä½¿ç¨ãã¾ãã
ããã§å¿
è¦ãªã¢ã¸ã¥ã¼ã«ã¯ã¤ã³ã¹ãã¼ã«åºæ¥ãã®ã§ããããã mod_small_light ãã¤ã³ã¹ãã¼ã«ãã¾ãã
ã½ã¼ã¹ã³ã¼ãããå ¥ããã®ã§ make install 㯠Paco çµç±ã§ã
# cd /usr/local/src/ # wget http://smalllight.googlecode.com/files/mod_small_light-1.1.1.tar.gz # tar xzf mod_small_light-1.1.1.tar.gz # cd mod_small_light-1.1.1 # ./configure --with-apxs=/usr/sbin/apxs \ --with-imlib2-config=/usr/bin/imlib2-config \ --with-Wand-config=/usr/bin/MagickWand-config # make # paco -D make install
ä»å㯠configure ã®ãªãã·ã§ã³ã¯ã--with-apxsã以å¤ãªãã¦ãå¤ååé¡ãªããã§ããããªãã¨ãªãæç¤ºçã«æå®ãã¦ã¾ãã
Apache ã¢ã¸ã¥ã¼ã«ãã¤ã³ã¹ãã¼ã«ããããã¨ã確èªãã¾ãã
# ll /usr/lib64/httpd/modules/mod_small_light.so -rwxr-xr-x. 1 root root 149748 6æ 12 21:25 2013 /usr/lib64/httpd/modules/mod_small_light.so
httpd.conf ã«ãèªåçã« LoadModule ã追å ããã¦ããã¯ãã§ãã
# cat /etc/httpd/conf/httpd.conf | grep small_light
LoadModule small_light_module /usr/lib64/httpd/modules/mod_small_light.so
LoadModule ãè¨å®ããã¦ããã®ã§ãapachectl ã³ãã³ãã§ã¢ã¸ã¥ã¼ã«ãèªã¿è¾¼ã¾ãã¦ããäºã確èªã§ãã¾ãã
# apachectl -M | grep small_light_module small_light_module (shared)
ã©ãããåé¡ãªãããã§ããã
使ã£ã¦ã¿ã
mod_small_light ã使ãçºã«ã¯ã以ä¸ã® Apache ã¢ã¸ã¥ã¼ã«ãæå¹ã«ãªã£ã¦ããå¿ è¦ãããã¾ãã
- rewrite
- proxy
- proxy_http
CentOS 6 ã® base ãªãã¸ããªãã httpd ãå ¥ããå ´åã¯ããã©ã«ãã§æå¹ã«ãªã£ã¦ããã¯ãã§ããããã apachectl -M ã§ç¢ºèªãã¦è¡¨ç¤ºãããªãããã§ããã°ãäºåã«æå¹ã«ãã¦ããå¿ è¦ãããã¾ãã
次ã«ãªãªã¸ãã«ç»åãæºåãã¾ãã
縮å°ãããã¨ãåæãªã®ã§ãããç¨åº¦å¤§ããã®ç»åãé©å®ç¨æãã¦ä¸ããã
ããã§ã¯ãµã¼ãä¸ã®ã/var/imagesã以ä¸ã«ç¨æããç»åãé ç½®ãã¾ããã
# mkdir /var/images # é©å½ã«å¤§ããã®ç»åãé ç½®ãã¦ãã # mv ~/kintsuba.jpg /var/images/
ç»åã®ç¨æãã§ããã httpd.conf ãç·¨éãã¾ãã
# vi /etc/httpd/conf/httpd.conf
以ä¸ã®ã«ã¼ã«ãè¨å®ãã¾ãã
RewriteEngine on RewriteRule ^/images/(.+)$ /var/images/$1 [L] RewriteRule ^/thumbs/(.+)$ /small_light(dw=150,dh=150,ds=s)/$1 [P,L] RewriteRule ^/small_light[^/]*/(.+)$ /var/images/$1 <LocationMatch ^/small_light[^/]*/> SetOutputFilter SMALL_LIGHT </LocationMatch>
ããã§ã¯
- ãhttp://ãµã¼ãå/images/ç»åãã¡ã¤ã«å.jpgã ã§ã¢ã¯ã»ã¹ãããç»åã¯ãã®ã¾ã¾è¡¨ç¤º
- ãhttp://ãµã¼ãå/thumbs/ç»åãã¡ã¤ã«å.jpgã ã§ã¢ã¯ã»ã¹ãããç»å㯠150x150 ã«ç¸®å°ãã¦è¡¨ç¤º
ã¨ãã¦ãã¾ãã
httpd.conf ãä¿åãããææ³ãã§ãã¯ãã㦠Apache ãèµ·åãã¾ãã
# apachectl configtest Syntax OK # service httpd restart
ããã§ã¯ãããããã©ã¦ã¶ããã¢ã¯ã»ã¹ãã¦ã¿ã¾ãã
/images/ ã§ã¢ã¯ã»ã¹ããã¨ãããªæãã§ãªãªã¸ãã«ã®å¤§ããç»åã表示ããã¾ãã
åãç»åã«å¯¾ã㦠/thumbs/ ã§ã¢ã¯ã»ã¹ããã¨ãããªæãã
ã¡ããã¨å°ãããªã£ã¦ã¾ããã
ããã©ã«ãã§ã¯ã¢ã¹ãã¯ãæ¯ã¯å´©ããªãããã«ãªã£ã¦ãã¾ãã
ã¢ã¹ãã¯ãæ¯ãç¡è¦ãã¦ç¸®å°ããããã«ããã«ã¯ã以ä¸ã®ããã« /thumbs/ ã® RewriteRule ã« da=n ãªãã·ã§ã³ã追å ãã¾ãã
RewriteRule ^/thumbs/(.+)$ /small_light(dw=150,dh=150,ds=s,da=n)/$1 [P,L]
追å ããã Apache ãåèµ·åã¦ãå度 /thumbs/ ãä»ãã¦ã¢ã¯ã»ã¹ãã¦ã¿ã¾ãã
ä»åº¦ã¯ã¢ã¹ãã¯ãæ¯ãç¡è¦ãã¦ç»åãæ£æ¹å½¢ã«ãªãã¾ããã
次㯠URL ã§ç»åãµã¤ãºãæå®ã§ããããã«ãã¦ã¿ã¾ãã
/thumbs/ ã® RewriteRule ã以ä¸ã®ããã«æ¸ãæã㦠Apache ãåèµ·åãã¦ãã ããã
RewriteRule ^/thumbs/w/([0-9]+)/h/([0-9]+)/(.+)$ /small_light(dw=$1,dh=$2,da=n,ds=s)/$3 [P,L]
ãhttp://ãµã¼ãå/thumbs/w/ç»åã®å¹ /h/ç»åã®é«ã/ç»åãã¡ã¤ã«å.jpgãã¨ããå½¢å¼ã® URL ã§ã¢ã¯ã»ã¹ãããã¨ã§ãèªç±ã«ç»åãµã¤ãºãæå®ã§ããããã«ãªã£ã¦ãã¾ãã
ãã®ä»ã«ã以ä¸ã«æ¸ãã¦ããããã«ããããããªãªãã·ã§ã³ãæå®ã§ããããã§ãã
PatternString
http://code.google.com/p/smalllight/wiki/PatternString
ãã®ã¢ã¸ã¥ã¼ã«ã使ãã°ããã¶ã¤ã³å¤æ´ã®éãªã©ã«ãµã¤ãºã®ç°ãªãç»åããã¡ãã¡ç¨æããå¿
è¦ããªããªãã®ã§ã¨ã£ã¦ã便å©ããã§ããã
ãã£ã¨æ©ã試ãã¦ããã°è¯ãã£ããªã
Nginx ã«ç§»æ¤ãã ngx_small_light ã¨ããã¢ã¸ã¥ã¼ã«ããããããªã®ã§ããã®ãã¡ãã£ã¡ã試ãã¦ã¿ããã¨æãã¾ãã
-> 試しました。
ã¡ãªã¿ã«æ¬æã¨ã¯é¢ä¿ãªãã§ãããåçã®ç«ã¯å®å®¶ã§é£¼ã£ã¦ããæç«ã®ããã¤ã°ã§ãã
ãããããã¡ããç«ã§ããã¨ã¦ã人æã£ããã¦å¯æãã§ãã