Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Diese Seite enthält Anweisungen zum Laden der Microsoft-Treiber für PHP für SQL Server in den PHP-Prozessbereich.
Sie können die vorab erstellten Treiber für Ihre Plattform von der GitHub-Projektseite Microsoft Drivers for PHP for SQL Server herunterladen. Jedes Installationspaket enthält SQLSRV- und PDO_SQLSRV Treiberdateien in Thread- und Nichtthreadvarianten. Unter Windows sind auch 32-Bit- und 64-Bit-Varianten verfügbar. Eine Liste der Treiberdateien, die in den einzelnen Paketen enthalten sind, finden Sie unter Systemanforderungen für Microsoft-Treiber für PHP für SQL Server. Die Treiberdatei muss mit der PHP-Version, der Architektur und dem Threading Ihrer PHP-Umgebung übereinstimmen.
Unter Linux und macOS kannst du die Treiber alternativ mit PIE oder PECL installieren, wie im Installationstutorial beschrieben.
Unter Windows kannst du die Treiber mit PIE, dem PHP-Installer für Erweiterungen, in Version 5.13.3 und neueren Versionen installieren. PIE ersetzt das veraltete PECL-Paketsystem und aktiviert die Erweiterung für dich, sodass du keine Treiberdatei herunterladen oder php.ini manuell bearbeiten musst. Windows benötigt keine Build-Toolchain, da die Erweiterungen als vorkompilierte DLLs verteilt werden. PIE selbst benötigt PHP 8.1 und neuere Versionen, um ausgeführt zu werden, kann jedoch eine Erweiterung in jede andere PHP-Installation auf dem Rechner installieren.
pie install microsoft/sqlsrv
pie install microsoft/pdo_sqlsrv
Installiere jeden Treiber mit einem eigenen Befehl. Für Anweisungen zur Installation von PIE siehe die PIE-Dokumentation.
Unter Windows benötigt PIE die Erweiterungopenssl, um das Paket-Repository zu erreichen. Eine PHP-Installation aus dem php.net .zip-Paket verwendet die Standarddatei php.ini-development , die sie nicht aktiviert, und PIE endet mit The package "composer/ca-bundle" requires the extension "openssl". Setze extension_dir und aktiviere die Erweiterung in php.ini , bevor du PIE ausführst:
extension_dir = "ext"
extension=openssl
Bei paketverwalteten PHP-Installationen unter Linux und macOS ist openssl bereits aktiviert, daher gilt dieser Schritt nur für Windows.
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:
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.dllUnter Linux, wenn Sie die vordefinierten Binärdateien für Ihre Verteilung heruntergeladen haben:
extension=php_sqlsrv_83_nts.soWenn Sie die SQLSRV-Binärdatei aus der Quelle kompiliert oder mit PIE oder PECL installiert haben, lautet ihr Name sqlsrv.so:
extension=sqlsrv.soUm den PDO_SQLSRV-Treiber zu aktivieren, muss die Erweiterung „PHP Data Objects (PDO) verfügbar sein, entweder als integrierte 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.dllWenn 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 --iniaus, und beachten Sie das unterScan 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.soWie 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.soKopieren 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.
Starten Sie den Webserver neu.
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.
Verwandte Inhalte
- Getting Started with the Microsoft Drivers for PHP for SQL Server (Erste Schritte mit dem Microsoft-Treiber für PHP für SQL Server)
- Systemanforderungen für die Microsoft-Treiber für PHP für SQL Server
- Programmierhandbuch für die Microsoft-Treiber für PHP für SQL Server
- API-Referenz für den SQLSRV-Treiber
- Referenz zum Treiber PDO_SQLSRV