PHP では、GD ライブラリを使用して画像ファイルを操作できます。
GIF、PNG、JPEG などの複数の形式をサポートしています。LibGD ライブラリを使用して、アプリケーションからブラウザに直接画像をストリーミングできます。
このチュートリアルでは、PHP で GD 機能を有効にする方法について説明します。
LibJPEG ライブラリをダウンロード
まず、ここから LibJPG ファイルをダウンロードします。または、以下の wget を使用して直接ダウンロードすることもできます。
cd /usr/save wget http://www.ijg.org/files/jpegsrc.v9.tar.gz
LibJPEG ライブラリをインストール
ダウンロードしたら、アーカイブを解凍し、以下に示すようにインストールします。
tar xvfz jpegsrc.v9.tar.gz cd jpeg-9 ./configure make make install
以下に示すように、これにより jpeg ライブラリがデフォルトの /usr/local/lib/ の場所にインストールされます。
# ls /usr/local/lib/*jpeg* /usr/local/lib/libjpeg.a /usr/local/lib/libjpeg.la* /usr/local/lib/libjpeg.so -> libjpeg.so.9.0.0* /usr/local/lib/libjpeg.so.9 -> libjpeg.so.9.0.0* /usr/local/lib/libjpeg.so.9.0.0*
FreeType ライブラリをダウンロード
ここから freetype ライブラリをダウンロードします。または、以下の wget を使用して直接ダウンロードすることもできます。
cd /usr/save wget http://iweb.dl.sourceforge.net/project/freetype/freetype2/2.5.0/freetype-2.5.0.1.tar.bz2
FreeType ライブラリをインストール
ダウンロードしたら、アーカイブを解凍し、以下に示すようにインストールします。
tar xvfj freetype-2.5.0.1.tar.bz2 cd freetype-2.5.0.1/ ./configure --without-png make make install
freetype のインストール時に、上記のように ./configure に without-png フラグを指定しないと、./configure 中に次のエラーが発生する場合があります
/usr/include/libpng12/pngconf.h:336: error: expected '=', ',', ';', 'asm' or '__attribute__' before '.' token /usr/include/libpng12/pngconf.h:337: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'include' make: *** [/usr/src/freetype-2.5.0.1/objs/sfnt.lo] Error 1
LibPNG をインストール
ほとんどの場合、システムには、以下に示すように LibPNG ライブラリが既にインストールされている可能性があります。
# rpm -qa | egrep 'jpg|png' libpng-devel-1.2.10-7.1.el5_0.1 libpng-1.2.10-7.1.el5_0.1
ただし、お持ちでない場合は、ここから LibPNG をダウンロードしてインストールしてください。
PHP をコンパイル
ここで、前に説明したように、ソースから PHP をダウンロードしてインストールします。ただし、今回は、PHP インストールの ./configure に次のパラメーターを渡すようにしてください。
./configure \ --with-apxs2=/usr/local/apache2/bin/apxs \ --with-mysql \ --with-gd \ --with-jpeg-dir \ --enable-gd-native-ttf \ --with-freetype-dir \ make make install
PHP で GD が有効になっていることを確認する
次に、phpinfo() を使用してテスト用の php ページを作成し、ブラウザーから表示します。以下に示すように、LibGD と関連ライブラリが有効になっていることがわかります。