После тщательного исследования удалось установить драйвер Microsoft ODBC 13.1 и mssql-tools на Amazon Linux. Он автоматически установил unixODBC-2.3.4 как зависимость, но не уверен, по какому пути он установлен.
(Ссылка на исследование: Установка драйвера ODBC 13 для сервера MSSQL в Amazon Linux на инстансе EC2)
Теперь все установлено, но невозможно найти следующие шаги.
Расширение драйвера должно присутствовать в php.ini
чтобы его можно было использовать в PHP-коде. (Проверено phpinfo()
но не удалось найти сведения о драйвере, так как их нет в файле php.ini)
Ниже приводится содержание /etc/odbcinst.ini
[ODBC Driver 13 for SQL Server]
Description=Microsoft ODBC Driver 13 for SQL Server
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.1.so.4.0
UsageCount=1
Вопросы: обнаружил следующее примечание в существующем php.ini
;;;;
; Note: packaged extension modules are now loaded via the .ini files
; found in the directory /etc/php.d; these are loaded by default.
;;;;
Но я не могу найти файл .ini, созданный для установленного драйвера ODBC.
extension=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.1.so.4.0
и перезапустил процесс httpd, но безуспешно.Может ли кто-нибудь помочь, в чем .so
файлы должны быть добавлены как расширение в php.ini, чтобы включить драйвер?
Не могу понять, что мне не хватает.
ОБНОВЛЕНИЕ1: Только что проверил это с помощью утилиты sqlcmd, я могу подключиться к моему серверу sql и успешно получить результат.
sqlcmd -S SERVERIP -U User -P pwd -d DatabaseName -Q "SELECT TOP 1 Id FROM dbo.MyTable;"
Это означает, что драйвер работает, но не может подключиться через odbc из-за пропущенного сопоставления, как указано выше.