Instalacja sterownika dla połączenia źródła danych SQLSRV

Poniższy artykuł przestawia proces instalacji sterownika SQLSRV dla podłączenia źródeł danych. Przeczytaj do końca zanim rozpoczniesz.

https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-2017

1. Dodajemy repozytoria dla sterownika:

sudo su
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -


#Debian 9
curl https://packages.microsoft.com/config/debian/9/prod.list > /etc/apt/sources.list.d/mssql-release.list

#Debian 10
curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list

#Debian 11
curl https://packages.microsoft.com/config/debian/11/prod.list > /etc/apt/sources.list.d/mssql-release.list

#Debian 12
curl https://packages.microsoft.com/config/debian/12/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list

sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install msodbcsql18
sudo ACCEPT_EULA=Y apt-get install mssql-tools18
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
sudo apt-get install unixodbc-dev

2. Komplikujemy kod dla SQLSRV

apt-get install php7.4-dev

dostępne tylko od wersji PHP 8.0

sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv

Wprowadzenie zmiany w config.inc. Zakomentowanie lini define('MSSQL_DB_ENCODING', 'CP1250');

Pliki z załącznika przenosimy do:

/etc/php/7.4/mods-available

Następnie tworzymy symlinki do przeniesionych plików:

ln -s /etc/php/7.4/mods-available/sqlsrv.ini /etc/php/7.4/cli/conf.d/
ln -s /etc/php/7.4/mods-available/pdo_sqlsrv.ini /etc/php/7.4/cli/conf.d/
ln -s /etc/php/7.4/mods-available/sqlsrv.ini /etc/php/7.4/fpm/conf.d/
ln -s /etc/php/7.4/mods-available/pdo_sqlsrv.ini /etc/php/7.4/fpm/conf.d/

Napotkane problemy

Ponieważ obecnie mogą pojawić się problemy z kompilacją bibliotek pecl dla sql_srv, w załączniku zostały umieszczone pliki, które należy umieścić na serwerze klienta. W całej procedurze pomiajamy tylko krok:

sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv

Lokalizacja do bibliotek to:

/usr/lib/php/20190902/pdo_sqlsrv.so
/usr/lib/php/20190902/sqlsrv.so

Załączniki