[PHP-users 3491] Re: ODBC接続関数を有効に出来ません。

Takeo Usui php-users@php.gr.jp
Mon, 12 Nov 2001 18:11:22 +0900


碓井です。

ご回答ありがとうございます。

> >ODBC関数を有効にしたく、↓のようなオプションでphpをconfigureしました。
> >
> >./configure --with-apxs=/usr/local/apache/bin/apxs 
> >--enable-mbregex --enable-i18n --with-sybase=/opt/sybase/ 
> >--with-ibm-db2 --without-gd
> 
> ソースディレクトリの中で、
> ./configure --help

 ./configure --help
をしてみました。
ODBCに関係ありそうな所は

  --with-iodbc[=DIR]      Include iODBC support.  DIR is the iODBC base
                          install directory, defaults to /usr/local.

  --with-custom-odbc[=DIR]      Include a user defined ODBC support.
                          The DIR is ODBC install base directory,
                          which defaults to /usr/local.
                          Make sure to define CUSTOM_ODBC_LIBS and
                          have some odbc.h in your include dirs.
                          E.g., you should define following for
                          Sybase SQL Anywhere 5.5.00 on QNX, prior to
                          run configure script:
                              CFLAGS="-DODBC_QNX -DSQLANY_BUG"
                              LDFLAGS=-lunix
                              CUSTOM_ODBC_LIBS="-ldblib -lodbc".

だと思うのですが、iODBC等をインストールしないといけないようです。
そこで、http://www.iodbc.org/ こちらから
libiodbc-3_0_5_tar.gzをダウンロードし、configure→make→make install しました。
その後、phpを

./configure --with-apxs=/usr/local/apache/bin/apxs 
--enable-mbregex --enable-i18n --with-sybase=/opt/sybase/ 
--without-gd --with-iodbc-/usr/local/src/libiodbc-3.0.5/

とconfigureとし、make→make installしました。
しかし、apacheが立ち上がりませんでした。




odbc_connect()という関数は↓の構文なのですが
int odbc_connect (string dsn, string user,
         string password, int [cursor_type])

第一引数はDSNを指定するようにあります。
こちらは
odbc_connect("210.***.***.***","USER","PASSWORD")のように
DSNではなく、IPアドレス等を指定して接続する事は可能なのでしょうか?
こちらのテストするためにodbc関数を有効にしたかったのですが。。。



> >php3.0.7
> >apache1.3.6
> 
> セキュリティホールとか色々問題があるのに、
> こんな古い組み合わせをしないとならないというのは、
> かなり特殊な状況なのでしょうか?
> でもphpをconfigureしてインストールしているんだから、
> かなり自由に設定できる状況にあるんだとは思うんですが...。

以前から稼動しているプログラムが、他のapache、phpの組み合わせ
(apache1.3.19 + php3.0.18)ですと segmentation fault(11) とエラーが出て
うまく動作しないので、動作している環境に合わせているのです。