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

Windows Server 2019下PHP连接PostgreSQL驱动缺失求助

解决方案步骤

一、先修复PHP在IIS中无phpinfo()输出的问题

这个问题是PHP与IIS集成异常的表现,必须先解决才能继续排查驱动问题:

  • 检查Plesk站点PHP配置:进入Plesk「域名」→ 对应站点 →「PHP设置」,确认已指定正确的PHP版本,且状态为启用。
  • 验证IIS处理程序映射:在IIS管理器中打开对应站点的「处理程序映射」,确认存在PHP_via_FastCGI规则,路径指向Plesk管理的PHP安装目录下的php-cgi.exe(比如C:\Program Files (x86)\Plesk\Additional\PHP\7.4\php-cgi.exe,根据你的PHP版本调整)。如果缺失,去Plesk「工具与设置」→「PHP设置」→ 对应PHP版本 → 点击「重新配置」。
  • 查看PHP启动错误日志:找到php.ini中error_log配置的日志路径,检查是否有FastCGI进程崩溃、权限不足等启动类错误。
  • 测试最简phpinfo文件:在站点根目录创建info.php,内容仅为<?php phpinfo(); ?>,直接访问该文件。若仍无输出,运行命令iisreset重启IIS,同时重启Plesk相关服务。

二、解决PostgreSQL驱动缺失问题

等phpinfo()正常输出后,再处理驱动问题:

  • 匹配PHP与驱动版本:PostgreSQL的PHP驱动(pgsql和pdo_pgsql)必须和你的PHP版本、架构(x86/x64)完全一致。Plesk管理的PHP一般自带驱动,大概率是未启用。
  • 在Plesk中启用扩展:进入站点的「PHP设置」→「扩展」列表,找到pgsql和pdo_pgsql并勾选启用,保存后重启IIS。
  • 手动检查php.ini:如果Plesk里找不到对应扩展,直接编辑该站点使用的php.ini文件(路径可在Plesk的PHP设置中查看),确保以下两行没有被注释(去掉前面的;):
    extension=pgsql
    extension=pdo_pgsql
    
    同时确认PHP安装目录的ext文件夹中存在php_pgsql.dll和php_pdo_pgsql.dll文件。
  • 验证驱动加载:在phpinfo页面搜索pgsql和pdo_pgsql,能看到模块信息就说明驱动加载成功。
  • 检查依赖库:Windows下PHP的PostgreSQL驱动依赖libpq.dll,这个文件必须在PHP安装目录,或者系统PATH环境变量指向的目录里。Plesk安装的PHP通常自带该文件,若缺失,从PostgreSQL官网下载对应版本的客户端库,将libpq.dll复制到PHP安装目录。

三、额外排查要点

  • 确认数据库连接参数:检查应用中的数据库主机、端口、用户名、密码是否正确,PostgreSQL服务是否正常运行,服务器防火墙是否允许PHP服务器访问5432端口。
  • Plesk权限检查:测试将站点应用程序池身份改为LocalSystem(测试后改回原身份),排查是否是权限不足导致无法读取驱动文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 06:42:36