【问题标题】:PHP - SSH tunnel to MySQLPHP - 到 MySQL 的 SSH 隧道
【发布时间】: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_exec shell_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


【解决方案1】:

所以经过一些研究 - 解决方案是在命令末尾添加> /dev/null 2>/dev/null &

完整的工作示例行是:

exec('ssh -fNg -L 4343:127.0.0.1:3306 user@remotehost.com > /dev/null 2>/dev/null &');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-06
    • 2017-05-01
    • 2016-08-26
    • 2014-12-13
    • 1970-01-01
    • 1970-01-01
    • 2018-10-06
    • 1970-01-01
    相关资源
    最近更新 更多