PHP pecl IBM_DB2のコンパイル方法
どうもphpのマニュアルを見ていても要領を得ないので
調べまくってみた
ひとまずpeclからibm_db2のソースをダウンロードして展開
インストールしているphpのソースのextに展開する
(自分の環境だと /usr/local/src/php-5.2.8/ext/ibm_db2 って感じでした)
phpize ./configure --with-php-config=/usr/bin/php-config --with-IBM_DB2=/opt/ibm/db2/V9.5/
ZendCoreだったら
phpize ./configure --with-php-config=/usr/local/Zend/Core/bin/php-config --with-IBM_DB2=/opt/ibm/db2/V9.5/
最近だったら、
./configure --with-php-config=/usr/local/php/bin/php-config --with-IBM_DB2=/opt/ibm/db2/V9.7
てな感じですね。
まあ、環境に合わせて試してみてください〜
とすると
./modules/ibm_db2.so
ができていると思うので、
ほかのpeclだと、makeが必要かもです
make必須でした・・
extension=ibm_db2.so
を追加してapacheの再起動
てな手順でいけるはず!
でも、うまくいかないパターンがあって調べてみると
/opt/ibm/db2/V9.5/includeディレクトリの中身がさっぱり無いっていう
のが原因でした。。
手元のDB2 9.5(32bit)がそうで、じゃあ、64bitだとあるし
DB2clientが入っているマシンでも大丈夫だった・・
とりあえず、ほかに存在していたincludeの中身をごっそりコピってきたら
configureが通りましたwww
ちょっと不可解ですが、深追いしていないので
まあこんなところで。。
で、ちょっと探ってみたんですが、
インストールオプションにもよるのかもですが
includeの中身がスカスカの場合は
DB2のインストールパッケージ(ダウンロードなどしたファイルを解凍したもの)内の
expc/db2/linux/FILES/APPLICATION_DEVELOPMENT_TOOLS_9.7.0.2_linuxia32_i386.tar.gz
(express-c 9.7.2の場合)
を解凍すると、includeというディレクトリができるので
この中身を、
/opt/ibm/db2/V9.7/include/
(express-c 9.7.2の場合)
にコピーすればいいようでした。