log.metatype

Archive for April 2008

PHP GD Extension for Intel Mac (64-bit)

  • Apr 10, 2008, 13:12
  • Tags: mac

2月に買ったMacBook Airをずっと放置していて、
ようやくセッティングをしているのだけれど、
PHPのGD ExtensionでIntel Mac特有の問題に当たったのでメモしておこう。

Adding GD Library for Mac OS X Leopard を参考にしたので、
詳しいインストール手順はこちらをどうぞ。


必要なもの

X11 SDKが必要で、
Xcode Developer Toolsをインストールしておけば、
たぶん一緒に入っているはず。


MacPortsのライブラリを使わないでコンパイルする

GD Extensionはコンパイル時に
libjpeg、libpng、freetypeが必要になるけど、
PPC Macの場合はMacPortsからインストールしたものでOKだけど、
Intel Macの場合は駄目っぽいので、
使わないでコンパイルする。


libjpegのインストール

libjpegが足りないのでインストールしておく。

  1. 本家のlibjpegが落ちていたので、
    MacPorts経由でソースを持ってきた。
    sudo port install jpeg
    sudo port uninstall jpeg
    cp /opt/local/var/macports/distfiles/jpeg/jpegsrc.v6b.tar.gz .
  2. jpegsrc.v6b.tar.gzを解凍してディレクトリに移動。
    cd jpeg-6b
  3. /usr/share/libtool 以下の2つのファイルをコピーしておく。
    cp /usr/share/libtool/config.sub .
    cp /usr/share/libtool/config.guess .
  4. 64-bit環境に設定。
    MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" CXXFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" LDFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load" ./configure --enable-shared
  5. インストール先のディレクトリを作成。
    mkdir -p /usr/local/include
    mkdir -p /usr/local/bin
    mkdir -p /usr/local/lib
    mkdir -p /usr/local/man/man1
  6. libjpegをコンパイル・インストール。
    make
    sudo make install

GD Extensionのインストール

Apple提供のDarwin Sourceを利用する。

  1. PHPのソースをダウンロード。
    新しいものがあるので、
    http://www.opensource.apple.com/darwinsource/10.5.2/apache_mod_php-44/の、
    php-5.2.5.tar.bz2を使ってみた。
  2. php-5.2.5.tar.bz2を解凍してGDのディレクトリに移動。
    cd php-5.2.5/ext/gd
  3. 64-bit環境に設定。
    libjpegはインストールした /usr/local/lib を指定、
    それ以外は /usr/X11R6 を指定。
    phpize
    MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" CXXFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" LDFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load" ./configure --with-zlib-dir=/usr --with-jpeg-dir=/usr/local/lib --with-png-dir=/usr/X11R6 --with-freetype-dir=/usr/X11R6 --with-xpm-dir=/usr/X11R6
  4. GDをコンパイル・インストール。
    make
    sudo make install

PDO MySQL Extensionも入れたかったのだけど、
GDと同じ様に、MacPortsのMySQLでは駄目っぽくて、
面倒くさいので断念した。