PHPバンドルのGDライブラリ、PHP 5.2.9のインストール

Last edited on 2011/02/20 (日) - 16:01

[追記] 自分でPHPを用意した時期もありましたが、現在はさくらインターネットのPHPも5.2.9になっており、こちらを使っています。

Drupalにimagecacheというモジュールを入れたところ、次のようなメッセージが現れた。

インストールされているPHP GDのバージョンは画像の回転をサポートしていません。おそらくPHPにバンドルされているGDライブラリではなく、http://www.libgd.org にある公式のGDライブラリを用いてコンパイルされたものです。バンドルされているGDライブラリを用いて、--with-gd のオプションつきでPHPをコンパイルしなおさなければなりません。参考: @url。それまでの間、PHPのimagerotate関数が用いられます。

どうやら、自前のPHPをインストールしたときに configure のオプションを間違えたらしい。そのときのconfigure オプションを調べると --with-gd=/usr/local となっており、さくらインターネットのサーバーの /usr/local にもともとあったGDライブラリをリンクしていたようだ。

調べてみると、'=/usr/local ' を取って'--with-gd' でConfitureすればPHPにバンドルされているGDライブラリを使うことになるらしいので、再コンパイルしてみた。

ところが、ext/posix のコンパイル中に、

error: 'struct utsname' has no member named 'domainname'

というエラーが出て進まない。これはいったいどうしたわけかと調べてみると、同様のエラーは報告されており、PHP 5.2.9で修正されているとのこと。もともとさくらインターネットが提供するバージョンにあわせてPHP 5.2.8を使っていたが、この際5.2.9にあげることにした。

無事コンパイルできたが別の問題が発生。5.2.8ではext の下にuploadprogressというExtensionがあり、Drupalで使用していた。5.2.8では --enable-uploadprogress というオプションをつけて configure すればよかったのだが、これが無くなってしまったようだ。

結局、以下のサイトを参考に手動で導入することができた。

のんびり、のほほん。 » Drupalの6とuploadprogress。

以上、いくつかトラブルが出たが、メッセージを頼りにネットで調べると、それほど時間をかけずに解決できた。すばらしい。