2017-09-13 21 views
0

別のサーバでMySQLにアクセスするためにSSHトンネルを自己破壊する方法は?PHP - MySQLへのSSHトンネル

現在、私のコードは次のようになります。ここ

exec('ssh -fNg -L 4343:127.0.0.1:3306 [email protected]'); 

$mysqli = new mysqli('127.0.0.1', 'dbuser', 'dbpass', 'dbname', '4343'); 

問題は、そのスクリプトがEXECコマンドを行った後にハングアップです。 どうすればスクリプトの残りの部分を実行し、スクリプトが終了したらバックグラウンドプロセスを閉じる方法は?

+0

はshell_exec'はshell_exec '試し文字列として出力ストリームのすべてを返します。 'exec' ***は出力の最後の行をデフォルトで返します*** –

+0

ここでの問題は、私はexec/shell_execからの出力は必要ないということです。アイデアは、SSHトンネルを保持するバックグラウンドプロセスを生成し、PHPスクリプトが実行するために「途中で移動する」ことです。 – AltzeM

+0

'exec( 'ssh -fNg -L 4343:127.0.0.1:3306 [email protected]。&');'のようなものを試してみてください。 –

答えて

0

したがって、いくつかの研究の後で解決策はコマンドの最後に> /dev/null 2>/dev/null &を追加することです。

完全な実施例の行は次のとおりです。

exec('ssh -fNg -L 4343:127.0.0.1:3306 [email protected] > /dev/null 2>/dev/null &'); 
関連する問題