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

CLI与浏览器环境下php_pdo_pgsql扩展版本不一致问题求助

问题原因

Windows环境下,Apache进程和PHP CLI进程的DLL加载路径优先级不同,导致二者加载了不同版本的libpq.dll:

  • PHP CLI运行时默认在PHP安装目录下,优先加载目录内自带的11.4版本libpq.dll
  • Apache作为独立进程,其默认工作目录是自身的bin目录,会优先加载系统目录、PATH路径中靠前位置的旧版libpq.dll(比如之前安装其他软件遗留的9.6.12版本),而非PHP目录下的正确版本
解决办法

以下三种方法任选其一,操作后均需重启Apache服务验证:

方法一:调整系统PATH优先级

  1. 打开系统环境变量设置(右键此电脑→属性→高级系统设置→环境变量)
  2. 在系统变量的PATH条目里,将PHP安装目录(比如C:\php-8.1.3-ts-x64)移到最顶部
  3. 保存设置后重启Apache服务

方法二:复制PHP的libpq.dll到Apache目录

  1. 找到PHP安装目录下的libpq.dll(确认版本为11.4)
  2. 将该文件复制到Apache的bin目录(比如C:\Apache24\bin),如果目录内已有旧版libpq.dll,直接覆盖
  3. 重启Apache服务

方法三:在Apache配置中指定PATH

  1. 打开Apache的httpd.conf配置文件
  2. 在加载PHP模块的代码(比如LoadModule php8_module "C:/php-8.1.3-ts-x64/php8apache2_4.dll")之前,添加以下配置(替换为你的PHP实际路径):
    SetEnv PATH "C:/php-8.1.3-ts-x64;%PATH%"
    
  3. 保存配置后重启Apache服务
验证操作

重启Apache后,访问phpinfo页面,查看pdo_pgsql模块下的libpq version是否变为11.4,再运行测试脚本确认SCRAM认证错误消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 12:46:04