Monatliches Archiv: Juli 2022

MS-SQL mit Symfony unter Linux nutzen

In manchen Fällen möchte man von seiner Symfony-Applikation, die auf einem Linux-Server läuft, auf einen Microsoft SQL-Server zugreifen. In meinem konkreten Anwendungsfall lief die eigentliche Symfony-Applikation auf einem aktuellen Debian mit Doctrine auf MariaDB und sollte aus einem anderen System zusätzliche Informationen holen. Dieses System besaß weder eine nutzbare API noch einfach auswertbare Webseiten/JSON-Antworten sodass nur der unschöne direkte Weg über die Datenbank ging.

Als Entwickler ist man meist naiv…

…denn man geht davon aus, dass ein so weit verbreiteter Server auch eine vernünftige Unterstützung hat. Grade jetzt, wo Microsoft in Windows 10/11 ein Linux-Subsystem einsetzt und sich Open Source ganz groß auf die Fahne schreibt. Erste Recherchen zeigten, dass Microsoft zu Zeiten von PHP 5.5 mal einen Datenbanktreiber erstellt hatte. Doctrine kann diesen auch mit dem Datenbanktypen mssql (alias pdo_sqlsrv) verwenden.

Sucht man nun den pdo_sqlsrv, landet man unter Microsoft SQL Server Functions (PDO_SQLSRV) auf php.net auf der Installstionsseite, die einen direkt ersteinmal aufklärt

The PDO_SQLSRV extension is only compatible with PHP running on Windows.

Leider wurder der Treiber nach PHP5.5 (Juni 2013) nur noch unter Windows weiterentwickelt. Darunter wird jedoch auf eine Alternative verwiesen. Den Microsoft ODBC-Treiber für Linux….zuletzt aktualisiert 2012. Man kann sich schon denken, wohin das führt, ein Blick in die README bestätigt dies aber:

This driver is only supported on 64-bit Red Hat Enterprise Linux 5 or 64-bit Red Hat Enterprise Linux 6.

Weiter lesen