php7.2安装Sqlserver2012过程以及问题

系统:windows#

扩展包网站:pecl.php.net/

  1. 直接进行 https://pecl.php.net/package-search.php?pkg_name=sqlsrv, 搜索 sqlsrv
  2. 搜索完成后,分别点进 pdo_sqlsrvsqlsrv 下载相应的扩展文件,两个扩展版本要一致
    php7.2安装Sqlserver过程以及问题
  3. 下载完成后解压进 php 扩展目录 ext, 同时 php.ini 添加 extension=php_sqlsrv.dll
    extension=php_pdo_sqlsrv.dll
  4. 去微软下载 ODBC,没有 ODBC 无法进行通信。这步应该需要看你对应的 Sqlserver 版本,一开始安装了一个最新的 ODBC, 无法通行。倒回去看文档,在 ODBC11 中找到了一句对 Sqlserver2012 的支持,然后继续看 ODBC13 写了保留 ODBC11 一切功能,最后下载 ODBC13 安装,成功通信。
    ODBC 文档:docs.microsoft.com/en-us/sql/conne...
    ODBC 发行说明:docs.microsoft.com/en-us/sql/conne...

#系统:Linux-Debian

  1. 先安装 ODBC, 这一步步应该需要看你对应的 Sqlserver 版本,一开始直接安装了一个 ODBC 18 无法进行通信,后来进行卸载,重新安装了 ODBC 17,成功通信
    liunx 文档地址:docs.microsoft.com/en-us/sql/conne...

  2. github.com/Microsoft/msphpsql/rele...
    因为我的是 php7.2,所以扩展版本最中 7.2 支持最高的一个 5.8.1 的版本,之后的版本都对 7.2 开始不支持了

  3. 在 Linux 和 macOS 上运行以下命令:

    sudo pecl install sqlsrv-5.8.1
    sudo pecl install pdo_sqlsrv-5.8.1
  4. 遇到 TCP Provider: Error code 0x2746 问题,在 github.com/microsoft/msphpsql/issu... 找到解决方法。
    修改 /etc/ssl/openssl.cnf 文件最后一行 CipherString = DEFAULT@SECLEVEL=2 改为 CipherString = DEFAULT@SECLEVEL=1

本作品采用《CC 协议》,转载必须注明作者和本文链接