SQL Server 用 Microsoft Drivers for PHP を読み込む

このページには、Microsoft Drivers for PHP for SQL Server を PHP プロセス領域に読み込む手順が記載されています。

PIEを使ってWindowsにドライバーをインストールしてください

PIE(拡張用PHP Installer)は、対応する事前コンパイル済みドライバーファイルをインストールし、PHPコマンドライン構成で有効化します。 Windowsにはビルドツールチェーンは必要ありません。

  1. サポートされたPHPバージョンとMicrosoft ODBCドライバー(SQL Server)をインストールしてください。

  2. php --ini を実行します。 Loaded Configuration File が (none) の場合、PHP のインストールディレクトリにある php.ini-development を、同じディレクトリ内の php.ini としてコピーします。

  3. php.iniで、拡張ディレクトリを設定し、opensslとzip拡張を有効にします:

    extension_dir = "ext"
    extension=openssl
    extension=zip
    
  4. 書き込み可能なワーキングディレクトリから最新の安定 pie.pharをダウンロードしてください。 コマンドはコマンドプロンプトとPowerShellで動作します:

    curl.exe -fL --output pie.phar https://github.com/php/pie/releases/latest/download/pie.phar
    

    GitHub CLIをお持ちの場合は、PHP Foundationがファイルを公開したか確認してください:

    gh attestation verify --owner php .\pie.phar
    
  5. PATHのPHP実行ファイルを使って両方のドライバーをインストールしてください:

    php .\pie.phar install microsoft/sqlsrv
    php .\pie.phar install microsoft/pdo_sqlsrv
    
  6. 同じPHPコマンドラインランタイムが両方のドライバーを読み込むことを確認します:

    php --ri sqlsrv
    php --ri pdo_sqlsrv
    

その他のPIE設置方法については、 PIEの使用ドキュメントをご覧ください。

ドライバーはLinuxとmacOSにインストールしてください

LinuxおよびmacOSのインストールチュートリアルで説明されている通り、PIEを使ってドライバーとそのプラットフォーム依存関係をインストールします。

手動で既成ドライバーをインストールしてください

既成ドライバは、Microsoft Drivers for PHP for SQL Serverのページからダウンロードできます。 WindowsダウンロードはZIPファイルで、対応するPHPバージョン、アーキテクチャ、スレッドセーフティモードごとにSQLSRVおよびPDO_SQLSRVドライバーファイルが含まれています。 PHP環境に合ったファイルを選択してください。 ファイルリストについては システム要件 を参照してください。

PHP をビルドするとき、または phpize を使用して、ソースからドライバーをビルドすることもできます。 ソースからドライバーをビルドすることを選択した場合、--enable-sqlsrv=static --with-pdo_sqlsrv=static (Linux および macOS の場合) または --enable-sqlsrv=static --with-pdo-sqlsrv=static(Windows の場合) を ./configure コマンドに追加することにより、共有拡張機能としてビルドするのではなく、ドライバーを PHP に静的にビルドするオプションがあります。 PHP ビルド システムおよび phpize の詳細については、PHP のドキュメントを参照してください。

ドライバー ファイルを拡張ディレクトリに移動する

ドライバー ファイルは、PHP ランタイムがあるディレクトリに配置する必要があります。 ドライバー ファイルを既定の PHP 拡張ディレクトリに配置するのが最も簡単です。既定のディレクトリを見つけるには、Windows で php -i | sls extension_dir を実行するか、Linux/macOS で php -i | grep extension_dir します。 既定の拡張ディレクトリを使用していない場合は、 extension_dir オプションを使用して、PHP 構成ファイル (php.ini) でディレクトリを指定します。 たとえば、Windows では、ドライバー ファイルを c:\php\ext ディレクトリに配置する場合は、次の行を php.iniに追加します。

extension_dir = "c:\PHP\ext"

PHP 起動時にドライバーを読み込む

PHP の起動時に SQLSRV ドライバーを読み込むには、まずドライバー ファイルを拡張機能ディレクトリに移動します。 その後、次の操作を行います。

  1. SQLSRV ドライバーを有効にするには、次の行を拡張セクションに追加し、 PHP のバージョンとスレッド セーフなインストールとスレッド セーフでないインストールに合わせてファイル名を変更して、php.iniを変更します。

    Windows の場合:

    extension=php_sqlsrv_83_ts.dll
    

    Linux では、ディストリビューション用の事前構築済みバイナリをダウンロードした場合:

    extension=php_sqlsrv_83_nts.so
    

    もしSQLSRVバイナリをソースからコンパイルしたか、PIEやPECLでインストールした場合、その名前は sqlsrv.so です。

    extension=sqlsrv.so
    
  2. PDO_SQLSRVドライバを有効にするには、PHP Data Objects(PDO)拡張が内蔵拡張または動的に読み込まれた拡張として利用可能でなければなりません。

    Windows では、事前構築済みの PHP バイナリには PDO が組み込まれているため、php.ini を変更して読み込む必要はありません。 ただし、ソースから PHP をコンパイルし、ビルドする別の PDO 拡張機能を指定した場合、その名前は php_pdo.dllされ、拡張機能ディレクトリにコピーし、次の行を php.iniに追加する必要があります。

    extension=php_pdo.dll
    

    Linux では、システムのパッケージ マネージャーを使用して PHP をインストールした場合、PDO は、pdo.so という名前の動的に読み込まれた拡張機能としてインストールされている可能性があります。 PDO_SQLSRV拡張機能の前にPDO拡張機能を読み込まないと、読み込みに失敗します。 拡張機能は個々の .ini ファイルを使用して読み込まれ、これらのファイルは php.ini後に読み込まれます。 このため、pdo.so が独自の .ini ファイルを介して読み込まれる場合は、PDO の後に PDO_SQLSRV ドライバーを読み込む別のファイルが必要です。

    拡張機能固有の .ini ファイルが配置されているディレクトリを見つけるには、php --ini を実行し、[Scan for additional .ini files in:] の一覧に表示されているディレクトリをメモします。 pdo.so が読み込まれるファイルを見つけます。 10-pdo.iniなど、先頭に数字を付ける必要があります。 数値プレフィックスは .ini ファイルの読み込み順序を示し、数値プレフィックスを持たないファイルはアルファベット順に読み込まれます。 PDO_SQLSRV ドライバー ファイルを読み込むために、30-pdo_sqlsrv.ini (pdo.ini の接頭辞に付けられた番号より大きい任意の番号)、または pdo_sqlsrv.ini (pdo.ini に番号の接頭辞が付いていない場合) という名称のファイルを作成し、以下の行を追加してください。必要に応じてファイル名を変更してください。

    extension=php_pdo_sqlsrv_3_nts.so
    

    SQLSRVと同様に、PDO_SQLSRVバイナリをソースからコンパイルするか、PIEやPECLでインストールした場合、その名前はpdo_sqlsrv.soとなります。

    extension=pdo_sqlsrv.so
    

    他の .ini ファイルが格納されているディレクトリに、このファイルをコピーします。

    PDO サポートが組み込まれたソースから PHP をコンパイルした場合、別の .ini ファイルは必要ありません。前の行を php.iniに追加できます。

  3. ウェブサーバーを再起動してください。

注記

ドライバーが正常に読み込まれたかどうかを確認するには、 phpinfo()を呼び出すスクリプトを実行します。

php.ini ディレクティブの詳細については、コア php.ini ディレクティブに関するページを参照してください。