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

Mac非容器化Drupal遇SCRAM认证错误:需libpq 10及以上版本

Mac下非容器化Drupal解决“SCRAM authentication requires libpq version 10 or above”错误方案

1. 获取更高版本的libpq.pc

Mac上最便捷的方式是用Homebrew安装高版本libpq:

  • 执行安装命令:brew install libpq
  • 安装完成后,新版本的libpq.pc位于/usr/local/opt/libpq/lib/pkgconfig目录下
  • 若要让系统优先调用该版本,可将其pkgconfig路径加入环境变量:
    export PKG_CONFIG_PATH="/usr/local/opt/libpq/lib/pkgconfig:$PKG_CONFIG_PATH"
    
    要永久生效,将上述命令添加到~/.zshrc(Zsh)或~/.bash_profile(Bash)文件中,重启终端即可。

2. 直接替换现有版本是否安全?

不建议直接替换系统默认的libpq文件。Mac系统自带的部分工具依赖旧版本libpq,强行替换可能导致这些工具运行异常。更安全的做法是通过环境变量指定优先使用新安装的libpq,或重新编译PHP时链接新版本。

3. 其他解决方案

修改PostgreSQL认证方式(临时绕过)

找到PostgreSQL的pg_hba.conf配置文件(通常路径为/usr/local/var/postgres,或你安装PostgreSQL的自定义目录),将对应Drupal数据库用户的认证方式从scram-sha-256改为md5,之后重启PostgreSQL服务:

brew services restart postgresql

重新编译PHP7.4链接高版本libpq

确保已通过Homebrew安装高版本libpq,然后重新编译PHP7.4,编译时指定链接路径:

./configure --with-pgsql=/usr/local/opt/libpq --with-pdo-pgsql=/usr/local/opt/libpq [其他编译参数]
make && make install

也可以用php-build这类工具简化编译流程。

升级PHP版本

如果业务允许,将PHP升级到8.0及以上版本。新版本PHP默认适配的libpq版本更高,原生支持SCRAM认证,无需额外配置。

内容的提问来源于stack exchange,提问作者osama yaccoub

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 10:10:34