-
PHP 7 i połączenie z serwerem Microsoft SQL
Jeśli posiadacie serwer z PHP 7 i chcecie podłączyć się z serwerem MS SQL, to proszę wykonajcie kilka poniższych instrukcji.
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo
Skonfigurowaliśmy repo od Microsft, a zaraz usuniemy dwa pakiety (o ile je mamy), żeby nie pojawiły się konflikty.
yum remove unixODBC-utf16 unixODBC-utf16-devel
Instalujemy co trzeba.
yum install msodbcsql mssql-tools
Powinniśmy zobaczyć na ekranie takie komunikaty jak poniżej wraz z zapytaniami o zgodę na licencję. Oczywiście musimy wpisać „YES” ( w sumie dwukrotnie)
Instalowanie : unixODBC-2.3.1-11.el7.x86_64 1/3
The license terms for this product can be downloaded from
https://aka.ms/odbc131eula and found in
/usr/share/doc/msodbcsql/LICENSE.TXT . By entering 'YES',
you indicate that you accept the license terms.
Do you accept the license terms? (Enter YES or NO)Instalowanie : msodbcsql-13.1.9.2-1.x86_64 2/3
The license terms for this product can be downloaded from
http://go.microsoft.com/fwlink/?LinkId=746949 and found in
/usr/share/doc/mssql-tools/LICENSE.txt . By entering 'YES',
you indicate that you accept the license terms.Do you accept the license terms? (Enter YES or NO)
Teraz instalujemy to co wcześniej usunęliśmy (dla zapewnienia braku konfliktów).yum install unixODBC-devel
A teraz niezbędne moduły perlowe.
pecl install sqlsrv
pecl/sqlsrv is already installed and is the same as the released version 4.3.0
install failedpecl install pdo_sqlsrv
pecl/pdo_sqlsrv is already installed and is the same as the released version 4.3.0
install failedU mnie akurat obydwa moduły już były, więc otrzymałem komunikat o błędzie instalacji, ale nie musimy się nim przejmować…. chyba że faktycznie błąd instalacji wynika z jakiegoś błędu, a nie z faktu, że nie ma potrzeby instalacji dodatkowego oprogramowania.
Włączamy doinstalowane rozszerzenia do PHP.echo "extension=sqlsrv.so" > /etc/php.d/sqlsrv.ini
echo "extension=pdo_sqlsrv.so" > /etc/php.d/pdo_sqlsrv.ini
Restartujemy usługę.
systemctl restart php-fpm
Powinno działać 🙂