Läser in Microsoft-drivrutiner för PHP för SQL Server

Den här sidan innehåller instruktioner för att läsa in Microsoft Drivers for PHP för SQL Server i PHP-processutrymmet.

Installera drivrutinerna på Windows med PIE

PIE, PHP-installationsprogrammet för tillägg, installerar matchande förkompilerade drivrutinsfiler och aktiverar dem i PHP:s kommandoradskonfiguration. Windows behöver ingen byggverktygskedja.

  1. Installera en stödd PHP-version och Microsoft ODBC-drivrutin för SQL Server.

  2. Kör php --ini. Om Loaded Configuration File är (none), kopiera php.ini-development från PHP:s installationskatalog till php.ini i samma katalog.

  3. I php.ini, ställ in tilläggskatalogen och aktivera openssl och zip tillägg:

    extension_dir = "ext"
    extension=openssl
    extension=zip
    
  4. Ladda ner den senaste stabila pie.phar från en skrivbar arbetskatalog. Kommandot fungerar i kommandotolken och PowerShell:

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

    Om du har GitHub CLI, kontrollera att PHP Foundation publicerade filen:

    gh attestation verify --owner php .\pie.phar
    
  5. Installera båda drivrutinerna med hjälp av PHP-exekverbara filen på PATH:

    php .\pie.phar install microsoft/sqlsrv
    php .\pie.phar install microsoft/pdo_sqlsrv
    
  6. Verifiera att samma PHP-kommandoradskörning laddar båda drivrutinerna:

    php --ri sqlsrv
    php --ri pdo_sqlsrv
    

För andra metoder för installation av PIE, se dokumentationen för användning av PIE.

Installera drivrutinerna på Linux och macOS

Installera drivrutinerna och deras plattformsberoenden med PIE som beskrivs i installationsguiden för Linux och macOS.

Installera förbyggda drivrutiner manuellt

Du kan ladda ner de förbyggda drivrutinerna från sidan Microsoft Drivers for PHP for SQL Server. Den Windows nedladdningen är en ZIP som innehåller SQLSRV och PDO_SQLSRV drivrutinsfiler för varje stödd PHP-version, arkitektur och trådsäkerhetsläge. Välj de filer som matchar din PHP-miljö. Se Systemkrav för fillista.

Du kan också bygga drivrutinerna från källan antingen när du bygger PHP eller med hjälp av phpize. Om du väljer att skapa drivrutinerna från källan kan du skapa dem statiskt i PHP i stället för att skapa dem som delade tillägg genom att lägga till --enable-sqlsrv=static --with-pdo_sqlsrv=static (på Linux och macOS) eller --enable-sqlsrv=static --with-pdo-sqlsrv=static (i Windows) i ./configure kommandot när du skapar PHP. Mer information om PHP-byggsystemet och phpizefinns i PHP-dokumentationen.

Flytta drivrutinsfilen till tilläggskatalogen

Drivrutinsfilen måste finnas i en katalog där PHP-körningen kan hitta den. Det är enklast att placera drivrutinsfilen i php-standardtilläggskatalogen – för att hitta standardkatalogen kör php -i | sls extension_dir du i Windows eller php -i | grep extension_dir på Linux/macOS. Om du inte använder standardtilläggskatalogen anger du en katalog i PHP-konfigurationsfilen (php.ini), med hjälp av alternativet extension_dir . Om du till exempel placerar drivrutinsfilen i din c:\php\ext katalog i Windows lägger du till följande rad i php.ini:

extension_dir = "c:\PHP\ext"

Läser in drivrutinen vid PHP-uppstart

Om du vill läsa in SQLSRV-drivrutinen när PHP startas flyttar du först en drivrutinsfil till din tilläggskatalog. Följ sedan dessa steg:

  1. Om du vill aktivera SQLSRV-drivrutinen ändrar du php.ini genom att lägga till följande rad i tilläggsavsnittet och ändrar filnamnet enligt behov för din PHP-version och för en trådsäker respektive icke-trådsäker installation.

    På Windows:

    extension=php_sqlsrv_83_ts.dll
    

    Om du har hämtat de fördefinierade binärfilerna för distributionen i Linux:

    extension=php_sqlsrv_83_nts.so
    

    Om du kompilerade SQLSRV-binären från källkoden, eller installerade den med PIE eller PECL, heter den sqlsrv.so:

    extension=sqlsrv.so
    
  2. För att aktivera PDO_SQLSRV-drivrutinen måste tillägget PHP Data Objects (PDO) finnas tillgängligt, antingen som ett inbyggt tillägg eller som ett dynamiskt laddat tillägg.

    I Windows levereras de fördefinierade PHP-binärfilerna med inbyggd PDO, så du behöver inte ändra php.ini för att läsa in den. Om du kompilerade PHP från källan och angav ett separat PDO-tillägg som ska skapas, är php_pdo.dlldess namn , och du måste kopiera det till tilläggskatalogen och lägga till följande rad i php.ini:

    extension=php_pdo.dll
    

    Om du installerade PHP med hjälp av systemets pakethanterare i Linux installeras PDO förmodligen som ett dynamiskt inläst tillägg med namnet pdo.so. PDO-tillägget måste läsas in innan PDO_SQLSRV-tillägget, eller så misslyckas inläsningen. Tillägg läses in med hjälp av enskilda .ini filer och dessa filer läses efter php.ini. Därför, om pdo.so laddas via en egen .ini-fil, krävs en separat fil som laddar PDO_SQLSRV-drivrutinen efter att PDO har laddats.

    Om du vill ta reda på vilken katalog de tilläggsspecifika .ini filerna finns kör php --ini du och noterar katalogen som anges under Scan for additional .ini files in:. Leta upp filen som läser in pdo.so. Bör vara föregången av ett nummer, till exempel 10-pdo.ini. Det numeriska prefixet anger inläsningsordningen för de .ini filerna, medan filer som inte har ett numeriskt prefix läses in alfabetiskt. Skapa en fil för att ladda PDO_SQLSRV drivrutinsfilen med namnet antingen 30-pdo_sqlsrv.ini (valfritt nummer som är större än det nummer som prefixar pdo.ini fungerar) eller pdo_sqlsrv.ini (om pdo.ini inte är prefixad med ett nummer) och lägg till följande rad i den, och ändra filnamnet efter behov:

    extension=php_pdo_sqlsrv_3_nts.so
    

    Precis som med SQLSRV, om du kompilerade PDO_SQLSRV-binärfilen från källkoden, eller installerade den med PIE eller PECL, är dess namn pdo_sqlsrv.so:

    extension=pdo_sqlsrv.so
    

    Kopiera den här filen till katalogen som innehåller de andra .ini filerna.

    Om du kompilerade PHP från källan med inbyggt PDO-stöd behöver du inte en separat .ini fil, och du kan lägga till föregående rad i php.ini.

  3. Starta om webbservern.

Anmärkning

För att avgöra om drivrutinen har lästs in kör du ett skript som anropar phpinfo().

Mer information om php.ini direktiv finns i Beskrivning av grundläggande php.ini direktiv.