Apple Silicon M2 macOS Ventura下XAMPP无法识别PDO SQL Server驱动求助
核心问题是你通过系统pecl安装的驱动默认关联到了macOS自带的PHP环境,而XAMPP使用独立的PHP运行环境,导致驱动未被加载到XAMPP的PHP中。按以下步骤排查修复:
确认XAMPP与系统PHP的路径差异
执行/Applications/XAMPP/bin/php -v,对比系统php -v的输出,确保版本一致(你的情况为8.1.12),但两者安装路径完全不同,驱动必须安装到XAMPP的PHP扩展目录才会生效。使用XAMPP自带的pecl重新安装驱动
不要直接用系统的pecl,改用XAMPP的pecl工具执行安装,适配Apple Silicon的arm64架构:# 先卸载系统环境中已安装的驱动(避免混淆) pecl uninstall sqlsrv pdo_sqlsrv # 使用XAMPP的pecl安装适配arm64的驱动 CFLAGS="-arch arm64" CXXFLAGS="-arch arm64" /Applications/XAMPP/bin/pecl install sqlsrv pdo_sqlsrv如果提示已安装,先执行卸载命令再重新安装。
检查并修改XAMPP的php.ini配置
打开XAMPP的php.ini文件:/Applications/XAMPP/etc/php.ini,确认文件中存在以下两行配置(没有则手动添加):extension=sqlsrv.so extension=pdo_sqlsrv.soPHP 7.0+版本无需额外指定
extension_dir,默认会读取XAMPP的扩展目录。重启Apache并验证驱动加载
通过XAMPP Manager重启Apache服务器,在htdocs目录新建phpinfo.php文件,内容如下:<?php phpinfo(); ?>访问该文件(如
http://localhost/phpinfo.php),搜索pdo_sqlsrv,若能看到对应的模块信息,说明驱动已成功加载。补充:安装FreeTDS依赖(若出现编译错误)
若安装驱动时提示缺少FreeTDS,先通过Homebrew安装:brew install freetds再指定FreeTDS路径重新安装驱动:
CFLAGS="-arch arm64" CXXFLAGS="-arch arm64" /Applications/XAMPP/bin/pecl install -D "with.freetds=/opt/homebrew/opt/freetds" sqlsrv pdo_sqlsrv
内容的提问来源于stack exchange,提问作者Murilo lima alves

