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

MacBook M1下XAMPP对接SQL Server运行Laravel项目扩展加载报错

解决M1芯片Mac下XAMPP/MAMP PRO加载sqlsrv扩展报错问题

根本原因

该报错核心是架构不匹配+缺少依赖:

  • 你安装的sqlsrv.so/pdo_sqlsrv.so扩展架构和XAMPP自带PHP的架构不统一(一方是Arm64原生、另一方是Intel转译)
  • 缺少微软官方的SQL Server ODBC驱动,扩展无法调用底层接口,所以抛出_SQLAllocHandle符号找不到的错误

解决步骤

  • 第一步:确认运行环境架构统一
    右键访达中XAMPP.app(或MAMP PRO.app),点击「显示简介」,确认「使用Rosetta打开」选项的勾选状态:

    • 要使用原生Arm64环境:取消勾选,且确保你安装的是官方提供的Apple Silicon版XAMPP/MAMP PRO安装包
    • 要使用Intel转译环境(兼容性更好):勾选该选项,安装Intel版XAMPP/MAMP PRO安装包
      全程保持架构选择统一,不要中途切换。
  • 第二步:安装对应架构的SQL Server ODBC依赖
    打开终端执行对应命令:

    • 原生Arm64环境:
      /opt/homebrew/bin/brew install microsoft/mssql-release/msodbcsql17
      
    • Intel转译环境:
      /usr/local/bin/brew install microsoft/mssql-release/msodbcsql17
      
  • 第三步:编译适配当前PHP环境的sqlsrv扩展
    不要直接用pecl安装默认扩展,要使用XAMPP/MAMP自带的php编译工具生成适配扩展:

    1. 下载和你当前PHP版本匹配的sqlsrv、pdo_sqlsrv源码包
    2. 解压sqlsrv源码包,进入目录依次执行:
      /Applications/XAMPP/xamppfiles/bin/phpize
      ./configure --with-php-config=/Applications/XAMPP/xamppfiles/bin/php-config
      make && make install
      
    3. 解压pdo_sqlsrv源码包,进入目录重复执行上一步的三条命令
    4. 确认生成的sqlsrv.so、pdo_sqlsrv.so文件已被自动复制到php.ini中指定的扩展目录(即你报错信息中显示的/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20200930/路径)
  • 第四步:验证生效
    终端执行/Applications/XAMPP/xamppfiles/bin/php -m,确认返回的扩展列表中存在sqlsrv和pdo_sqlsrv,再重启Apache即可。

MAMP PRO的解决逻辑完全一致,只需将上述步骤中XAMPP的路径替换为MAMP PRO对应的PHP工具路径即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 17:54:01