[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:29443] freetds がうまくいかず



須山です。

potatoを使用しております。

PHPからMicrosoft SQL Server 7(以下では単に「mssql」とよぶ
ことにする)にアクセスしようと思い,インストールしているので
すが,うまくいきません。お助けいただければ幸いです。

今までやったこと

ApacheおよびPHPはDebainのパッケージからインストールしたもの
を使用しております。それぞれのバージョンは,

ii  php4           4.0.3pl1-0pota A server-side, 
HTML-embedded scripting langu
ii  apache         1.3.9-14       Versatile, 
high-performance HTTP server

Debianのパッケージはそのままにしておきたかったので,sybaseの
モジュールは独立した拡張モジュールとして作成することにしまし
た。

まず,freetdsのインストールを行いました。インストール手順に
ついては『OPEN DESIGN』(CQ出版社)2000年12月号を参照いたし
ました。ただし,例としてあったのは,ソースからコンパイルして
モジュールを静的に組み込んでしまう方法です。

freetdsはバージョン0.52(最新版)のものを利用しました。

手順としては,

./configure --with-tdsver=7.0
make
su
make install

これで,/usr/local/freetdsに必要なファイルがインストールされ
ます。次に,/usr/local/freetds/interfacesに下記のように追加
しました。

MSSQL
  query tcp ether hoge 1433
  master tcp ether hoge 1433

次に,モジュールの作成に取りかかりました。まず,php4のソース
を取得するために,

apt-get source php4

としました。そして,(php4のソースディレクトリがカレントデ
ィレクトリであるとすると)

(この手順は『PHP4徹底攻略』(ソフトバンク パブリッシング
社)の393ページを参照しました。ただし,例としてあげられて
いたのはPostgreSQLのモジュールです)

cd ext/sybase
phpize
./configure --with-sybase=/usr/local/freetds
make
su
make EXTENSION_DIR=/usr/local/lib/php/extensions install

と実行したところ,php_sybase_db.soが上記のディレクトリにコ
ピーされました。

/etc/php4/apache/php.iniのファイルの最後に

extension_dir=/usr/local/lib/php/extensions
extension=php_sybase_db.so

と追加して,apacheを再起動したところ,
/var/log/apache/error.logに

/usr/sbin/apache: error in loading shared libraries: /usr/local/lib/php/extensio
ns/php_sybase_db.so: undefined symbol: dbinit

となり,Apache自体が起動しません。

おそらく,sybaseもしくfreetdsのコンパイルやインストールがう
まくいっていないのだと思いますが,普段,apt-get installしか
知らない人なので,解決の糸口がつかめません。

何か,問題点などがあれば,ご指摘していただけると幸いです。よ
ろしくお願いいたします。

-- 
Takeshi Suyama mailto:tsuyama@xxxxx