Windows Serverでは、APS.NETを利用していますが、PHPも使えるようにする際のメモ。
##前提
- OSインストール済
- IISインストール済
- SQL Serverインストール済(ここでは2014で検証)
- インストールするPHPは5.6(Laravel5.1.xに対応するため)
##インストール
インストールの方法はいろいろあるが、WebPIを利用するのが一番簡単そうなので、それで行います。
WebPI(Web Platform Installer)をダウンロードし、起動して、検索ウインドウで"php"を検索。そこで出てくる、
- php5.6
- Microsoft Drivers 3.2 for PHP v5.6 for SQL Server in IIS
の2つを選択肢、インストールする。依存コンポーネントも含め、いくつかのものがインストールされます。
##動作確認
###インストール場所
インストールは
C:\Program Files (x86)\PHP
に行われ、php.iniは、
C:\Program Files (x86)\PHP\v5.6\php.ini
となる。SQL Serverアクセスに必要なモジュールは標準でONになっているもよう。
その他、IISへの登録とかも終わっているので後は使うだけ。
extension=php_pdo_sqlsrv.dll
extension=php_sqlsrv.dll
私はPDOを使う派。ちゃんと動いているかは、
<?php
phpinfo();
でどうぞ。設定を変更したらIISの再起動が必要です。
###SQL Serverへの接続確認
PDO生成時の文字列が少し違う程度で、後はMySQLなどと同じ。まあ、それがPDOですが。
こんな感じ。
testdb,usersテーブル,nameカラムはあることが前提。
<?php
//PDO
$dbh = new PDO("sqlsrv:server=localhost;database=testdb","sa","password!");
//エラー出力設定(別にいらない)
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//通常の利用
$stmt = $dbh->prepare("select * from users");
$status = $stmt->execute();
//出力
foreach($stmt->fetchAll(PDO::FETCH_ASSOC) as $row)
{
echo $row["name"]."<br>";
}
普通にアクセスできました。