Linux+PHPからSQLServerへのodbc接続できない。企業口コミLinux+PHPからSQLServerへのodbc接続できない。2.6.32-358.14.1.el6.x86_64・PHP:5.3.3の環境からSQLSererへ接続するためunixodbcを導入しました。パスワード」での接続確認まで出来ています。mssql_productionはodbc.iniで設定したDSNです。specifiedのエラーが返ってきてしまいます。$password);原因が分からないためご教示よろしくお願いします。(devではない方)入れて、freetdsはソースからコンパイルしたんですけど、そうするとlibodbc.soが生成されませんでした。(unixODBC-devel入れてもいけたかもしれませんが)unixODBCもソースからビルドしてfreetdsの./configureでunixODBCの場所指定してコンパイルしたらlibodbc.soも出来上がりました。何かわかったらまた回答に追加しますね。エラーはでなくなりました。DBへの読み書きは行っていませんが(確認予定もありません)、とりあえずodbc_connectで落ちなくなったので報告します。isqlやtsql接続のために設定していたファイルをホームディレクトリにドットファイルとしてコピーしてください。ドットがついていることに注意してください。1以下の様にエラーがでなくなりました。freetds.confのセクション名、QAITSQLSVRはodbc.iniのセクション名になっているものです。user,passはもちろんご自分の環境のものを入れてください。確認で入れてたpyodbcもエラー出てたのがエラーが出なくなったのでうちの環境ではこれが原因だったようです。これだとWindowsで言うところのユーザーDSNなんですよね。システムDSNの位置はexportしてたつもりなんですがなんだか見てくれないようで。そちらを使わせる方法は不明です。あと、エラー2つ載せてますが、実は違うエラーです。DSNにあたる文字列を指定している場合はIM002ではなく、S1000エラーです。現在出ているエラーがIM~の方であれば指定している文字がDSNじゃないかもしれませんのでご注意ください。(4)結果的にはphpを再インストールしたところ、接続できるようになりました。phpinfoで確認したところ、「environment」の項目に以下の二つが追加されていました。(再インストール前後の違いはおそらくここだけ)なので環境変数の問題?かと思っています。exportしてましたが動作はしなかったですね(.bashrcでも×)。内容が更新されたのかもしれません。いずれにせよ、odbcのiniファイルを見つけられるようにする必要があるという事ですね。odbc.iniやfreetds.confを見に行きます。そこに設定されてない場合は繋がらないです。odbc.iniを編集するのであれば、odbcinstを使って編集することをお勧めします。UTF-8上記のテンプレートをodbcinstに読み込ませる。dsn.template後はphpinfoでFreeTDSとunixODBCが入ってるか確かめた方がいいです。-lodbc日本語のBlogではFreeTDSをビルドコンパイルする人が多いですが、yumやapt-getでもすんなり入りますよ。$password);この形式で接続しても状態は変わりませんか?http://php.net/manual/ja/function.odbc-connect.phpodbc_connectのマニュアルに、第1引数はdsnか、dsnではない場合は直接接続文字列も設定できるとあります。$password);になるのではないでしょうか。接続ドライバとDSNは別のものです。いうドライバも見つからない。いうエラーだと思います。(2)0アドバイスありがとうございます。exit('データベースに接続できませんでした。}としてみたのですが、やはり$conがnullとなってしまっているようです。12:41コマンドライン、Webサーバどちらでも同じ結果になり、エラーも出ています。Webから実行した場合はApacheのエラーログに出力されています。13:51odbc.iniのdriverの設定、/etc/odbcinst.iniの対応するドライバの設定も済んでいるんですよね?(isqlでつながっているので大丈夫だとは思いますが)。19:37DSNではない接続コードを回答に追記しました。19:40ウォッチこの質問への回答やコメントをメールでお知らせします。