古いバージョンのPHP(4.0.6)とMySQL5(5.0.51a)のビルド
仕事でまた、またPHPを使うことになりそうだ。
既存のサーバー環境をしらべてみると、PHP4.0.6で稼動している。
(だいぶ古いな)
ともあれ、自分の開発環境にも同じバージョンのものをそろえてみようと思い
しぶしぶビルドしてみた。
すると
mysql_create_db と mysql_drop_db の両関数が存在しないエラーがでた。
どうやら、この関数は、通常のMySQLのビルドではlibmysql に組み込まれないらしい。
対処方法として下記リンクのような、両関数を呼んでいる関数を消してしまう
方法があるが、ん〜 これはいかがなものかと思って、この両関数も組み込まれるように
ソースをあたってみた。
http://www.databasebank.com/programmers/frm_detail.php?v_id=1393
結論からすると、-DUSE_OLD_FUNCTIONS オプションをつけて
makeしてやるとよいらしい。
make CFLAGS+=-DUSE_OLD_FUNCTIONS
ただ、Linux環境だと上記の指定をすると、なぜだか -DUNIV_LINUX オプションが消されてしまい、shmid_ds 構造体が定義されている sys/shm.h(bits/shm.h) がインクルードされなくなってしまい、エラーが
でるので
make CFLAGS+="-DUSE_OLD_FUNCTIONS -DUNIV_LINUX"
としてやらないといけない。