GDモジュールが「画像の読み書きをサポートしてない」と言われるのだが[PHP]
(2010-12-10 16:24:50) by shinoda


う〜む・・・お手上げだ。(^^;

うちのテスト用サーバで、XOOPS Cube Legacy の外部モジュール

汎用データベースモジュール
http://xoopscube.jp/module/413

の検証をしようと思ったんだけど、インストールを終えて管理画面を開くと、

gdモジュールがGIF/JPEG/PNG画像の読み書きをサポートしていません。このモジュールで画像を処理するには、gdモジュールがGIF/JPEG/PNG画像の読み書きをサポートする必要があります。

なんてエラー(?)が出ちゃう。う〜ん?

確かに、phpinfo() で見てみると、

<画像:20101210_gd_before.jpg>

という具合に gd の情報に JPEG Support enabled が出ていない。

どうも、PHP のバグなのか、configure する時に、--with-gd オプションを最後に指定しないと駄目らしい。

./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable-mbstring --enable-zend-multibyte --with-pgsql --with-mysql --with-gd -with-jpeg-dir=/usr/local/lib --with-zlib --with-png-dir=/usr/local --with-zlib-dir

という具合に configure していたんだが、

./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable-mbstring --enable-zend-multibyte --with-pgsql --with-mysql -with-jpeg-dir=/usr/local/lib --with-zlib --with-png-dir=/usr/local --with-zlib-dir --with-gd

みたいにしないと駄目なようである。

確かに、これで configure し直して make すると、ちゃんと JPEG Support enabled が表示されるようになった。

<画像:20101210_gd_after.jpg>

今回使っている PHP のバージョンは 5.3.3。少なくとも、5.2.11 の時には、

./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable-mbstring --with-mysql --with-gd --with-zlib --with-jpeg-dir --with-pdo-mysql

のように --with-gd が前の方にあっても問題なく JPEG が使えた。

PHP のバージョンアップをずっと追いかけているわけではないのでわかんないのだが、どっかの段階で --with-gd より前に -with-jpeg-dir を置かないといけなくなったということだよな?

ま、何か気持ち悪いが、JPEG もこれで使えるようになった。

さぁ、GIF も JPEG も PNG も全部サポートよぉ〜!と汎用データベースモジュールの管理画面を開くと、

gdモジュールがGIF/JPEG/PNG画像の読み書きをサポートしていません。このモジュールで画像を処理するには、gdモジュールがGIF/JPEG/PNG画像の読み書きをサポートする必要があります。

なんだ、これ。わけわからん。お手上げだ。

なんか、こんなことを繰り返してて、全然 XOOPS の検証が終わらん。
XOOPS なんか使わずに、素直に CGI とかで組んでサイト作った方が今回の案件は確実に早いよなあ。
ま、ユーザのご指名なので、XOOPS Cube Legacy を使うしかないのだが・・・

「お手軽」と言われるシステムは、いざ「動かん」という時の調査/対応がほんと大変なのだ・・・


コメント投稿
次の記事へ >
< 前の記事へ
TOPへ戻る

Powered by
MT4i 3.0.8