Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questa pagina vengono specificate le istruzioni per il caricamento dei Driver Microsoft per PHP per SQL Server nello spazio di elaborazione PHP.
È possibile scaricare i driver predefiniti per la piattaforma in uso dalla pagina del progetto GitHub Driver Microsoft per PHP per SQL Server. Ogni pacchetto di installazione contiene i file driver SQLSRV e PDO_SQLSRV in varianti con supporto per i thread e senza supporto per i thread. In Windows sono disponibili anche nelle varianti a 32 bit e a 64 bit. Vedere Requisiti di sistema dei driver Microsoft per PHP per SQL Server per un elenco dei file dei driver contenuti in ogni pacchetto. Il file del driver deve corrispondere alla versione di PHP, all'architettura e alle caratteristiche del threading dell'ambiente PHP.
Su Linux e macOS, puoi installare i driver con PIE o PECL, come descritto nel tutorial di installazione.
Su Windows, puoi installare i driver con PIE, il PHP Installer for Extensions, nella versione 5.13.3 e versioni successive. PIE sostituisce il sistema di pacchetti PECL obsoleto e abilita l'estensione per te, così non devi scaricare un file driver né modificarephp.ini manualmente. Windows non necessita di una toolchain di compilazione, perché le estensioni sono distribuite come DLL precompilate. PIE stesso richiede PHP 8.1 e versioni successive per essere eseguito, anche se può installare un'estensione in qualsiasi altra installazione PHP sulla macchina.
pie install microsoft/sqlsrv
pie install microsoft/pdo_sqlsrv
Installa ogni driver con il rispettivo comando. Per le istruzioni sull'installazione di PIE, consulta la documentazione PIE.
Su Windows, PIE ha bisogno dell'estensione openssl per raggiungere il repository dei pacchetti. Un'installazione di PHP dal pacchetto .zip di php.net utilizza il file php.ini-development standard, che non la abilita, e PIE si interrompe con The package "composer/ca-bundle" requires the extension "openssl". Imposta extension_dir e abilita l'estensione in php.ini prima di eseguire PIE:
extension_dir = "ext"
extension=openssl
Le installazioni PHP gestite dai pacchetti su Linux e macOS sono già abilitateopenssl, quindi questo passaggio si applica solo a Windows.
È 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:
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.dllIn Linux, se sono stati scaricati i file binari predefiniti per la distribuzione:
extension=php_sqlsrv_83_nts.soSe hai compilato il binario SQLSRV dal sorgente, o l'hai installato con PIE o PECL, il suo nome è sqlsrv.so:
extension=sqlsrv.soPer abilitare il driver PDO_SQLSRV, è necessario che l'estensione PHP Data Objects (PDO) sia disponibile come estensione predefinita o 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.dllIn 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 --inie individuare la directory elencata inScan 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.soCome 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.soCopiare 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.
Riavviare 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.