[英]Using port forwarding and php with mysql_connect onto a remote server
[英]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.