WindowsServer上のphpと外部SQLSERVERの接続

こんばんわ。
WindowsServerにphpを入れてみたので
その覚書きを…

今回はWindowsServer2008なのですが、
そこにIIS7に対して、phpを入れていきます。
その辺の情報は結構落ちてますので、
そちらをご覧ください。
私が参考にしたのはこちら

さて、問題は外部SQLSERVER。
今回は、WindowsServer内にSQLSERVER2005が
インストールされていない、
要は外部にあるSQLSERVERに接続しなければならないという
条件がついています。

phpから外部SQLSERVER2005に接続するには、
microsoftから提供されているモジュール(extension)を
入れなければなりません。

ver2とver3がありますが、
これはphpとWindowsServerのバージョンにより
選択するものが変わってきます。
[SQL Server Driver for PHP]
今回はphp5.3.27で、SQLSERVER2005であるため、
ver2(SQLSRV20.EXE)を使うことにします。

ダウンロードして解凍すると
15個ぐらいのdllファイルがあるかと思いますが
上記条件よりphp.iniに下記を追加

extension=php_sqlsrv_53_nts_vc9.dll
extension=php_pdo_sqlsrv_53_nts_vc9.dll


それでIISを再起動!

phpでも簡単な接続プログラムを書いて確認!
うん?繋がらない…

ここが結構落とし穴で、
SQLSERVERが入っているサーバー上で接続する場合、
要はlocalhostや127.0.0.1で接続しようとする場合は、
これだけで接続が出来るようなのですが、
外部SQLSERVERに接続して、かつ、
自サーバー上にSQLSERVERが無い場合は、
もう一つ、入れなければならないものが出てきます。

それが、SQLSERVER NATIVE CLIENT

これをいれなければ繋がりません。
ダウンロードも一苦労。
sqlsrv_errors等を使用して接続できなかったときの
エラー内容を見ていくと、ダウンロード先が出てくるのですが
そのサイトの下部にリンクが表示されます。
(細かいことを言うと、sqlsrv_errorsで2008のNativeClientを入れよという
メッセージが出てます)

それがこちら
ここにはPHPのバージョンとの関係も表になっていますので
どれを使えばよいのか分かりやすいとは思いますが、
今回はWindowsServer2008(64bit)のためX64をダウンロード
(Download the X64 package)

これをインストールして、再度
phpから外部のSQLSERVERに接続しようとすると
接続が出来ました!!

Pocket