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

Ubuntu 20.04下PHP 8.2的SQLSRV扩展加载失败求助

解决Ubuntu 20.04下PHP 8.2的SQLSRV扩展加载错误问题

问题根源

你遇到的核心问题是:安装的SQLSRV扩展是针对PHP 8.1(对应API版本20210902)编译的,但你当前使用的是PHP 8.2(对应API版本20220829),版本不匹配导致直接移动文件后出现兼容性报错。

解决步骤

1. 卸载错误版本的SQLSRV扩展

先移除已安装的不兼容扩展:

  • 如果是通过pecl安装的:
    sudo pecl uninstall sqlsrv pdo_sqlsrv
    
  • 如果是通过APT包管理器安装的:
    sudo apt remove --purge php-sqlsrv php-pdo-sqlsrv
    sudo apt autoremove
    

2. 安装PHP 8.2的开发依赖

编译或安装对应版本的扩展需要PHP开发包:

sudo apt install php8.2-dev

3. 安装适配PHP 8.2的SQLSRV扩展

推荐使用微软官方源安装适配版本,步骤如下:

  1. 添加微软软件源:
    curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
    curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
    sudo apt update
    
  2. 安装ODBC驱动(SQLSRV依赖):
    sudo ACCEPT_EULA=Y apt install msodbcsql17 mssql-tools
    
  3. 安装PHP 8.2专属的SQLSRV扩展:
    sudo apt install php8.2-sqlsrv php8.2-pdo-sqlsrv
    

如果偏好使用pecl安装,需明确指定PHP版本:

sudo pecl -d php_suffix=8.2 install sqlsrv pdo_sqlsrv

4. 验证扩展加载状态

运行以下命令确认扩展已正确加载:

php -m | grep sqlsrv

若输出sqlsrv和pdo_sqlsrv,则说明安装成功。你也可以通过phpinfo()页面搜索sqlsrv关键字,确认扩展信息存在。

5. 清理残留文件(可选)

如果你之前手动将扩展文件移动到/usr/lib/php/20220829/目录,需删除这些残留文件避免冲突:

sudo rm /usr/lib/php/20220829/sqlsrv.so /usr/lib/php/20220829/pdo_sqlsrv.so

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 13:34:36