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

OpenBSD 7.0系统中PHP无法连接PostgreSQL数据库问题求助

核心原因

OpenBSD 自带的 httpd 与 php-fpm 默认运行在 /var/www 的 chroot 隔离环境中,你遇到的连接失败是两个常见问题导致的:一是 chroot 环境内缺少必要的网络依赖文件,二是 PostgreSQL 访问控制配置未适配你的连接方式。

方案1:保持TCP连接方式修复

步骤1:配置PostgreSQL访问控制

编辑 /var/postgresql/data/pg_hba.conf,新增一行规则允许你的VPS公网IP访问数据库:

host    all             all             123.45.67.89/32         scram-sha-256

修改完成后重启PostgreSQL服务:

rcctl restart postgresql

步骤2:补全chroot环境的网络配置

php-fpm运行的chroot环境默认没有网络解析相关配置,执行以下命令补全:

mkdir -p /var/www/etc
cp /etc/resolv.conf /var/www/etc/
cp /etc/hosts /var/www/etc/
chmod -R 644 /var/www/etc/*

步骤3:验证端口连通性

先在宿主系统执行命令验证PostgreSQL端口可访问:

telnet 123.45.67.89 5432

如果连接失败,检查pf防火墙规则是否放通了本机对5432端口的访问。

方案2:更安全的Unix套接字连接方案(推荐)

该方案无需将PostgreSQL端口暴露到公网,性能和安全性都更高:

步骤1:修改PostgreSQL主配置

编辑 /var/postgresql/data/postgresql.conf:

  1. 调整监听地址,按需保留公网IP:
listen_addresses = 'localhost, 123.45.67.89'
  1. 配置Unix套接字同时输出到chroot可访问的目录:
unix_socket_directories = '/run/postgresql, /var/www/run/postgresql'

步骤2:创建套接字目录并配置权限

mkdir -p /var/www/run/postgresql
chown _postgresql:_postgresql /var/www/run/postgresql
chmod 775 /var/www/run/postgresql

步骤3:确认本地套接字访问规则

检查 /var/postgresql/data/pg_hba.conf 存在以下规则(默认已配置,没有就新增):

local   all             all                                     scram-sha-256

步骤4:重启服务修改PHP连接代码

重启PostgreSQL服务:

rcctl restart postgresql

修改你的PHP连接代码,指定套接字路径:

<?php
    echo "Hello world!";
    // 注意chroot环境下路径对应宿主的/var/www/run/postgresql
    $db = pg_connect("host=/run/postgresql port=5432 dbname=test user=tester password=12345");
    if ($db) {
        echo "I'm in.";
    } else {
        echo "No luck.";
    }
?>

通用排查技巧

  • 先确认pgsql扩展已启用:新建phpinfo页面,搜索pgsql字段,确认扩展已加载。如果未加载,编辑 /etc/php-8.0.ini 去掉extension=pgsql.so、extension=pdo_pgsql.so前的分号,重启php80_fpm服务。
  • 打开PHP错误显示:在pg_connect前添加error_reporting(E_ALL); ini_set('display_errors', 1);,可直接输出连接失败的具体原因。
  • 查看PostgreSQL日志:日志默认存放在/var/postgresql/data/log/目录下,可明确看到是访问控制拒绝、密码错误还是连接超时问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:15:00