このページには、Microsoft Drivers for PHP for SQL Server を 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 拡張ディレクトリに配置するのが最も簡単です。既定のディレクトリを見つけるには、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 ドライバーを読み込むには、まずドライバー ファイルを拡張機能ディレクトリに移動します。 その後、次の操作を行います。
SQLSRV ドライバーを有効にするには、次の行を拡張セクションに追加し、 PHP のバージョンとスレッド セーフなインストールとスレッド セーフでないインストールに合わせてファイル名を変更して、php.iniを変更します。
Windows の場合:
extension=php_sqlsrv_83_ts.dllLinux では、ディストリビューション用の事前構築済みバイナリをダウンロードした場合:
extension=php_sqlsrv_83_nts.soソースまたは PECL を使用して SQLSRV バイナリをコンパイルした場合、その名前は sqlsrv.so。
extension=sqlsrv.soPDO_SQLSRV ドライバーを有効にするには、PHP Data Objects (PDO) 拡張機能を組み込みの拡張機能として、または動的に読み込まれる拡張機能として使用できるようにする必要があります。
Windows では、事前構築済みの PHP バイナリには PDO が組み込まれているため、php.ini を変更して読み込む必要はありません。 ただし、ソースから PHP をコンパイルし、ビルドする別の PDO 拡張機能を指定した場合、その名前は
php_pdo.dllされ、拡張機能ディレクトリにコピーし、次の行を php.iniに追加する必要があります。extension=php_pdo.dllLinux では、システムのパッケージ マネージャーを使用して 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 ファイルの読み込み順序を示し、数値プレフィックスを持たないファイルはアルファベット順に読み込まれます。 30-pdo_sqlsrv.ini もしくは pdo_sqlsrv.ini のいずれかの名称でPDO_SQLSRVドライバーを読み込むためのファイルを作成します(どちらか一方を選びます。pdo.ini が数字で始まる場合はその数字より大きい番号を使用し、数字で始まらない場合は pdo_sqlsrv.ini を使用します)。その上で、以下の行を追加し、必要に応じてファイル名を適切に変更してください。extension=php_pdo_sqlsrv_3_nts.soSQLSRV と同様に、ソースまたは PECL からPDO_SQLSRV バイナリをコンパイルした場合、その名前はpdo_sqlsrv。so:
extension=pdo_sqlsrv.so他の .ini ファイルが格納されているディレクトリに、このファイルをコピーします。
PDO サポートが組み込まれたソースから PHP をコンパイルした場合、別の .ini ファイルは必要ありません。前の行を php.iniに追加できます。
Web サーバーを再起動します。
注記
ドライバーが正常に読み込まれたかどうかを確認するには、 phpinfo()を呼び出すスクリプトを実行します。
php.ini ディレクティブの詳細については、コア php.ini ディレクティブに関するページを参照してください。