我需要创建一个PHP脚本,通过SSH隧道连接到远程主机,连接到Firebird数据库并访问一些数据。 我环顾四周,我设法正确连接SSH和隧道,但我不知道如何正确连接到Firebird。
这是我现在使用的代码:
$connection = ssh2_connect('hostname', 22);
if (!$connection)
die('No connection...');
else
echo 'Connection ok! ';
if (ssh2_auth_password($connection, 'username', 'password'))
echo "Authentication Successful! ";
else
die('Authentication Failed...');
$sshTunnel = ssh2_tunnel($connection, '127.0.0.1', 3050);
if ($sshTunnel)
echo "Tunnel created! ";
else
die("Tunnel failed...");
if ($dbh = ibase_connect('127.0.0.1/3050:D:\path\to\db\database.fdb', 'username', 'password'))
{
echo 'Connected to the database!';
}else{
echo 'Connection failed...';
}
隧道掘进一切顺利。我调用ibase_connect时PHP返回的错误是:
警告:ibase_connect():无法完成对主机的网络请求 " 127.0.0.1&#34 ;.无法建立连接。
我已经尝试使用Putty / ssh.exe / telnet做任何事情并没有遇到任何问题。 我知道mysqli_connect可以这样做:
mysqli_connect('127.0.0.1', 'DB_USERNAME', 'DB_PASSWORD', 'dbname', port, $tunnel);
我没有使用ibase_connect找到任何类似的文档。