2010年12月14日火曜日

Firebird2.x on PHP5.3.3

弊社のサービスでは、Interbase/Firebirdは、
ドチラかと言うとあまり数扱ってないRDBMなのですが、
某所でしっかり使ってらっしゃるために、サポートが
必要なものとなっております。

今はFreeBSDでほとんど利用や開発されてないRDBMと見え
情報が少ないのですがLinuxやMS-Windowsで盛んに使わ
れています。CADの部品管理DBなどでも使われていました。

で、このところの問題が一つ解決されたので書きます。
最近64bit版でちゃんと動かなかったというだけの話です。
 
 FreeBSDでは、Interbaseの商用版開発が終わったあとに
独自に発展したFirebirdがportsに入っていますが、この
Firebirdがインストールが面倒なportsであることはあまり
知られていないようです。 sudoを使って、rootでスタート
するのが普通のportsのインストール方法ですが、Firebirdは
ユーザをfirebirdに切り替えないとインストールが続行でき
ません。しかも、rootで書いていたファイルをすべてfirebird
の権限で書き直せるように、owner情報も書き換える必要が
あります。なら最初からfirebirdで構築開始すれば良いのですが、
大抵周りの補助パッケージを作る時点でfirebirdという一般
ユーザ権限では止まってしまいます。 さらにインストールには
rootでインストールしないとダメですから、このportは自動で
ユーザ権限を変更する仕掛けを作っておいて欲しい。

FirebirdのFreeBSDで動かすことの難点は、portsからでないと
ほとんど解決できない問題ばかりで、野良コンパイルすると
とても苦労することばかりになります。最初の一歩が踏み出せず
挫折してしまうことも考えられます。私も野良コンパイルで仕
上げてみた最初のサーバも、portsの構築を経由して何が必要な
補助ツールであるのかを調べてから構築完了するという体たらく。

さて、PHP5.xをインストールするあたり、Firebird2.0.3に対応
するphp5-interbaseプラグインが長らく32bitだけでのみ運用可能
だったことも、あまり知られていないことのようです。

FreeBSD/amd64でコンパイルすると、int64に対応してないため、
Segmentation Faultしてしまうという困ったプラグインでした。

最近PHPのFreeBSD-portsも5.3.3まで進んできましたので、
ここいら辺で64bit版にも対応したかどうかを調べてみるべく
放置気味のサーバでテストしたところ、直っていました。

FreeBSD-portsの修正情報を仕入れるのにML入ったり、newsを
眺めていれば、基本的に間違いなさそうですが、自然とデスク
トップアプリ比率の高いportsネタはSN比が悪くなるので、
見落としがちです。今回もパッチがあたったとか調べていま
せん。バージョンが上がったことだけを見ただけです。

なかなか更新されてなかっただけに、自分で手直しないと
ダメかと諦めてましたが、まあ動かせるので…更新ガンガン
かけていきましょうかぁ!! という他力本願な締め。

0 件のコメント: