8月 122011
 

small lightシリーズ
[1] ライブドアのsmalllightを使って動的に画像をリサイズしてみる
[2] いろいろsmalllightを使って動的に画像をリサイズしてみる
[3] smalllightでのエンジンの選択の仕方
[4] smalllightでのエンジンの選択の仕方 (ヒントオプション追加)

最近、動的に画像をリサイズするのが流行っているようです。
ゆめみラボのmod_ktaiやクックパッドのmod_tofu、livedoorラボEDGEのsmall_lightなどいろいろありますが
今回small_lightを使ってみたので記事を書いてみます。
ついでに速いと噂のlibjpeg-turboも入れてみます。

smalllightとは

公式を見るのが一番早いとは思うので一度見てみてください。(→smalllight

僕がsmalllightで特にいいなぁと思ったのが4点です。
・Apacheモジュールで動く
・cropできる
・パラメータがわかりやすい、指定しやすいように考えられてる(と思う)
・公式のデザインが凄いわかりやすくていい

とりあえずインストールして使っていきましょう。

インストール環境

・CentOS5.3 (Xen上のVM)

インストール方法

まず必要な以下のRPMをインストールします。

httpd-devel (smalllightが依存)
ImageMagick-devel (smalllightが依存)
libid3tag (DAGのimlib2が依存)
freetype-devel (smalllightが依存)

最初にimlib2とlib-jpeg-turboをインストールします。

imlib2はEPELを有効にすれば入るのですが1.3.0と古かったので
僕はrpmfindで探して拾ってきました
imlib2-1.4.4-1.el5.rf.x86_64.rpm
imlib2-devel-1.4.4-1.el5.rf.x86_64.rpm

libjpeg-turboは公式にRPMパッケージがあります
libjpeg-turbo

とりあえず上記のRPMをインストールします


rpm -Uvh --nosignature imlib2-1.4.4-1.el5.rf.x86_64.rpm imlib2-devel-1.4.4-1.el5.rf.x86_64.rpm libjpeg-turbo-1.1.1.x86_64.rpm

次にlibjpeg-turboを使う設定をします。

念のため今使っているlibjpegの確認


[root@LIP-HAPP-01 temp]# ldd /usr/lib64/libMagick*|grep jpeg
libjpeg.so.62 => /usr/lib64/libjpeg.so.62 (0x00002afbaa33f000)
libjpeg.so.62 => /usr/lib64/libjpeg.so.62 (0x00002ba6264fb000)
libjpeg.so.62 => /usr/lib64/libjpeg.so.62 (0x00002abe0f53d000)

exportしてもいいんですが面倒なのでld.so.conf.dにファイルを作ってldconfigします


echo /opt/libjpeg-turbo/lib64/ > /etc/ld.so.conf.d/libjpeg-turbo.conf
ldconfig

もう一度libMagick*が何を使っているか見てみましょう。


[root@LIP-HAPP-01 temp]# ldd /usr/lib64/libMagick*|grep jpeg
libjpeg.so.62 => /opt/libjpeg-turbo/lib64/libjpeg.so.62 (0x00002ae10146c000)
libjpeg.so.62 => /opt/libjpeg-turbo/lib64/libjpeg.so.62 (0x00002b2b3b765000)
libjpeg.so.62 => /opt/libjpeg-turbo/lib64/libjpeg.so.62 (0x00002b2f72355000)

libjpeg-turboになりました

smalllightのインストール

以下からダウンロードしてきます
smalllight


wget http://smalllight.googlecode.com/files/mod_small_light-1.1.1.tar.gz
tar zxf mod_small_light-1.1.1.tar.gz
cd mod_small_light-1.1.1
./configure --with-apxs=/usr/sbin/apxs
make
make install

インストールが終わったので早速使ってみましょう。
いろんな使い方はあると思いますが、今回はSmalllightはストレージとは別の場所にいれました。

以下の設定をApacheに入れてアクセスしてみます。


SetOutputFilter SMALL_LIGHT

RewriteEngine on
RewriteRule ^/thumb_imlib2/(.*\.jpg)$ /small_light(dw=70,dh=70,cw=70,ch=70,e=imlib2,info=1,of=jpeg,q=50)/$1 [P,L]
RewriteRule ^/thumb_imagick/(.*\.jpg)$ /small_light(dw=70,dh=70,cw=70,ch=70,e=imagemagick,info=1,of=jpeg,q=50)/$1 [P,L]
RewriteRule ^/small_light[^/]*/(.+)$ http://192.168.1.199/$1 [P,L]
RewriteRule /(.+) http://192.168.1.199/$1 [P,L]

そして以下が実際にアクセスしてみた結果です

上手くサムネイルが出来ることが確認できました。

パラメータの詳しい指定についてはこちらを参照してください。

結構簡単に出来ていいんじゃないかと思います。
次の記事では、もうちょっと実際のケースに近い使い方について解説しようと思います。 
->[記事書きました]いろいろsmalllightを使って動的に画像をリサイズしてみる

素晴らしいモジュールを公開してくださってるライブドア様ありがとうございます。


ちなみにimagemagickがopenmpを利用しているとうまくビルドできませんでした。
僕は–disable-openmpなRPMを使いました
参考→Apacheの動的画像リサイズモジュール「smalllight」のmakeが通らなかったのを直してみた。


  One Response to “ライブドアのsmalllightを使って動的に画像をリサイズしてみる”

  1. […] に記載されているのでそちらを見たほうが早いと思います。   ■参考 ライブドアのsmalllightを使って動的に画像をリサイズしてみる […]

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)