Debian 8环境下无法安装Microsoft SQL Server PHP驱动求助
解决pecl安装sqlsrv时
make失败的问题 我之前也踩过这个make失败的坑,大概率是依赖缺失或者环境不匹配导致的,给你几个亲测有用的排查和解决步骤:
第一步:安装PHP编译必备的依赖包
编译PHP扩展需要用到PHP开发文件和基础编译工具,先确保这些都装全:- 对于Debian/Ubuntu系统:
sudo apt-get update && sudo apt-get install php-dev build-essential -y - 对于RHEL/CentOS系统:
sudo yum install php-devel gcc make -y
- 对于Debian/Ubuntu系统:
第二步:安装SQL Server ODBC驱动(核心依赖)
sqlsrv扩展完全依赖Microsoft ODBC Driver for SQL Server,这是必须提前安装的前置依赖:- Debian/Ubuntu系统:
# 添加微软官方软件源 curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - sudo curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list > /etc/apt/sources.list.d/mssql-release.list sudo apt-get update # 安装ODBC驱动和unixODBC开发包 sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18 unixodbc-dev - RHEL/CentOS系统:
# 添加微软官方软件源 sudo curl https://packages.microsoft.com/config/rhel/$(rpm -E %rhel)/prod.repo > /etc/yum.repos.d/mssql-release.repo # 移除可能冲突的旧版unixODBC包 sudo yum remove unixODBC-utf16 unixODBC-utf16-devel -y # 安装ODBC驱动和unixODBC开发包 sudo ACCEPT_EULA=Y yum install -y msodbcsql18 unixODBC-devel
- Debian/Ubuntu系统:
第三步:匹配PHP版本与sqlsrv扩展的兼容版本
pecl默认会拉取最新版sqlsrv,但如果你的PHP版本偏老(比如PHP7.2及以下),直接装最新版会因为兼容性问题编译失败。你需要指定对应版本安装:- 比如PHP7.4对应安装sqlsrv 5.10.1:
sudo pecl install sqlsrv-5.10.1 - PHP7.3对应安装sqlsrv 5.9.0:
sudo pecl install sqlsrv-5.9.0
可以根据自己的PHP版本,找对应的兼容版本号来执行安装命令。
- 比如PHP7.4对应安装sqlsrv 5.10.1:
第四步:查看详细编译日志定位具体问题
如果以上步骤都没解决,就把安装过程的完整日志保存下来,精准定位错误点:sudo pecl install sqlsrv 2>&1 | tee sqlsrv_install.log打开生成的
sqlsrv_install.log,找到和conn.lo相关的错误细节——比如是否是某个头文件找不到,那就是对应依赖没装全,针对性补充安装即可。
最后,成功安装后记得在你的PHP配置文件(比如php.ini或者/etc/php/[你的PHP版本]/cli/conf.d/sqlsrv.ini)里添加:
extension=sqlsrv.so
然后重启PHP服务或者Web服务器(比如Apache/Nginx),sqlsrv_connect()就能正常使用了。
内容的提问来源于stack exchange,提问作者Ali Elkhateeb
相关产品推荐
相关产品推荐

