Laden der Microsoft-Treiber für PHP für SQL Server

Diese Seite enthält Anweisungen zum Laden der Microsoft-Treiber für PHP für SQL Server in den PHP-Prozessbereich.

Installiere die Treiber unter Windows mit PIE

PIE, der PHP-Installer für Erweiterungen, installiert die entsprechenden vorkompilierten Treiberdateien und aktiviert sie in der PHP-Kommandozeilenkonfiguration. Windows braucht keine Build-Toolchain.

  1. Installiere eine unterstützte PHP-Version und den Microsoft ODBC-Treiber für SQL Server.

  2. Führen Sie php --ini aus. Wenn die geladene Konfigurationsdatei , (none)kopiere php.ini-development aus dem PHP-Installationsverzeichnis in php.ini im selben Verzeichnis.

  3. In php.ini, setzen Sie das Erweiterungsverzeichnis ein und aktivieren Sie die openssl und zip Erweiterungen:

    extension_dir = "ext"
    extension=openssl
    extension=zip
    
  4. Lade aus einem beschreibbaren Arbeitsverzeichnis die neueste stabile pie.pharMappe herunter. Der Befehl funktioniert in der Eingabeaufforderung und PowerShell:

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

    Wenn du die GitHub-CLI hast, überprüfe, dass die PHP Foundation die Datei veröffentlicht hat:

    gh attestation verify --owner php .\pie.phar
    
  5. Installieren Sie beide Treiber mithilfe der PHP-Executable unter PATH:

    php .\pie.phar install microsoft/sqlsrv
    php .\pie.phar install microsoft/pdo_sqlsrv
    
  6. Überprüfen Sie, dass dieselbe PHP-Befehlszeile beide Treiber lädt:

    php --ri sqlsrv
    php --ri pdo_sqlsrv
    

Für andere PIE-Installationsmethoden siehe die PIE-Nutzungsdokumentation.

Installiere die Treiber unter Linux und macOS

Installiere die Treiber und ihre Plattformabhängigkeiten mit PIE, wie im Linux- und macOS-Installationstutorial beschrieben.

Installieren Sie vorgefertigte Treiber manuell

Du kannst die vorgefertigten Treiber von der Seite Microsoft Drivers for PHP for SQL Server herunterladen. Der Windows Download ist ein ZIP, der SQLSRV und PDO_SQLSRV Treiberdateien für jede unterstützte PHP-Version, Architektur und Thread-Sicherheitsmodus enthält. Wähle die Dateien aus, die zu deiner PHP-Umgebung passen. Siehe Systemanforderungen für die Dateiliste.

Sie können die Treiber auch aus dem Quellcode erstellen, entweder beim Erstellen von PHP oder indem Sie phpize verwenden. Wenn Sie die Treiber aus der Quelle erstellen, haben Sie die Möglichkeit, die Treiber statisch in PHP anstatt als freigegebene Erweiterungen zu erstellen, indem Sie beim Erstellen mit PHP dem --enable-sqlsrv=static --with-pdo_sqlsrv=static-Befehl --enable-sqlsrv=static --with-pdo-sqlsrv=static (unter Linux und macOS) oder ./configure (unter Windows) hinzufügen. Weitere Informationen zum PHP-Buildsystem und phpize finden Sie in der PHP-Dokumentation.

Verschieben der Treiberdatei in Ihr Erweiterungsverzeichnis

Die Treiberdatei muss sich in einem Verzeichnis befinden, in dem die PHP-Runtime sie finden kann. Es ist am einfachsten, die Treiberdatei in Ihrem Standard-PHP-Erweiterungsverzeichnis zu platzieren – um das Standardverzeichnis zu finden, führen Sie php -i | sls extension_dir unter Windows oder php -i | grep extension_dir unter Linux/macOS aus. Wenn Sie das Standarderweiterungsverzeichnis nicht verwenden, geben Sie ein Verzeichnis in der PHP-Konfigurationsdatei (php.ini) mithilfe der option extension_dir an. Wenn Sie die Treiberdatei unter Windows beispielsweise in Ihrem Verzeichnis c:\php\ext ablegen, fügen Sie der Datei „php.ini“ die folgende Zeile hinzu:

extension_dir = "c:\PHP\ext"

Laden des Treibers beim PHP-Start

Beim Laden der SQLSRV-Treiber beim Starten von PHP verschieben Sie zunächst eine Treiberdatei in das Erweiterungsverzeichnis. Dann führen Sie folgende Schritte aus:

  1. Um den SQLSRV-Treiber zu aktivieren, ändern Sie php.ini , indem Sie die folgende Zeile zum Erweiterungsabschnitt hinzufügen und den Dateinamen entsprechend ihrer PHP-Version und Threadsicheren im Vergleich zur nicht threadsicheren Installation ändern:

    Unter Windows:

    extension=php_sqlsrv_83_ts.dll
    

    Unter Linux, wenn Sie die vordefinierten Binärdateien für Ihre Verteilung heruntergeladen haben:

    extension=php_sqlsrv_83_nts.so
    

    Wenn Sie die SQLSRV-Binärdatei aus der Quelle kompiliert oder mit PIE oder PECL installiert haben, lautet ihr Name sqlsrv.so:

    extension=sqlsrv.so
    
  2. Um den PDO_SQLSRV-Treiber zu aktivieren, muss die PHP Data Objects (PDO)-Erweiterung verfügbar sein, entweder als integrierte Erweiterung oder als dynamisch geladene Erweiterung.

    Unter Windows kommen die vorgefertigten PHP-Binärdateien mit integriertem PDO, sodass es nicht erforderlich ist, php.ini zu ändern, um es zu laden. Wenn Sie PHP jedoch aus der Quelle kompiliert und eine separate zu erstellende PDO-Erweiterung angegeben haben, lautet php_pdo.dllder Name, und Sie müssen es in Ihr Erweiterungsverzeichnis kopieren und die folgende Zeile zu php.inihinzufügen:

    extension=php_pdo.dll
    

    Wenn Sie PHP unter Linux mit dem Paket-Manager Ihres Systems installiert haben, wird PDO wahrscheinlich als dynamisch geladene Erweiterung namens pdo.so installiert. Die PDO-Erweiterung muss vor der PDO_SQLSRV-Erweiterung geladen werden, andernfalls schlägt der Ladevorgang fehl. Erweiterungen werden mit einzelnen .ini Dateien geladen, und diese Dateien werden nach php.ini gelesen. Wenn "pdo.so" also über eine eigene INI-Datei geladen wird, ist eine separate Datei erforderlich, die den PDO_SQLSRV-Treiber im Anschluss an PDO lädt.

    Wenn Sie herausfinden möchten, in welchem Verzeichnis sich die erweiterungsspezifischen INI-Dateien befinden, führen Sie php --ini aus, und beachten Sie das unter Scan for additional .ini files in: aufgeführte Verzeichnis. Suchen Sie die Datei, die „pdo.so“ lädt. Sie sollte einer Zahl vorangestellt werden, z. B. 10-pdo.ini. Das numerische Präfix gibt die Ladereihenfolge der .ini Dateien an, während Dateien ohne numerisches Präfix alphabetisch geladen werden. Erstellen Sie eine Datei zum Laden der PDO_SQLSRV-Treiberdatei mit dem Namen „30-pdo_sqlsrv.ini“ (jede Zahl, die größer als das Präfix von „pdo.ini“ ist, funktioniert) oder „pdo_sqlsrv.ini“ (wenn „pdo.ini“ nicht mit einer Zahl als Präfix versehen ist), und fügen Sie ihr die folgende Zeile hinzu, wobei Sie den Dateinamen entsprechend ändern:

    extension=php_pdo_sqlsrv_3_nts.so
    

    Wie bei SQLSRV lautet der Name pdo_sqlsrv.so, wenn Sie die PDO_SQLSRV-Binärdatei aus der Quelle kompiliert oder mit PIE oder PECL installiert haben:

    extension=pdo_sqlsrv.so
    

    Kopieren Sie diese Datei in das Verzeichnis, das die anderen INI-Dateien enthält.

    Wenn Sie PHP aus der Quelle mit integrierter PDO-Unterstützung kompiliert haben, benötigen Sie keine separate .ini Datei, und Sie können die vorherige Zeile zu php.inihinzufügen.

  3. Neustarte den Webserver.

Hinweis

Um festzustellen, ob der Treiber erfolgreich geladen wurde, führen Sie ein Skript aus, das phpinfo()aufruft.

Weitere Informationen zu php.ini-Anweisungen finden Sie unter Beschreibung der wichtigsten php.ini-Anweisungen.