web-dev-qa-db-ja.com

適切にインストールされていてもsqlsrvが機能しない

Ubuntu 18のpeclを使用してsqlsrvを(再度)インストールしましたが、何らかの理由でドライバーが見つかりません。

これは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();
}

php -m | grep sqlを使用してcliからモジュールをリストしようとすると、ロードされたモジュールのリストにsqlsrvモジュールが表示されません。

mysqli
mysqlnd
pdo_mysql
pdo_sqlite
sqlite3

または、php --ri pdo_sqlsrvExtension '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
1
Mike

Modを有効にします:Sudo phpenmod sqlsrv

ドライバをインストールするには、このリンクを参照してください: https://docs.Microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-Microsoft-odbc-driver-for-sql-server ?view = sql-server-2017

1
Codded