GDライブラリとはPHP用の強力な画像処理関数を提供するバイナリライブラリです。ここではこのGDライブラリをWindows環境(バイナリパッケージ)で使えるようにするための方法を紹介します。
PHP4の公式リファレンスには「イメージを作成・操作する機能を使うにはイメージ関数のGDライブラリとともにPHPをコンパイルする必要があります」のように書かれていて、Windowsのバイナリパッケージのデフォルトではphpinfo()で作成される仕様ページを見てもGDが一緒にコンパイルされている様子はありません。多くのWindowsユーザーはここで挫折しているのではないでしょうか。
英語のわかる方はさらにPHPの公式サイトからGDライブラリ配布サイトへとび、GDのソースをダウンロードするところまでこぎつけるかもしれません。ですがソースなんてどうすればいいかわからない、コンパイルの仕方がわからない、そもそもコンパイルって何?という方はWindowsユーザーの中にはたくさんいます。また、困った事にそのままGCCでコンパイルしても頻繁にエラーがでてしまい、障壁の高さに涙したプログラマーの方もおられるでしょう。
このGDライブラリなるもの、便利そうなのに使えないとは困ったものだ…と思いきや、実はPHPのWindows用バイナリパッケージには最初から拡張ファイルディレクトリ(extensions)にdllとして作成されたGDライブラリが存在するんです。このDLLをPHPで利用するにはphp.iniを編集しなければなりません。
まず、php.iniをテキストエディタで開きます。Dynamic Extensionsの説明部分…
;If you wish to have an extension loaded automatically, use the following ;syntax:
から始まる、;でコメントアウトされた部分の下にWindows Extensionsとありますが、そこにコメントアウトで羅列されたextensions=php_*.dllの中のphp_gd.dllをphp_gd2.dllに修正し、コメント開始文字であるセミコロン";"をはずします。ここでgd2に修正するのはextensionsディレクトリに入っているdllファイルの名前がphp_gd2.dllという名前の場合です。名前が違う場合は各自対応してください。
次に、php.iniのFile Uploadsの項の少し上にある、
extension_dir =
というパラメータを探してください。見つけたらこれを、
extension_dir = c:/php/extensions/
のように、phpをインストールしたディレクトリの下にあるextensionsへのパスを通します。例はc:/phpにインストールした場合です。
これでもうGDライブラリが使えるようになっています。もしもこの直後にPHPスクリプトが全く動作しなくなったなら、php.iniに問題がある証拠です。正しいDLLファイル名を記述したか、DLLファイルを格納しているextensionsディレクトリへのパスを間違えていないかを確認してください。それでもエラーが続く場合は初期化状態のphp.iniファイルであるphp.ini-distファイルを使ってやり直してください。