Mit PHP 7 sind einige „Standardtreiber“ rausgefallen die von Haus aus nicht mehr installiert werden. Dazu gehören auch sämtliche Erweiterungen für eine Verbindung mit einem MS-SQL Server. Die fehlen auch in den PHP – Erweiterungen des Plesk, was für die Webhostings gilt.
Und weil ich genau dafür ein Shopware Plugin entwickeln sollte stand ich vor dem Problem. Hier eine kurze Übersicht wie die Treiber im Plesk nachgerüstet werden können.
Da verschlüsselte Shopware Plugins (ionCube) derzeit nur in PHP-Version 7 unterstützt werden, dreht sich dieser Beitrag auch um diese Version. Vorausgesetzt du hast die Version 7.0.x in deinem Plesk installiert.
Ab in die Konsole und zuerst die repo von Microsoft mit den passenden Erweiterungen holen:
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo
Vorhanden ODBC Treiber, die wahrscheinlich nicht von MS sind entfernen, sonst knallt es:
yum remove unixODBC-utf16 unixODBC-utf16-devel
Nun den Originalen ODBC von Microsoft installieren:
ACCEPT_EULA=Y yum install msodbcsql
Jetzt die Devel + Konfiguration installieren:
yum install unixODBC-devel gcc-c++ gcc plesk-php70-devel autoconf automake
Den ersten pdo_sqlsrv Treiber direkt ins Plesk installieren:
/opt/plesk/php/7.0/bin/pecl install pdo_sqlsrv
Nachdem eine ganze Menge Text durch die Konsole gehuscht ist, legen wir noch die *.ini dazu an, damit Plesk den Treiber auch „kennt“:
/opt/plesk/php/7.0/etc/php.d/pdo_sqlsrv.ini
Genau das gleiche machen wir noch mit dem sqlsrv
/opt/plesk/php/7.0/bin/pecl install sqlsrv
echo "extension=sqlsrv.so" > /opt/plesk/php/7.0/etc/php.d/sqlsrv.ini
Nun sagen wir Plesk noch das er die PHP Konfig neu einlesen soll:
plesk bin php_handler --reread
Meist reicht das aber noch nicht. Ich starte dann immer den Server einmal neu um wirklich alles frisch zu laden. Denn „Nur booten führt zum Guten…“
reboot
Das war’s. Die Webspaces vom Plesk verstehen nun auch
new MSSQL_PDO('sqlsrv:Server='...
und sämtliche andere Befehle dieser Kategorie.