Ubuntu 上 PHP から Microsoft SQL Server にアクセスしてみよう、というのに手こずりました。でもいろんな人のブログのおかげでなんとか成功。感謝、感謝。
※ SQL Server はここでは英語版 Microsoft SQL Server 2008 R2 を使用
1. 必要なパッケージをインストール
$ sudo apt-get install build-essential libssl-dev libssl1.0.0 libssl1.0.0-dbg
2. unixODBC 2.3.0 を http://www.unixodbc.org/download.html から入手
3. unixODBC をインストール
$ sudo ./configure --disable-gui --disable-drivers --enable-iconv --with-iconv-char-enc=UTF8 --with-iconv-ucode-enc=UTF16L $ sudo make install
4. Microsoft SQL Server ODBC Driver 1.0 for Linux をダウンロード
http://www.microsoft.com/en-us/download/details.aspx?id=28160
sqlncli-11.0.1790.0.tar.gz
5. sqlncli 内のライブラリをチェック
$ ldd lib64/libsqlncli-11.0.so.1790.0
6. 足りないライブラリをリンク
/usr/lib$ sudo ln -s /lib/x86_64-linux-gnu/libssl.so.1.0.0 libssl.so.10 /usr/lib$ sudo ln -s /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 libcrypto.so.10
7. Microsoft SQL Server ODBC Driver 1.0 for Linux をインストール
$ sudo bash ./install.sh install --force ./install.sh: line 233: rpm: command not found Checking for 64 bit Linux compatible OS ..................................... OK Checking required libs are installed ................................. NOT FOUND unixODBC utilities (odbc_config and odbcinst) installed ............ NOT CHECKED unixODBC Driver Manager version 2.3.0 installed .................... NOT CHECKED unixODBC Driver Manager configuration correct ...................... NOT CHECKED Microsoft SQL Server ODBC Driver V1.0 for Linux already installed .. NOT CHECKED Microsoft SQL Server ODBC Driver V1.0 for Linux files copied ................ OK Symbolic links for bcp and sqlcmd created ................................... OK Microsoft SQL Server ODBC Driver V1.0 for Linux registered ........... INSTALLED
8. インストールされたか確認
$ odbcinst -q -d -n "SQL Server Native Client 11.0"; [SQL Server Native Client 11.0] Description=Microsoft SQL Server ODBC Driver V1.0 for Linux Driver=/opt/microsoft/sqlncli/lib64/libsqlncli-11.0.so.1790.0 Threading=1 UsageCount=1
9. php5-odbc をインストール
$sudo apt-get install php5-odbc
10. odbcsys.ini を作成
/usr/local/etc$ sudo ln -s odbcinst.ini odbcsys.ini
11. odbc.ini を作成
$sudo vi /usr/local/etc/odbc.ini -----------< odbc.ini の中身 >------------- [MSSQLServer] Driver = SQL Server Native Client 11.0 Description = test Trace = Yes Server = SQL Server のマシンの IP アドレス Port = 1433 Database = test ------------------------------------------
12. Sql Server Configuration Manager で TCP/IP でのアクセスを設定
http://msdn.microsoft.com/en-us/library/ms177440%28v=sql.105%29.aspx
* SQL Server Network Configuration -> Protocols for インスタンス名
* TCP/IP Disabled => Enabled に変更
* TCP/IP を ダブルクリックして Protocol => Listen All を No
* IP Address タブで 127.0.0.1 と サーバの IP アドレスのものを探し、次のように設定
Active: Yes Enabled: Yes IP Address: サーバの IP アドレス / 127.0.0.1 TCP Dynamic Ports: 空欄 (0 は Dynamic Port を使うという意味になる) TCP Port: 1433
13. firewall で上記ポート番号へのアクセスを許可
14. test.php で接続テスト…
<?php
putenv('ODBCSYSINI=/usr/local/etc');
putenv('ODBCINI=/usr/local/etc/odbc.ini');
$pdo = new PDO('odbc:MSSQLServer', $username, $password);
?>




