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が通らなかったのを直してみた。
[…] に記載されているのでそちらを見たほうが早いと思います。 ■参考 ライブドアのsmalllightを使って動的に画像をリサイズしてみる […]