You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS 7下ODBC Driver17引发冲突,如何安装ODBC13及对应PHP驱动

解决CentOS 7上ODBC Driver 13与PHP驱动的安装冲突问题

我来帮你搞定这个ODBC Driver版本冲突的问题——自从Driver17发布后,不少依赖旧版本的开发者都踩过这个坑,咱们一步步来解决:

1. 先锁定ODBC Driver版本,杜绝自动升级到17

首先得让系统“记住”我们要固定用Driver13,不能偷偷升级到17。我们用yum的版本锁定插件来实现:

  • 先安装版本锁定工具:
    sudo yum install yum-plugin-versionlock
    
  • 如果你还没装Driver13,可以先执行下面的命令查看可用的13版本包:
    sudo yum list msodbcsql
    
    你会看到类似msodbcsql.x86_64 13.1.9.2-1的条目,把这个完整版本号记下来,然后执行锁定命令:
    sudo yum versionlock msodbcsql-13.1.9.2-1.x86_64
    
    这样系统以后就不会再自动把Driver13更新到17了。

2. 安装ODBC Driver 13(确保不会拉到17版本)

接下来安装Driver13,这里要注意禁用Driver17相关的源,避免安装时自动下载最新版:

  • 先添加微软官方为CentOS 7提供的软件源(你可以通过官方指引创建/etc/yum.repos.d/mssql-release.repo配置文件)
  • 禁用Driver17相关的源:
    sudo yum-config-manager --disable msodbcsql17 mssql-server-2017 mssql-server-2019
    
  • 最后安装指定版本的Driver13:
    sudo ACCEPT_EULA=Y yum install msodbcsql-13.1.9.2-1
    
    这里一定要指定版本号,确保装的是13.x而不是最新的17.x。

3. 安装对应版本的PHP驱动(关键!版本必须匹配)

ODBC Driver13对应的PHP sqlsrv驱动是5.3.x版本(不同PHP小版本对应具体驱动版本,比如PHP7.1/7.2都可以用5.3.0),别装错了:

  • 先安装编译驱动需要的依赖:
    sudo yum install php-devel gcc gcc-c++
    
  • 前往微软官方的msphpsql项目,下载适配ODBC Driver13的5.3.x版本的sqlsrv和pdo_sqlsrv驱动源码包,下载完成后解压到本地目录
  • 解压并编译安装sqlsrv驱动:
    cd sqlsrv-5.3.0  # 这里替换成你实际解压的目录名
    phpize
    ./configure --with-php-config=/usr/bin/php-config
    make && sudo make install
    
  • 接着编译安装pdo_sqlsrv驱动:
    cd ../pdo_sqlsrv-5.3.0  # 同样替换成实际解压的目录名
    phpize
    ./configure --with-php-config=/usr/bin/php-config
    make && sudo make install
    
  • 配置PHP加载这两个驱动:
    在PHP的扩展配置目录(通常是/etc/php.d/)创建配置文件:
    echo "extension=sqlsrv.so" | sudo tee /etc/php.d/30-sqlsrv.ini
    echo "extension=pdo_sqlsrv.so" | sudo tee /etc/php.d/30-pdo_sqlsrv.ini
    
  • 重启你的Web服务(根据你用的是PHP-FPM还是Apache):
    # PHP-FPM的情况
    sudo systemctl restart php-fpm
    # Apache的情况
    sudo systemctl restart httpd
    

4. 验证安装是否成功

最后用命令行检查驱动是否加载成功:

php -m | grep -E "sqlsrv|pdo_sqlsrv"

如果输出里能看到这两个模块,说明安装没问题了!

另外,如果之前你尝试安装过Driver17,记得先清理残留包:

sudo yum remove msodbcsql17

这样就能确保系统一直稳定使用Driver13和对应的PHP驱动,不会再出现自动升级导致的冲突啦。

内容的提问来源于stack exchange,提问作者Loom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:45:08