簡體   English   中英

使用PHP將Oracle DB與端口轉發連接

[英]Connect Oracle DB with port forwarding using PHP

我想使用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配合使用。

請幫忙。 我進行了很多搜索,但找不到與我的問題有關的任何內容。

phpseclib不做隧道。 您期望它執行的工作是使PHP在端口127.0.0.1:19005上創建服務器,但是此時您需要SSH服務器-而不是SSH客戶端。

我的建議:使用autossh。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM