OSX Server 10.5 (64bit)でPHP+GD

OSX Server 10.5を導入したのですが、PHPにGDが入ってないのでlibpng,libjpeg,libgdをコンパイルし、phpを再コンパイルします。
が、apacheが64bitで動いていたので少し難儀したのでメモを。

基本的にはこちらのサイトに従うのですが、アーキテクチャーの指定はこちらのサイトを参考に進めていきます。
ただし、失敗しても良いように既存の「/usr/libexec/apache2/libphp5.so」はバックアップしておいてください。

ソースの準備
PHP 5.2.6(既にインストールされているものと同一)
gd 2.0.35
libpng 1.2.35
jpeg-6b
以上を~/srcにでもダウンロードし、全て解凍しておきます。

まずはlibpngのコンパイル
$ cd libpng-1.2.35
$ CFLAGS="-arch x86_64" CCFLAGS="-arch x86_64" CXXFLAGS="-arch x86_64" LDFLAGS="-arch x86_64" ./configure
$ make
$ sudo make install

次にlibjpegのコンパイル
$ cd ../gd-2.0.35
$ CFLAGS="-arch x86_64" ./configure
$ cp libtool ../jpeg-6b/.
$ cd ../jpeg-6b
$ 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
$ make
$ sudo make install

次にlibgdのコンパイル
$ cd ../gd-2.0.35
$ sudo ln -s /usr/X11R6/include/fontconfig /usr/local/include
$ 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
$ make
$ sudo make install

最後にPHPのコンパイル
$ cd ../php-5.2.6
$ MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS="-arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch x86_64 -g -Os -pipe" CXXFLAGS="-arch x86_64 -g -Os -pipe" LDFLAGS="-arch x86_64 -bind_at_load" ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --disable-dependency-tracking --with-apxs2=/usr/sbin/apxs --with-ldap=/usr --with-kerberos=/usr --enable-cli --with-zlib-dir=/usr --enable-trans-sid --with-xml --enable-exif --enable-ftp --enable-mbstring --enable-mbregex --enable-dbx --enable-sockets --with-iodbc=/usr --with-curl=/usr --with-config-file-path=/etc --sysconfdir=/private/etc --with-mysql-sock=/var/mysql --with-mysqli=/usr/bin/mysql_config --with-mysql=/usr --with-openssl --with-xmlrpc --with-xsl=/usr --without-pear --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/X11R6 --with-gd=/usr/local
$ make
$ sudo make install

サーバー管理からWebサーバーの再起動ができれば問題ありません。phpinfoでgdが有効になっていることを確認できれば成功です。
もしもアーキテクチャーが間違っているとwrong architectureなどとログに記録され起動できません。

One Comment

  1. SpiralRay より:

    ぅわーぉ、コマンドなんて…
    ユーザーによってコマンドが微妙に違ってくるからやりにくいんですよね…
    いずれMac買うだろうからLinuxで色々練習しておこうかな…?

コメントを残す

メールアドレスが公開されることはありません。

question razz sad evil exclaim smile redface biggrin surprised eek confused cool lol mad twisted rolleyes wink idea arrow neutral cry mrgreen

*