De Microsoft-stuurprogramma's voor PHP voor SQL Server laden

Deze pagina bevat instructies voor het laden van de Microsoft-stuurprogramma's voor PHP voor SQL Server in de PHP-procesruimte.

Installeer de drivers op Windows met PIE

PIE, de PHP Installer for Extensions, installeert de bijpassende voorgecompileerde driverbestanden en schakelt deze in in de PHP-commandoregelconfiguratie. Windows heeft geen build-toolchain nodig.

  1. Installeer een ondersteunde PHP-versie en de Microsoft ODBC-driver voor SQL Server.

  2. Voer php --iniuit. Als Loaded Configuration File(none)leeg is, kopieer php.ini-development van de PHP-installatiemap naar php.ini in dezelfde map.

  3. In php.ini, stel de extensiemap in en schakel de extensies zip en openssl in:

    extension_dir = "ext"
    extension=openssl
    extension=zip
    
  4. Download vanuit een beschrijfbare werkmap de nieuwste stabiele pie.phar. Het commando werkt in de opdrachtprompt en PowerShell:

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

    Als je de GitHub CLI hebt, controleer dan of de PHP Foundation het bestand heeft gepubliceerd:

    gh attestation verify --owner php .\pie.phar
    
  5. Installeer beide drivers met behulp van het PHP-uitvoerbaar bestand op PATH:

    php .\pie.phar install microsoft/sqlsrv
    php .\pie.phar install microsoft/pdo_sqlsrv
    
  6. Controleer of dezelfde PHP-commandoregelruntime beide drivers laadt:

    php --ri sqlsrv
    php --ri pdo_sqlsrv
    

Voor andere PIE-installatiemethoden, zie de documentatie voor het gebruik van PIE.

Installeer de drivers op Linux en macOS

Installeer de drivers en hun platformafhankelijkheden met PIE zoals beschreven in de Linux- en macOS-installatietutorial.

Installeer vooraf gebouwde drivers handmatig

Je kunt de kant-en-klare drivers downloaden van de Microsoft Drivers for PHP for SQL Server-pagina. De Windows download is een ZIP die SQLSRV en PDO_SQLSRV driverbestanden bevat voor elke ondersteunde PHP-versie, architectuur en thread-safety-modus. Selecteer de bestanden die bij je PHP-omgeving passen. Zie Systeemvereisten voor de bestandslijst.

U kunt ook de drivers vanuit de bron bouwen bij het bouwen van PHP of met behulp van phpize. Als u ervoor kiest om de stuurprogramma's van de bron te bouwen, kunt u ze statisch bouwen in PHP in plaats van ze te bouwen als gedeelde extensies door (in Linux en macOS) of --enable-sqlsrv=static --with-pdo_sqlsrv=static (in Windows) aan de opdracht toe te voegen --enable-sqlsrv=static --with-pdo-sqlsrv=static bij het ./configure bouwen van PHP. Zie de phpize voor meer informatie over het PHP-buildsysteem.

Het stuurprogrammabestand verplaatsen naar de map van uw extensie

Het stuurprogrammabestand moet zich in een map bevinden waar de PHP-runtime het kan vinden. Het is het eenvoudigst om het stuurprogrammabestand in uw standaardmap met PHP-extensie te plaatsen: om de standaardmap te vinden, uit te voeren php -i | sls extension_dir in Windows of php -i | grep extension_dir in Linux/macOS. Als u de standaardmap voor extensies niet gebruikt, geeft u een map op in het PHP-configuratiebestand (php.ini), met behulp van de optie extension_dir . Als u bijvoorbeeld in Windows het stuurprogrammabestand in uw c:\php\ext map plaatst, voegt u de volgende regel toe aan php.ini:

extension_dir = "c:\PHP\ext"

Het stuurprogramma laden bij het opstarten van PHP

Als u het SQLSRV-stuurprogramma wilt laden wanneer PHP wordt gestart, verplaatst u eerst een stuurprogrammabestand naar de extensiemap. Voer vervolgens de volgende stappen uit:

  1. Als u het SQLSRV-stuurprogramma wilt inschakelen, wijzigt u php.ini door de volgende regel toe te voegen aan de extensiesectie, waarbij u de bestandsnaam zo nodig wijzigt voor uw PHP-versie en thread- en niet-threadveilige installatie:

    In Windows:

    extension=php_sqlsrv_83_ts.dll
    

    Als u in Linux de vooraf gemaakte binaire bestanden voor uw distributie hebt gedownload:

    extension=php_sqlsrv_83_nts.so
    

    Als je de SQLSRV-binaire code hebt gecompileerd vanuit de broncode, of deze hebt geïnstalleerd met PIE of PECL, heet het sqlsrv.so:

    extension=sqlsrv.so
    
  2. Om de PDO_SQLSRV-driver mogelijk te maken, moet de PHP Data Objects (PDO)-extensie beschikbaar zijn, hetzij als ingebouwde extensie of als dynamisch geladen extensie.

    In Windows worden de vooraf gedefinieerde BINAIRE PHP-bestanden geleverd met ingebouwde PDO, dus u hoeft php.ini niet te wijzigen om deze te laden. Als u echter PHP vanuit de broncode hebt gecompileerd en een afzonderlijke PDO-extensie hebt opgegeven die moet worden gebouwd, is zijn naam php_pdo.dll en moet u deze kopiëren naar uw extensiedirectory en de volgende regel toevoegen aan php.ini:

    extension=php_pdo.dll
    

    Als u PHP hebt geïnstalleerd met behulp van pakketbeheer van uw systeem, wordt PDO waarschijnlijk geïnstalleerd als een dynamisch geladen extensie met de naam pdo.so. De PDO-extensie moet worden geladen voordat de PDO_SQLSRV-extensie wordt geladen, anders mislukt het laden. Extensies worden geladen met behulp van afzonderlijke .ini bestanden en deze bestanden worden na php.inigelezen. Daarom, als pdo.so via een eigen .ini-bestand wordt geladen, is een apart bestand vereist dat het PDO_SQLSRV-stuurprogramma laadt nadat PDO is geladen.

    Als u wilt weten welke map de extensiespecifieke .ini-bestanden zich bevinden, voert u de map uit php --ini en noteert u de map die wordt vermeld onder Scan for additional .ini files in:. Zoek het bestand dat pdo.so laadt. Het moet worden voorafgegaan door een getal, zoals 10-pdo.ini. Het numerieke voorvoegsel geeft de laadvolgorde van de .ini bestanden aan, terwijl bestanden die geen numeriek voorvoegsel hebben, alfabetisch worden geladen. Maak een bestand voor het laden van het PDO_SQLSRV stuurprogrammabestand met de naam 30-pdo_sqlsrv.ini (een getal dat groter is dan het nummer dat pdo.ini werkt) of pdo_sqlsrv.ini (als pdo.ini niet met een getal wordt voorafgegaan) en voeg de volgende regel toe, waarbij u de bestandsnaam indien van toepassing wijzigt:

    extension=php_pdo_sqlsrv_3_nts.so
    

    Net als bij SQLSRV, als je de PDO_SQLSRV-binary vanuit de bron compileerde of installeerde met PIE of PECL, heet de naam pdo_sqlsrv.so:

    extension=pdo_sqlsrv.so
    

    Kopieer dit bestand naar de map die de andere .ini bestanden bevat.

    Als u PHP hebt gecompileerd vanuit de bron met ingebouwde PDO-ondersteuning, hebt u geen afzonderlijk .ini bestand nodig en kunt u de vorige regel toevoegen aan php.ini.

  3. Herstart de webserver.

Opmerking

Als u wilt bepalen of het stuurprogramma is geladen, voert u een script uit dat phpinfo() aanroept.

Zie Beschrijving van kern-php.ini richtlijnen voor meer informatie over php.ini richtlijnen.