LoginSignup
4

More than 5 years have passed since last update.

Windows Server 2012 R2にPHPとSQL Serverのドライバーを入れた時のメモ

Posted at

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>";
    }

普通にアクセスできました。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
4