2017-09-13 172 views
0

如何使自毁破坏SSH隧道访问另一台服务器上的MySQL?PHP - SSH隧道到MySQL

目前我的代码看起来像:

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 &');