gpt4 book ai didi

PHP - pg_connect() 无法将主机名转换为地址(通过 VPN)

转载 作者:行者123 更新时间:2023-11-29 12:27:25 24 4
gpt4 key购买 nike

我正在尝试通过 PHP 连接到我的 VPN 内的远程 PgSQL 服务器。

这是代码(一个从包含用户列表的表中提取信息的简单脚本):

$query = "SELECT name, surname FROM test_table WHERE id=$1";
$link = pg_Connect("host=named.host.inside.my.VPN.network dbname=testdb user=username password=password") or die('DB Connection failed');
if ($link){
$select = pg_prepare($link, "my_query", $query);
$select = pg_execute($link, "my_query", array(1)); //retrieve user with id == 1
if($select){
while ($row = pg_fetch_row($select)){
echo "User 1: " . $row[0] . " " . $row[1];
}
}
else{
echo "Select error! - " . pg_last_error($link);
}
}
else{
echo "Link error - " . pg_last_error($link);
}

我在 XAMPP(Windows 7 作为操作系统)中运行这个脚本,PgSQL 服务器是一个 AmazonRDS,可以通过像 named.host.inside.my.VPN.network 这样的命名主机访问.

如果我对该主机执行 ping 操作,cmd 会显示服务器的正确 IP 地址,如果我将此 IP 地址添加到“hosts”文件,PHP 会正确解析它并且不会死机。如果不将行“123.45.67.89 named.host.inside.my.VPN.network”添加到“hosts”文件中,脚本执行将给出以下输出:

Warning: pg_connect(): Unable to connect to PostgreSQL server: could not translate host name "named.host.inside.my.VPN.network" to address: Unknown server error in C:\xampp\htdocs\filename.php on line 6 DB Connection failed

我的问题是:有没有办法让 pg_connect() 解析“named.host.inside.my.VPN.network”域WITHOUT将其添加到文件“hosts”(考虑到它是正确翻译/可通过 ping 访问)?

最佳答案

您可以尝试重启httpd(apache)服务。

我遇到了和你一样的问题,可能是同一个原因。不知何故,postgresql 插件在启动后似乎很困惑。在“主机”中输入 IP 有效,但 DNS 查找无效。我正在使用 php 5.5.16/pgsql 9.3.5 运行 Archlinux。要重新启动,我会执行“systemctl restart httpd”,但您可能必须使用 services.msc 工具。

关于PHP - pg_connect() 无法将主机名转换为地址(通过 VPN),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24406654/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com