sqlsrv не работает, несмотря на правильную установку

0

Я установил (снова) sqlsrv, используя pecl для Ubuntu 18, но по какой-то причине драйвер не найден.

Я получаю сообщение could not find driver .

Ниже приведены шаги, которые я выполнил:

$ sudo apt-get remove php-common
$ sudo apt-get autoremove
$ sudo apt-get install php-fpm php-mbstring php-zip php-mysql php-sqlite3 php-dev php-pear php-xml


$ sudo pecl uninstall sqlsrv
$ sudo pecl uninstall pdo_sqlsrv

$ sudo pecl install sqlsrv
$ sudo pecl install pdo_sqlsrv

Я создал файл sqlsrv.ini с содержимым:

extension=pdo_sqlsrv.so
extension=sqlsrv.so

и скопировал его в /etc/php/7.2/cli/ и /etc/php/7.2/fpm/

вот как выглядит PHP-код:

$host = "station\SQL, port"; //azure
$db = "dbname";
$user = "user";
$pass = "pass";

try {
    $conn = new PDO("sqlsrv:Server=$host;Database=$db;LoginTimeout=60", $user, $pass);
}
catch (Exception $e) {
    echo $e->getMessage();
}

При попытке перечислить модули из cli с php -m | grep sql я не получаю модуль sqlsrv в списке загруженных модулей:

mysqli
mysqlnd
pdo_mysql
pdo_sqlite
sqlite3

В качестве альтернативы php --ri pdo_sqlsrv возвращает Extension 'pdo_sqlsrv' not present.

odbcinst -j возвращает:

unixODBC 2.3.4
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

dpkg-query -L libodbc1 возвращает:

/.
/usr
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libodbc.so.2.0.0
/usr/lib/x86_64-linux-gnu/libodbccr.so.2.0.0
/usr/lib/x86_64-linux-gnu/odbc
/usr/lib/x86_64-linux-gnu/odbc/libnn.so
/usr/share
/usr/share/doc
/usr/share/doc/libodbc1
/usr/share/doc/libodbc1/NEWS.Debian.gz
/usr/share/doc/libodbc1/changelog.Debian.gz
/usr/share/doc/libodbc1/copyright
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/libodbc1
/usr/lib/x86_64-linux-gnu/libodbc.so.1
/usr/lib/x86_64-linux-gnu/libodbc.so.2
/usr/lib/x86_64-linux-gnu/libodbccr.so.1
/usr/lib/x86_64-linux-gnu/libodbccr.so.2
    
задан Mike 29.05.2018 в 17:33
источник

1 ответ

1

Включить мод: sudo phpenmod sqlsrv

См. эту ссылку для установки драйвера: Ссылка

    
ответ дан Codded 07.08.2018 в 15:25