載入適用於 SQL Server 的 Microsoft PHP 驅動程式

本頁提供將 Microsoft Drivers for PHP for SQL Server 載入 PHP 處理序空間的指示。

在 Windows 上安裝帶有 PIE 的驅動程式

PIE(PHP 擴充套件安裝程式)會安裝符合的預先編譯驅動程式檔案,並在 PHP 命令列設定中啟用它們。 Windows 不需要建置工具鏈。

  1. 安裝支援的 PHP 版本及 Microsoft ODBC 驅動程式 for SQL Server。

  2. 執行 php --ini。 如果 Loaded Configuration File 是 (none),請將 PHP 安裝目錄中的 php.ini-development 複製為同一目錄中的 php.ini。

  3. 在 php.ini中,設定擴充名目錄並啟用 openssl and 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 基金會是否已發布該檔案:

    gh attestation verify --owner php .\pie.phar
    
  5. 請使用以下 PHP 執行檔 PATH安裝兩個驅動程式:

    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 PHP for SQL Server 驅動程式頁面下載預編驅動程式。 Windows下載為一個 ZIP 檔,內含 SQLSRV 及每個支援的 PHP 版本、架構及執行緒安全模式的 PDO_SQLSRV 驅動程式檔案。 選擇與你的 PHP 環境相符的檔案。 請參閱檔案清單的 系統需求 。

您也可以在建置 PHP 時,或是使用 phpize 來從來源建置驅動程式。 如果您選擇從來源建置驅動程式,您可以透過在建置 PHP 時將 --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。 如果你沒有使用預設的副檔名目錄,請在 PHP 設定檔中指定一個目錄(php.ini),並使用 extension_dir 選項。 例如,在 Windows 上,如果你把驅動程式檔案放進目錄 c:\php\ext ,php.ini後面加上以下一行:

extension_dir = "c:\PHP\ext"

在 PHP 啟動時載入驅動程式

若要在 PHP 啟動時載入 SQLSRV 驅動程式,請先將驅動程式檔案移入延伸目錄中。 然後,請遵循下列步驟:

  1. 要啟用 SQLSRV 驅動程式,請修改 php.ini ,在副檔名區塊新增以下行,並依照你的 PHP 版本及執行緒安全與非執行緒安裝方式更改檔名:

    在 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 資料物件(PDO)擴充功能,無論是內建擴充功能還是動態載入擴充功能。

    在 Windows 上,預建的 PHP 二進位檔內建 PDO,因此不需要修改 php.ini 來載入它。 然而,如果你從原始碼編譯了 PHP,並指定要建置的獨立 PDO 擴充功能,該擴充名為 php_pdo.dll,你必須將其複製到擴充套件目錄,並在 php.ini中加入以下一行:

    extension=php_pdo.dll
    

    在 Linux 上,如果你是用系統的套件管理器安裝 PHP,PDO 很可能是以一個名為 pdo.so 的動態載入擴充功能安裝。 PDO 擴充必須在 PDO_SQLSRV 擴展之前載入,否則載入失敗。 擴充功能是使用個別 .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 指示詞的描述。