Назад | Перейти на главную страницу

CentOS: драйвер MS SQL установлен и настроен, но недоступен для PHP

На машине CentOS 7.3 с PHP 5.6 я установил и настроил драйвер MS SQL для PDO, но он недоступен для PHP.

Убедитесь, что драйвер правильно установлен и настроен:

$ yum list php56w-mssql
Installed Packages
php56w-mssql.x86_64            5.6.30-1.w7        @webtatic

$ cat /etc/php.d/mssql.ini
; Enable mssql extension module
extension=mssql.so

Однако PHP этого не распознает:

$ php -i | grep 'PDO drivers'
PDO drivers => dblib, mysql, sqlite

Как я могу это устранить?

К сожалению, мне не удалось заставить расширение MS SQL работать должным образом. Тем не мение, PHP может подключаться к MS SQL через ODBC:

$ yum list php56w-odbc
Installed Packages
php56w-odbc.x86_64    5.6.30-1.w7    @webtatic

$ cat /etc/php.d/odbc.ini 
extension=odbc.so

А затем в PHP:

$mssqldriver = 'ODBC Driver 13 for SQL Server';
$hostname='1.2.3.4';
$dbname='foobar';
$username='';
$password='';

$dsn = "odbc:Driver={$mssqldriver};Server={$hostname};Database={$dbname};MARS_Connection=yes";
$pdo= new PDO($dsn, $username, $password);

Обязательно укажите MARS соединение, в противном случае соединение будет ограничено только одним ожидающим запросом.