使用PHP连接Oracle DB和端口转发

使用PHP连接Oracle DB和端口转发,php,oracle,ssh,xampp,phpseclib,Php,Oracle,Ssh,Xampp,Phpseclib,我想使用PHP连接到需要端口转发的Oracle数据库。 这是设置。 目前我使用PuTTy连接到Oracle Db。我在那里吃饭 主机ip:172.XX.XX.111端口:22 隧道设置 源端口:L1905 目的地:172.XX.XX.40:1521 输入userid/密码后,我可以连接需要TNS配置的sqldeveloper 现在我想使用PHP执行相同的活动。以下是我到目前为止所做的 set_include_path(get_include_path().'\phpseclib'); inclu

我想使用PHP连接到需要端口转发的Oracle数据库。 这是设置。 目前我使用PuTTy连接到Oracle Db。我在那里吃饭

主机ip:172.XX.XX.111端口:22

隧道设置 源端口:L1905

目的地:172.XX.XX.40:1521

输入userid/密码后,我可以连接需要TNS配置的sqldeveloper

现在我想使用PHP执行相同的活动。以下是我到目前为止所做的

set_include_path(get_include_path().'\phpseclib');
include('Net/SSH2.php');

$ssh = new Net_SSH2('172.XX.XX.111');
if (!$ssh->login('userid', 'password')) {
    exit('Login Failed');
}
$ssh->write("ssh -L19005:172.XX.XX.40:1521 172.XX.XX.111\n");
$ssh->write("password\n");

$connect='(DESCRIPTION=(ADDRESS= (PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=19005))(CONNECT_DATA = (SID = connect)))';
$conn = oci_connect('Db_username', 'Db_password', $connect);
if ($conn)
{echo 'True';}
我还使用了ssh2_连接函数

$connection = ssh2_connect('172.XX.XX.111', 22);
if (ssh2_auth_password($connection, 'userid', 'password'))
{
echo 'true';
}
ssh2_exec($connection,"ssh -L19005:172.XX.XX.40:1521 172.XX.XX.111","\n");
ssh2_exec($connection,"password","\n");

$connect='(DESCRIPTION=(ADDRESS= (PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=19005))(CONNECT_DATA = (SID = connect)))';
$conn = oci_connect('Db_username', 'Db_password', $connect);
if ($conn)
{echo 'True';}
在这两种情况下,我得到以下错误

oci_connect(): ORA-12541: TNS:no listener in C:\xampp\htdocs\USAGE\index.php
我将XAMPP3.2.2与PHP5.5一起使用


请帮忙。我搜索了很多,但找不到与我的问题相关的任何内容。

phpseclib不做隧道挖掘。看起来您希望它做的是让PHP在端口127.0.0.1:19005上创建一个服务器,但此时您需要一个SSH服务器,而不是SSH客户端

我的建议是:使用AutoSh