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

MacOS下XAMPP环境PHP调用pg_connect()报错的解决求助

解决MacOS XAMPP中PHP调用pg_connect()报未定义函数的问题

核心原因

XAMPP自带的PHP默认未启用PostgreSQL扩展,或者你修改的php.ini并非Apache实际加载的配置文件。

分步解决步骤

  • 1. 找到真正生效的php.ini文件
    创建一个phpinfo.php文件,内容如下:

    <?php phpinfo(); ?>
    

    将文件放到XAMPP的htdocs目录下,访问http://localhost/phpinfo.php,找到Loaded Configuration File这一行,记录下对应的文件路径(比如/Applications/XAMPP/etc/php.ini)——这才是Apache实际加载的配置文件,不要随便修改其他路径的php.ini。

  • 2. 启用PostgreSQL扩展
    打开刚才找到的php.ini文件,找到以下两行:

    ;extension=pgsql
    ;extension=pdo_pgsql
    

    去掉每行开头的分号;,保存文件。

  • 3. 确认扩展文件存在
    在phpinfo页面找到extension_dir的路径(比如/Applications/XAMPP/lib/php/extensions/no-debug-non-zts-20210902),进入该目录检查是否存在pgsql.so和pdo_pgsql.so文件。如果不存在,说明XAMPP自带的PHP没有包含该扩展,需要手动安装:

    • 打开终端,进入XAMPP的PHP目录:cd /Applications/XAMPP/bin
    • 运行sudo ./pecl install pgsql,按照提示完成安装(安装过程中可能需要输入系统密码)。
  • 4. 重启Apache服务
    打开XAMPP控制面板,停止Apache服务后再重新启动,确保配置修改生效。

  • 5. 验证扩展是否启用
    再次访问phpinfo.php,页面内搜索pgsql,如果能看到完整的PostgreSQL扩展配置区块,说明启用成功,此时再测试pg_connect()即可正常调用。

Apple Silicon芯片(M1/M2)额外注意

如果是ARM架构的Mac,确保XAMPP是适配arm64的版本,或者安装扩展时指定对应架构。使用pecl安装时,若出现编译错误,可先安装PostgreSQL的本地依赖:

brew install postgresql

再重新运行pecl安装命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 05:52:09