PHP报错Can't open lib 'ODBC Driver 13 for SQL Server'该如何解决?
解决Ubuntu 16.04更新后PHP sqlsrv无法连接MS SQL数据库的问题
我刚踩过这个坑,分享下亲测有效的解决方案:在Ubuntu 16.04执行apt-get update/upgrade更新后,所有针对MS SQL数据库的查询直接失败,排查后发现问题卡在数据库连接环节。
问题根源
核心是版本兼容性冲突:执行系统更新时,微软自动将ODBC驱动升级到了17版本,同时卸载了原本的13版本,但PHP的sqlsrv扩展并没有同步更新,它仅兼容旧的13版驱动,导致连接直接失效。
解决方案:降级ODBC驱动到13版本
具体操作步骤如下:
- 先卸载当前的ODBC 17驱动:
sudo apt-get remove --purge msodbcsql17 - 添加微软针对Ubuntu 16.04的ODBC 13软件源:
sudo su curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list exit - 更新软件源并安装ODBC 13驱动:
sudo apt-get update sudo ACCEPT_EULA=Y apt-get install msodbcsql13 - 重启Web服务,确保PHP模块加载生效:
# 若使用Apache sudo systemctl restart apache2 # 若使用Nginx+PHP-FPM sudo systemctl restart php7.0-fpm sudo systemctl restart nginx
完成这些步骤后,再测试MS SQL数据库连接,应该就能恢复正常了。
内容的提问来源于stack exchange,提问作者rrueda
相关产品推荐
相关产品推荐

