PHPを自前ビルドしないでmozjpegを使ってみた
カテゴリ: 未分類
PHPでJPEG圧縮する際に、標準ライブラリを使用していると思います。
今回はそれをPHPのmakeを行わずに、mozjpegに置き換えてみようと思います。
やり方
[code lang=text]
wget https://github.com/mozilla/mozjpeg/releases/download/v3.2/mozjpeg-3.2-release-source.tar.gz
[/code]
まずソースを落としてきます
[code lang=text]
tar xf mozjpeg-3.2-release-source.tar.gz
[/code]
解凍します
[code lang=text]
cd mozjpeg
[/code]
カレントディレクトリを変更します
[code lang=text]
sudo yum install -y nasm libjpeg-turbo
[/code]
ビルドに必要なライブラリを入れます(libjpeg-turboはいらないと思うけど一応)
[code lang=text]
./configure
make
sudo make install
[/code]
インストールします。
/opt/mozjpeg
にインストールされます
[code lang=text]
sudo mkdir /tmp/libjpeg
sudo cp /usr/lib64/*jpeg* /tmp/libjpeg/
[/code]
で念のため既存ライブラリのバックアップ取ります。
[code lang=text]
sudo mv /opt/mozjpeg/lib64/*jpeg* /usr/lib64/
[/code]
作成したライブラリを移動します。
動作確認
これで
[code lang=text]
<?php
$files = array("ファイル名");
foreach($files as $file) {
$img = imagecreatefromjpeg($file);
imagejpeg($img, $file. "_80.jpg", 80);
}
?>
[/code]
を実行しても大丈夫であれば完了です。
php-fpmの場合
[code lang=text]
sudo service php-fpm reload
[/code]
を実行するだけで反映されます。
検証
元画像(3.4MB)
標準ライブラリ圧縮/圧縮率80(1.5MB)
mozjpeg圧縮/圧縮率80(941.6KB)
感想
ライブラリの置き換えが意外と楽ちんで良かったです。
検証するのがめんどくさかったです…