PHP Erweiterung für Microsoft SQL Server installieren

  Lioh Möller   Lesezeit: 3 Minuten  🗪 1 Kommentar

Mithilfe des pdo_sqlsrv Moduls, ist es mit PHP möglich auf einen Microsoft SQL Server zuzugreifen.

php erweiterung für microsoft sql server installieren

Um mittels PHP auf einen Microsoft SQL Server zuzugreifen ist einiges an Vorarbeit nötig. Zunächst muss der ODBC-Treiber aus den Microsoft Repositories installiert werden. Im Folgenden wird die Installation unter Ubuntu 20.04 beschrieben. Je nach verwendeter Distribution oder Version kann diese abweichen und wird im Detail in der Microsoft Dokumentation beschrieben.

curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
sudo apt-add-repository https://packages.microsoft.com/ubuntu/20.04/prod
sudo apt-get update
sudo apt-get install -y msodbcsql17

Die Lizenz muss durch die Auswahl von <Ja> akzeptiert werden. Alternativ kann während der Paketinstallation die Variable ACCEPT_EULA=Y in folgender Form mit angegeben werden:

sudo ACCEPT_EULA=Y apt-get install -y msodbcsql17

Zur Übersetzung des PHP Moduls mittels pecl werden noch einige weitere Abhängigkeiten benötigt:

sudo apt-get install -y unixodbc-dev php-pear php-dev

Die Installation erfolgt daraufhin mithilfe des folgenden Befehls:

/usr/bin/pear config-set temp_dir /var/tmp/ && /usr/bin/pecl install sqlsrv pdo_sqlsrv

Dieser übersetzt das pdo_sqlsrv PHP Modul für die installierte PHP Version. Im Gegensatz zur offiziellen Anleitung von Microsoft wird dazu keine neuere PHP Version vorausgesetzt.

Nach der eigentlichen Installation muss das Modul für php-fpm aktiviert werden und der Dienst neu gestartet werden.

Dazu werden die folgenden zwei Konfigurationsdateien /etc/php/7.4/fpm/conf.d/20-sqlsrv.ini und /etc/php/7.4/fcli/conf.d/20-sqlsrv.ini mit gleichem Inhalt erstellt:

extension=sqlsrv.so
extension=pdo_sqlsrv.so

Abschliessend wird der php-fpm Dienst neu gestartet:

systemctl restart php7.4-fpm.service

Mittels phpinfo lässt sich prüfen, ob das Modul erfolgreich aktiviert wurde:

<?php
phpinfo();
?>

Tags

PHP, Microsoft, ACCEPT_EULA=Y, SQL, Server, Modul, Installation, Phpinfo

Jens Stark
Geschrieben von Jens Stark am 2. November 2021 um 19:31

Ich benutze immer den FreeTDS Treiber, siehe https://www.php.net/manual/de/ref.pdo-dblib.php. Spricht was dagegen?