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

PHP-stuurprogramma downloaden

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

U kunt de vooraf gedefinieerde stuurprogramma's voor uw platform downloaden via de microsoft-stuurprogramma's voor PHP voor SQL Server GitHub-projectpagina. Elk installatiepakket bevat SQLSRV - en PDO_SQLSRV stuurprogrammabestanden in threaded en niet-gevergewerkte varianten. In Windows zijn ze ook beschikbaar in 32-bits en 64-bits varianten. Zie Systeemvereisten voor de Microsoft-stuurprogramma's voor PHP voor SQL Server voor een lijst met stuurprogrammabestanden die zich in elk pakket bevinden. Het stuurprogrammabestand moet overeenkomen met de PHP-versie, architectuur en threadedness van uw PHP-omgeving.

Op Linux en macOS kun je de drivers ook installeren met PIE of PECL, zoals beschreven in de installatietutorial.

Op Windows kun je de drivers installeren met PIE, de PHP-installer voor extensies, in versie 5.13.3 en latere versies. PIE vervangt het verouderde PECL-pakketsysteem en schakelt de extensie voor je in, zodat je geen driverbestand downloadt of php.ini handmatig bewerkt. Windows heeft geen build-toolchain nodig, omdat de extensies worden verspreid als vooraf gecompileerde DLL's. PIE zelf vereist PHP 8.1 en latere versies om te draaien, hoewel het een extensie kan installeren in elke andere PHP-installatie op de machine.

pie install microsoft/sqlsrv
pie install microsoft/pdo_sqlsrv

Installeer elke driver met een eigen commando. Voor instructies voor het installeren van PIE, zie de PIE-documentatie.

Op Windows heeft PIE de openssl extensie nodig om de pakketopslag te bereiken. Een PHP-installatie vanuit het php.net .zip-pakket gebruikt het standaard php.ini-development-bestand , dat het niet inschakelt, en PIE stopt met The package "composer/ca-bundle" requires the extension "openssl". Stel extension_dir de extensie in en schakel deze in php.ini in voordat je PIE uitvoert:

extension_dir = "ext"
extension=openssl

Pakketbeheerde PHP-installaties op Linux en macOS zijn al ingeschakeldopenssl, dus deze stap geldt alleen voor Windows.

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. Als u het PDO_SQLSRV-stuurprogramma wilt inschakelen, moet de PDO-extensie (PHP Data Objects) beschikbaar zijn, hetzij als een ingebouwde extensie of als een 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. Start de webserver opnieuw op.

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.