【发布时间】:2018-02-22 02:51:49
【问题描述】:
如何制作自毁的SSH隧道来访问另一台服务器上的MySQL?
目前我的代码如下:
exec('ssh -fNg -L 4343:127.0.0.1:3306 user@remotehost.com');
$mysqli = new mysqli('127.0.0.1', 'dbuser', 'dbpass', 'dbname', '4343');
这里的问题是执行 exec 命令后脚本挂起。应该怎样 我执行脚本的其余部分,脚本完成后如何关闭后台进程?
【问题讨论】:
-
尝试
shell_execshell_exec 将所有输出流作为字符串返回。exec默认返回输出的最后一行 -
这里的问题是我不需要 exec/shell_exec 的任何输出。想法是生成持有 SSH 隧道的后台进程并“将其移开”以供 php 脚本执行。
-
试试
exec('ssh -fNg -L 4343:127.0.0.1:3306 user@remotehost.com . &');
标签: php mysql ssh ssh-tunnel