Caricamento dei Driver Microsoft per PHP per SQL Server

In questa pagina vengono specificate le istruzioni per il caricamento dei Driver Microsoft per PHP per SQL Server nello spazio di elaborazione PHP.

Installa i driver su Windows con PIE

PIE, il PHP Installer for Extensions, installa i file driver precompilati corrispondenti e li abilita nella configurazione a riga di comando PHP. Windows non ha bisogno di una toolchain di build.

  1. Installa una versione supportata di PHP e il driver Microsoft ODBC per SQL Server.

  2. Esegui php --ini. Se il file di configurazione caricato è (none), copia php.ini-sviluppo dalla directory di installazione PHP a php.ini nella stessa directory.

  3. In php.ini, imposta la directory delle estensioni e abilita le estensioni openssl e zip:

    extension_dir = "ext"
    extension=openssl
    extension=zip
    
  4. Da una directory di lavoro con permessi di scrittura, scarica l'ultima versione stabile pie.phar. Il comando funziona nel Prompt dei comandi e in PowerShell:

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

    Se hai la CLI di GitHub, verifica che la PHP Foundation abbia pubblicato il file:

    gh attestation verify --owner php .\pie.phar
    
  5. Installa entrambi i driver usando l'eseguibile PHP su PATH:

    php .\pie.phar install microsoft/sqlsrv
    php .\pie.phar install microsoft/pdo_sqlsrv
    
  6. Verifica che lo stesso runtime da riga di comando PHP carichi entrambi i driver:

    php --ri sqlsrv
    php --ri pdo_sqlsrv
    

Per altri metodi di installazione PIE, consulta la documentazione sull'uso dei PIE.

Installa i driver su Linux e macOS

Installa i driver e le loro dipendenze di piattaforma con PIE come descritto nel tutorial di installazione di Linux e macOS.

Installa manualmente i driver precompilati

Puoi scaricare i driver precompilati dalla pagina Microsoft Drivers for PHP for SQL Server. Il download Windows è uno ZIP che contiene SQLSRV e file driver PDO_SQLSRV per ogni versione supportata di PHP, architettura e modalità thread-safety. Seleziona i file che corrispondono al tuo ambiente PHP. Vedi Requisiti di Sistema per la lista file.

È anche possibile compilare i driver dall'origine quando si compila PHP o usando phpize. Se si sceglie di compilare i driver dall'origine, è possibile crearli in modo statico in PHP anziché come estensioni condivise aggiungendo --enable-sqlsrv=static --with-pdo_sqlsrv=static (in Linux e macOS) o --enable-sqlsrv=static --with-pdo-sqlsrv=static (in Windows) al comando ./configure durante la compilazione di PHP. Per altre informazioni sul sistema di compilazione di PHP e phpize, vedere la documentazione di PHP.

Spostamento del file driver nella directory della tua estensione

Il file del driver deve trovarsi in una directory in cui il runtime PHP è in grado di trovarlo. È più semplice inserire il file del driver nella directory predefinita dell'estensione PHP: per trovare la directory predefinita, eseguire php -i | sls extension_dir in Windows o php -i | grep extension_dir in Linux/macOS. Se non si usa la directory di estensione predefinita, specificare una directory nel file di configurazione PHP (php.ini), usando l'opzione extension_dir . Ad esempio, in Windows, se si inserisce il file del driver nella c:\php\ext directory, aggiungere la riga seguente a php.ini:

extension_dir = "c:\PHP\ext"

Caricamento del driver all'avvio di PHP

Per caricare il driver SQLSRV all'avvio di PHP, spostare prima un file del driver nella directory delle estensioni. Effettuare quindi i seguenti passaggi:

  1. Per abilitare il driver SQLSRV , modificare php.ini aggiungendo la riga seguente alla sezione dell'estensione, modificando il nome file in base alla versione php e thread safe rispetto all'installazione non thread-safe:

    In Windows:

    extension=php_sqlsrv_83_ts.dll
    

    In Linux, se sono stati scaricati i file binari predefiniti per la distribuzione:

    extension=php_sqlsrv_83_nts.so
    

    Se hai compilato il binario SQLSRV dal sorgente, o l'hai installato con PIE o PECL, il suo nome è sqlsrv.so:

    extension=sqlsrv.so
    
  2. Per abilitare il driver PDO_SQLSRV , l'estensione PHP Data Objects (PDO) deve essere disponibile, sia come estensione integrata che come estensione caricata dinamicamente.

    In Windows, i file binari PHP predefiniti sono dotati di PDO predefinito, quindi non è necessario modificare php.ini per caricarlo. Se, tuttavia, PHP è stato compilato dall'origine e hai specificato un'estensione PDO separata da compila, il suo nome è php_pdo.dll, e devi copiarla nella directory delle estensioni e aggiungere la riga seguente a php.ini:

    extension=php_pdo.dll
    

    In Linux, se è stato installato PHP usando la gestione pacchetti del sistema, PDO è probabilmente installato come estensione caricata dinamicamente denominata pdo.so. L'estensione PDO deve essere caricata prima dell'estensione PDO_SQLSRV o il caricamento non riesce. Le estensioni vengono caricate usando singoli file di .ini e questi file vengono letti dopo php.ini. Di conseguenza, se pdo.so viene caricato con un proprio file INI, è necessario un file separato che carica il driver PDO_SQLSRV dopo PDO.

    Per sapere in quale directory si trovano i file INI specifici dell'estensione, eseguire php --ini e individuare la directory elencata in Scan for additional .ini files in:. Trova il file che carica pdo.so. Deve essere preceduto da un numero, ad esempio 10-pdo.ini. Il prefisso numerico indica l'ordine di caricamento dei file .ini, mentre i file che non hanno un prefisso numerico vengono caricati alfabeticamente. Creare un file per caricare il driver PDO_SQLSRV chiamato 30-pdo_sqlsrv.ini (qualsiasi numero maggiore di quello che precede pdo.ini è valido) o pdo_sqlsrv.ini (se pdo.ini non è preceduto da un numero) e aggiungere la seguente riga, modificando il nome del file come appropriato:

    extension=php_pdo_sqlsrv_3_nts.so
    

    Come per SQLSRV, se hai compilato il binario PDO_SQLSRV dal sorgente, o lo hai installato con PIE o PECL, il suo nome è pdo_sqlsrv.so:

    extension=pdo_sqlsrv.so
    

    Copiare questo file nella directory che contiene gli altri file INI.

    Se PHP è stato compilato dall'origine con supporto PDO predefinito, non è necessario un file .ini separato ed è possibile aggiungere la riga precedente a php.ini.

  3. Riavvia il server web.

Nota

Per determinare se il driver è stato caricato correttamente, eseguire uno script che chiama phpinfo().

Per altre informazioni sulle direttive di php.ini, vedere Descrizione delle direttive core di php.ini.