SQL Server 用 Microsoft Drivers for PHP を読み込む
このトピックでは、Microsoft SQL Server 用 Drivers for PHP を PHP プロセス領域に読み込む手順について説明します。
ご使用のプラットフォーム用の事前構築済みドライバーは、Microsoft Drivers for PHP for SQL Server GitHub プロジェクト ページからダウンロードできます。 各インストール パッケージには、スレッド化されたバリアントとスレッド化されていないバリアントの SQLSRV ドライバー ファイルと PDO_SQLSRV ドライバー ファイルが含まれています。 Windows では、32 ビットと 64 ビットのバリアントでも使用できます。 各パッケージに含まれるドライバー ファイルの一覧については、「Microsoft SQL Server 用 Drivers for PHP のシステム要件」を参照してください。 ドライバー ファイルは、PHP 環境の PHP バージョン、アーキテクチャ、スレッド性と一致する必要があります。
Linux と macOS では、インストール チュートリアルに記載されているように、PECL を使用してドライバーをインストールすることもできます。
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 拡張機能ディレクトリにドライバー ファイルを配置するのが最も簡単です。既定のディレクトリを検索するには、php -i | sls extension_dir
(Windows 上) または php -i | grep extension_dir
(Linux または macOS 上) を実行します。 既定の拡張機能ディレクトリを使用していない場合は、PHP 構成ファイル (php.ini) で、extension_dir オプションを使用してディレクトリを指定します。 たとえば、Windows で、ドライバーファイルを c:\php\ext
ディレクトリに配置している場合、次の行を php.ini に追加します。
extension_dir = "c:\PHP\ext"
PHP の起動時にドライバーを読み込む
PHP の起動時に SQLSRV ドライバーを読み込むには、まずドライバー ファイルを拡張機能ディレクトリに移動します。 その後、次の操作を行います。
SQLSRV ドライバーを有効にするには、次の行を拡張機能セクションに追加して php.ini を変更し、必要に応じてファイル名を変更します。
Windows の場合:
extension=php_sqlsrv_82_ts.dll
Linux では、ディストリビューション用に事前に作成されたバイナリをダウンロードしている場合、次のようになります。
extension=php_sqlsrv_82_nts.so
ソースから、または PECL を使用して SQLSRV バイナリをコンパイルした場合、代わりに sqlsrv.so という名前が付けられます。
extension=sqlsrv.so
PDO_SQLSRV ドライバーを有効にするには、PHP Data Objects (PDO) 拡張機能を組み込みの拡張機能として、または動的に読み込まれる拡張機能として使用できるようにする必要があります。
Windows では、事前に作成された PHP バイナリに組み込みの PDO が付属しているため、php.ini を変更して PDO を読み込む必要はありません。 ただし、ソースから PHP をコンパイルし、ビルドする別の PDO 拡張機能を指定した場合は、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_82_nts.so
SQLSRV と同様、ソースから、または PECL を使用して PDO_SQLSRV バイナリをコンパイルした場合、代わりに pdo_sqlsrv.so という名前が付けられます。
extension=pdo_sqlsrv.so
他の .ini ファイルが格納されているディレクトリに、このファイルをコピーします。
組み込みの PDO サポートを使用してソースから PHP をコンパイルした場合は、別の .ini ファイルは必要ありません。また、上記の適切な行を php.ini に追加することもできます。
Web サーバーを再起動します。
Note
ドライバーが正常に読み込まれたかどうかを判断するために、phpinfo() を呼び出すスクリプトを実行します。
php.ini ディレクティブの詳細については、コア php.ini ディレクティブに関するページを参照してください。
参照
Microsoft Drivers for PHP for SQL Server の概要
Microsoft SQL Server 用 Drivers for PHP のシステム要件