Snow Leopard + MacPorts1.8.0 の環境でPHPをコンパイル

忘れそうなのでメモ。

PHPMySQL以外はMacPortsで管理

macbookのOSをアップグレードしたので、macportsも作り直すことにしました。
ただし、PHPCGI版を利用して複数のバージョンでローカルでテストできるようにしたいので、ソースからコンパイルしました。
また、pdoを利用する関係でMySQLportsからでなくMySQLのサイトからMac OSX用(x86_64)アーカイブを/usr/local/mysqlに展開しました。もちろん64bitです。


あとは、configure、make、make installと楽勝かと思いきや、makeでこけるこける。。
以下のページでずばり解決しました。
http://moudamekamoshirenai.g.hatena.ne.jp/onumerane/20090905/1252137013
必要なパッケージさえ入っていれば、最終的に「LIBS=-lresolv」を指定すれば大丈夫な事がわかりました。

最終的なconfigure

$ LIBS=-lresolv \
./configure \                                                     
--prefix=/usr/local/php5210 \
--with-gd=/opt/local \
--with-jpeg-dir=/opt/local \
--with-xsl=/opt/local \
--with-mysql=/usr/local/mysql \
--with-mysql-sock=/tmp/mysql.sock \
--with-config-file-scan-dir=/usr/local/php5210/etc/php.ini.d \
--enable-mbstring \
--enable-zend-multibyte \
--with-iconv=shared,/usr \
--with-pdo-mysql=/usr/local/mysql/bin/mysql_config

PHPのバージョン切り替えにgitを活用

ローカルで開発するのに必要なphp-cgiを作成し、それぞれのphp-cgiをapache2のcgi-binに配置するのですが、
簡単にバージョンを切り替えることができるようにgitのbranchを利用して各バージョンごとのブランチを作ってみました。
そして、最終的に以下のようなbranchの一覧が完成しました。

% git branch                                              [/opt/local/apache2/cgi-bin]
  master
  php-5.2.10
  php-5.2.4
  php-5.2.6
* php-5.2.8
  php-5.3.0

これで、バージョンを切り替えたいときは

% sudo git checkout php-5.3.0

のようにチェックアウトすれば簡単にテスト環境のPHPのバージョンを変更できるようになりました。
快適。