如何为亚马逊 Linux AMI 上的 SQL 服务器安装 PHP 的 Microsoft 驱动程序

How to install Microsoft Drivers for PHP for SQL Server on Amazon Linux AMI

我正在尝试使用 Microsoft 提供的文档为 SQL 服务器安装 PHP 的 Microsoft 驱动程序。 Link 是 https://github.com/Microsoft/msphpsql

它提供了 Ubuntu 和 Redhat 但不提供 Amazon Linux 的安装步骤。要在 Amazon 上安装 Microsoft 驱动程序,我遵循了为 Redhat 提供的步骤(不确定是否正确)。当我 运行 命令

sudo ACCEPT_EULA=Y yum install msodbcsql mssql-tools

得到以下错误

Error: Package: msodbcsql-13.1.7.0-1.x86_64 (packages-microsoft-com-prod)
           Requires: unixODBC >= 2.3.1
           Available: unixODBC-2.2.14-14.7.amzn1.i686 (amzn-main)
               unixODBC = 2.2.14-14.7.amzn1

错误中明确指出要安装msodbcsql,unixODBC 版本应>= 2.3.1。但是亚马逊可用的 updated/latest unixODBC 包是 unixODBC-2.2.14。

我需要一些帮助来在 Amazon Linux 上安装 PHP 的 Microsoft 驱动程序,以便我可以使用 Sqlsrv PHP 函数进行连接SQL 服务器。

PHP7、Apache 和 SQL 服务器已经设置好。

在谷歌搜索和尝试所有方法后,我找到了我自己问题的答案。

而不是使用

sudo ACCEPT_EULA=Y yum install msodbcsql mssql-tools

我用过

sudo ACCEPT_EULA=Y yum install msodbcsql-13.0.1.0-1 mssql-tools-14.0.2.0-1

问题已解决。

如果你对msodbcsql17感兴趣,可以关注这个回答:

Install unixODBC >= 2.3.1 on Linux Redhat/CentOS for msodbcsql17

步骤如下:

After a long time of research, I have figured out a solution:

  1. Download the unixODBC >= 2.3.1 from any source, as rpm (Example source)
  2. Download the msodbcsql17 and mssql-tool as rpm from Microsoft (Link to Repo) (msodbcsql17-17.1.0.1-1.x86_64.rpm and mssql-tools-17.1.0.1-1.x86_64.rpm in my case)
  3. Transfer the files via ftp (like FileZilla) to the EC2 instance
  4. Use EC2 terminal and go to the directory of the uploaded files
  5. Enter sudo rpm -i unixODBC-2.3.1-11.el7.x86_64.rpm to install the necessary version (Perhaps, you have to change the version number to the version number of the uploaded file)
  6. Enter sudo rpm -i msodbcsql17-17.1.0.1-1.x86_64.rpm
  7. Enter sudo rpm -i mssql-tools-17.1.0.1-1.x86_64.rpm

  8. Follow the rest of the Microsoft instruction, like in your question.

  9. Now you should be able to use ODBC for example with pyodbc in python.