【问题标题】:Connect Oracle DB with port forwarding using PHP使用 PHP 将 Oracle DB 与端口转发连接
【发布时间】:2016-05-28 03:02:53
【问题描述】:

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

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

隧道设置 源端口:L19005

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

输入用户名/密码后,我可以连接需要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_connect 功能。

$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。

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

【问题讨论】:

    标签: php oracle ssh xampp phpseclib


    【解决方案1】:

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

    我的建议:使用 autossh。

    【讨论】:

      猜你喜欢
      • 2018-08-16
      • 2016-01-12
      • 1970-01-01
      • 2012-04-13
      • 2021-08-24
      • 1970-01-01
      • 2016-03-04
      • 2020-07-08
      • 1970-01-01
      相关资源
      最近更新 更多