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

M1 Mac mini(Big Sur 11.6)下SQL Server sqlsrv扩展OpenSSL库加载失败问题求助

解决M1 Mac mini上SQL Server连接的OpenSSL加载问题

我之前在M1 Mac上碰到过几乎一模一样的问题,给你几个可以尝试的方向,按顺序来试大概率能解决:

1. 先临时验证动态链接库路径是否是问题根源

ODBC驱动加载OpenSSL时,可能不会直接用你设置的PATH,而是需要指定动态链接库的位置。可以先在终端里用以下命令测试你的连接脚本:

DYLD_LIBRARY_PATH="/opt/homebrew/opt/openssl@1.1/lib" php your-sql-connection-script.php

如果这样能成功连接,说明是库路径没有被ODBC驱动识别到。接下来需要把这个路径永久加入环境:

  • 如果你用PHP CLI,编辑~/.zshrc或~/.bash_profile(取决于你用的shell),添加:
    export DYLD_LIBRARY_PATH="/opt/homebrew/opt/openssl@1.1/lib:$DYLD_LIBRARY_PATH"
    
    然后执行source ~/.zshrc生效。
  • 如果你用Apache/Nginx运行PHP,需要在服务配置里添加环境变量:
    • Apache:在httpd.conf里加SetEnv DYLD_LIBRARY_PATH "/opt/homebrew/opt/openssl@1.1/lib"
    • Nginx:在fastcgi_param配置块里添加DYLD_LIBRARY_PATH "/opt/homebrew/opt/openssl@1.1/lib";

2. 重新编译sqlsrv/pdo_sqlsrv扩展,确保链接正确的OpenSSL

有时候扩展编译时可能默认链接了系统自带的OpenSSL(而不是你brew装的1.1版本),需要重新编译:

  1. 先卸载现有扩展:
    pecl uninstall sqlsrv pdo_sqlsrv
    
  2. 设置编译环境变量,指定brew的OpenSSL路径:
    export CPPFLAGS="-I/opt/homebrew/opt/openssl@1.1/include"
    export LDFLAGS="-L/opt/homebrew/opt/openssl@1.1/lib"
    
  3. 重新安装扩展:
    pecl install sqlsrv pdo_sqlsrv
    
  4. 重启PHP服务或终端,再测试连接。

3. 重新安装ODBC驱动,绑定正确的OpenSSL

如果上面两步都没用,可能是ODBC驱动本身没链接到正确的OpenSSL,需要重装驱动:

  1. 卸载现有驱动:
    brew uninstall msodbcsql17 mssql-tools
    
  2. 同样设置环境变量后重装:
    export CPPFLAGS="-I/opt/homebrew/opt/openssl@1.1/include"
    export LDFLAGS="-L/opt/homebrew/opt/openssl@1.1/lib"
    brew install msodbcsql17 mssql-tools
    

4. 确认所有组件都是ARM64架构

M1 Mac是ARM64架构,要确保PHP、OpenSSL、ODBC驱动和扩展都是ARM64版本:

  • 检查PHP架构:file $(which php),输出里应该包含arm64
  • 检查OpenSSL库架构:file /opt/homebrew/opt/openssl@1.1/lib/libssl.dylib,同样应该显示arm64
    如果发现有x86_64的组件,说明可能是用Rosetta安装的(比如brew在/usr/local下),建议卸载后用ARM版brew(默认在/opt/homebrew)重新安装所有组件。

内容的提问来源于stack exchange,提问作者Jamie B

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 14:42:46