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

Ubuntu20.0下PHP8.1的sqlsrv及pdo_sqlsrv驱动启用失败求助

解决PHP8.1在Ubuntu20.04上无法加载sqlsrv/pdo_sqlsrv扩展的问题

1. 确认扩展包适配PHP8.1版本

你可能误安装了适配PHP7.4的扩展包,先检查已安装的sqlsrv相关包:

dpkg -l | grep sqlsrv

确保输出包含php8.1-sqlsrv和php8.1-pdo-sqlsrv,如果只有php7.4版本的包,重新安装对应版本:

sudo apt install php8.1-sqlsrv php8.1-pdo-sqlsrv

2. 检查是否修改了正确的php.ini文件

你仅修改了Apache对应的/etc/php/8.1/apache2/php.ini,但php -m用的是CLI模式的配置文件,路径为/etc/php/8.1/cli/php.ini,需要在该文件中同样添加:

extension=pdo_sqlsrv.so
extension=sqlsrv.so

也可以通过命令确认CLI模式加载的配置文件路径:

php -i | grep "Loaded Configuration File"

3. 手动启用PHP8.1的扩展

运行以下命令为PHP8.1启用目标扩展:

sudo phpenmod -v 8.1 sqlsrv pdo_sqlsrv

验证扩展是否已启用:

php8.1 -m | grep -E "sqlsrv|pdo_sqlsrv"

4. 重启Apache服务

修改Apache配置后必须重启服务才能生效:

sudo systemctl restart apache2

5. 检查ODBC驱动依赖

sqlsrv扩展依赖ODBC驱动,确认安装的是兼容PHP8.1的版本(建议ODBC 17+):

odbcinst -j

若版本过低,更新ODBC驱动:

sudo apt-get install msodbcsql17

6. 查看错误日志定位问题

查看Apache的PHP错误日志,获取扩展加载失败的具体原因:

sudo tail -n 20 /var/log/apache2/error.log

查看CLI模式的PHP错误输出:

php8.1 -d display_errors=1 -m 2>&1 | grep -A 10 -B 2 "sqlsrv"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 10:01:16