SQLSRV PHP-Extension für Plesk PHP 8.0 - 8.3
Vorwort
Mithilfe der PHP Microsoft SQL Extension (sqlsrv) kann eine native MSSQL Verbindung zu einem Microsoft SQL Server aufgebaut werden.
Vor der Installation von PHP-Extensions sollte ein Server-Snapshot erstellt werden, damit Sie im Fehlerfall die Installation mit wenigen Klicks rückgängig machen können. Lesen Sie hierzu folgenden Artikel: Server-Snapshots
Installation
Für die Installation unter PHP 8.0, 8.1, 8.2 und 8.3 werden zusätzliche Pakete benötigt. Diese können über folgenden SSH-Befehl installiert werden:
apt install plesk-php80-dev plesk-php81-dev plesk-php82-dev plesk-php83-dev apt-transport-https gcc g++ unixodbc unixodbc-dev make
Als Nächstes muss das msodbcsql17 (PHP 8.0) oder alternativ msodbcsql18 (PHP 8.1 - 8.3) Paket von Microsoft installiert werden:
PHP 8.1 - 8.3
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
curl https://packages.microsoft.com/config/debian/12/prod.list | tee /etc/apt/sources.list.d/mssql-release.list
apt-get update
ACCEPT_EULA=Y apt-get install msodbcsql18
PHP 8.0
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
curl https://packages.microsoft.com/config/debian/12/prod.list | tee /etc/apt/sources.list.d/mssql-release.list
apt-get update
ACCEPT_EULA=Y apt-get install msodbcsql17
Die PHP Extension SQLSRV muss für jede PHP-Version installiert werden:
PHP 8.1 - PHP 8.3
/opt/plesk/php/8.1/bin/pecl install sqlsrv pdo_sqlsrv
/opt/plesk/php/8.2/bin/pecl install sqlsrv pdo_sqlsrv
/opt/plesk/php/8.3/bin/pecl install sqlsrv pdo_sqlsrv
PHP 8.0
/opt/plesk/php/8.0/bin/pecl install pdo_sqlsrv-5.11.1
echo "extension=pdo_sqlsrv.so" > /opt/plesk/php/8.0/etc/php.d/pdo_sqlsrv.ini
/opt/plesk/php/8.0/bin/pecl install sqlsrv-5.11.1
echo "extension=sqlsrv.so" > /opt/plesk/php/8.0/etc/php.d/sqlsrv.ini
Um die neue Konfiguration auch über das Plesk Webinterface zu ermöglichen, müssen die PHP-Handler neu initialisiert werden:
plesk bin php_handler --reread
plesk sbin packagemng -sdf
Anschließend müssen die PHP-Handler erneut gestartet werden, damit die SQLSRV Erweiterung verwendet werden kann:
Warnung: Durch den Neustart der PHP-Module werden alle laufenden PHP-Prozesse beendet und neu gestartet. Sollte die Installation auf einem Produktivsystem vorgenommen werden, empfehlen wir, diese Änderung nachts durchzuführen.
systemctl restart plesk-php80-fpm
systemctl restart plesk-php81-fpm
systemctl restart plesk-php82-fpm
systemctl restart plesk-php83-fpm