ユーザ用ツール

サイト用ツール


サイドバー

Tree

最近の更新

macyomoyama:installgd

GDをインストール

このGDライブラリがないと、いくつかのCMSの画像の処理が出来ません。

OS-X10.6では。。

 僕の環境、購入しただけのMacminiでは、最初からGDが有効になていました。よくわかりません。

OS-X10.5以前

 phpで画像を扱う、例えばWordPressでデフォルトのテーマ(キューブリックなんとか)でタイトルのバックグランド色を替えるとか、そういったものに使われるライブラリです。通常にphpをインストールするとgdは無効になるらしいです。
 今回MacOS上でDrupalのテストを行っていて、この問題(gdがない)にぶつかりました。

上記は、インストールに成功したあとのphpinfoの抜粋です。

方法

 方法としては二つ有るようです。

  • phpを再コンパイルする。
    OSのupdateでphpが書き換えられているらしいので、この方法は使えないらしいです。
  • 別にコンパイルしたものを実行時に動的に組み込む方法。
    MacOSの場合はこちらの方法を使うようです。

準備

 準備としては大きなものと小さいものとで二つあります。まず大きなものから。。。

準備1 開発環境をインストールする。

 MacOSのDVDの中にコード開発用のTool類が入っているので、通常のOSインストールでは導入されないX Code Toolsをインストールする。これのインストールにかなりの容量を食いつぶします。3GBぐらいかな。

 Mac OS X用の開発ツールは、OSインストールDVDからX code Toolsをインストールするのですが、ディスクを挿入し、

 この中の「Optional Installs」フォルダから「Xcode Tools」フォルダを開き、XcodeTooks.mpkgファイルを実行するとインストーラが表示されます。特に設定もなく画面に従ってインストールをします。容量が大きく、かなりのDisk容量(3GBぐらい)と時間(1時間ぐらい)がかかりました。@PowerBookG4(867MHz)

準備2 gdに必要なライブラリを入れる

 jpegとpngを扱うためのライブラリを入れます。Mac OS X向けのバイナリが配布されているので、以下のURLより「Combo Installer: libpng & libjpeg」をダウンロードします。

http://ethan.tira-thompson.org/Mac_OS_X_Ports.html ETHAN TIRA-THOMPSON (Mac OS X Ports libjpeg & libpng)

 ファイルはインストーラ形式となっていて、ダウンロード完了後自動でインストーラが起動します。そのままクリックしていくと、ライブラリのインストールプレフィックスは/usr/localとなっているので、インストール完了後、Terminalで/usr/local/libディレクトリを見ると、「libjpeg~」「libpng~」といったファイルができているはずです。

GDモジュールのインストール

 いよいよ、ここからです。まず、現在のphpのバージョンを調べ、それと同じバージョンのソースをダウンロードしてきます。 php本家 http://www.php.net/releases/

 今回は5.2.8でした。Safariでダウンロードすると、Downloadフォルダに入ると思います。Gzip/tarで圧縮されているんですが、ファイルをクリックして開いても解凍してphp-5.2.8 とかいうフォルダが出来ると思います。Terminalからは、

 $ cd ~/Downloads
 $ tar zxvf php-5.2.8.tar.gz

できたフォルダの中の ext/gdディレクトリへ移動し、phpizeコマンドを引数無しで実行します。

 $ cd php-5.2.8/ext/gd
 $ phpize

すると、ちょっと時間がかかりますが

 Configuring for:
 PHP Api Version:         20041225
 Zend Module Api No:      20060613
 Zend Extension Api No:   220060519

と表示され終わります。で、次にコンパイルします。

下記を1行で入力

 $ ./configure --with-jpeg-dir=/usr/local --with-png-dir=/usr/local

これでエラーなくコンパイルできたらmakeします。

 $ make

 もしかしたら、makeにもsudoがいるかも知れない。ちなみにsudoのパスワードはそのマックの管理者のパスワードです。すると、

 Build complete. Don't forget to run 'make test'.

と表示されると思う。'make test'をしろと書いてあったけど、しなかった。

 $ sudo make install

とすると、下記のメッセージ

 Installing shared extensions:     /usr/lib/php/extensions/no-debug-non-zts-20060613/
 Installing header files:          /usr/include/php/

でインストール終了。

 この状態ではGD拡張モジュールが「/usr/lib/php/extensions/no-debug-non-zts-20060613」ディレクトリに配置されただけみたいです。apache再起動後phpinfoを見ても何も変わってないです。

 追加インストールした拡張モジュールを組み込むには、設定ファイルに変更を入れます。ここから、ちょっと四苦八苦したのですが、

設定

 phpの設定は、php.iniに書かれているが、デフォルトの状態では読み込まれていないようであった。phpinfoを見たとき、設定ファイルの場所に/etcと指定されているのに、Configurationファイルは(none)なっていて読み込まれてないようであった。

php5.conf

 デフォルトの PHP の設定ファイルは /private/etc/apache2/other/php5.conf にある。GD を追加でインストールしてあるのでApache のみで php.ini を有効にしておくために、php5.confに下記を追加する。 PHPIniDir “/private/etc/apache2”  なお、/etc は/private/etc/ に シンボリックリンクされている。ファイルを編集するにはviを使えば良いのだがキー割当がちょっと違ってて、うまく使えない。そこで、Finderから「移動」→「フォルダへ移動..」で「 /private/etc/apache2/other/」を入力してフォルダを表示させ、php5.confファイルのプロパティーでR/W属性に変更して、エディタで編集すればよろしい。

php.iniの編集

 デフォルトのphp.iniファイルは /etc にある。標準だと、php.ini.defaultに成っていると思う。これをphp.iniに名前変更したのに、ずっーと、php.iniが読み込めてなくて不思議だった。まず、php.iniを先に指定した /private/etc/apacheにコピする。

 $ sudo cp /private/etc/php.ini.default /private/etc/apache2/php.ini

同様に、R/W属性を付けてからエディタで編集する。

Extensions ディレクトリを設定

 ; Directory in which the loadable extensions (modules) reside. 492行目ぐらい。
 extension_dir = "./"
    ↓
 extension_dir = "/usr/lib/php/extensions/no-debug-non-zts-20060613"

GD を有効にする

 extension=gd.so

Apacheの再起動

 再起動

 $ sudo apachectl restart

以上で、インストール完了である。phpinfoを見ればgdが有効になっているはずである。

Drupal管理画面からも有効になっていることがわかる。

参考

macyomoyama/installgd.txt · 最終更新: 2013/07/21 17:40 by king