phpseclib SSH-更改目录并运行脚本?
我想执行/home/pi/mydir中的脚本,所以我需要做的第一件事是phpseclib SSH-更改目录并运行脚本?,php,ssh,phpseclib,Php,Ssh,Phpseclib,我想执行/home/pi/mydir中的脚本,所以我需要做的第一件事是 $ssh->exec('cd mydir'); 然后 $ssh->exec('./script'); 但它不起作用,所以有人能帮我吗?这是exec()工作方式的一个基本限制。exec()有点像。。。打开PuTTY,键入cd mydir,重新启动PuTTY,然后键入/script。如果您做了所有这些,您就不会期望“/script”在“mydir”中运行。然而,exec()所做的几乎就是这样 在本例中,这不是ph
$ssh->exec('cd mydir');
然后
$ssh->exec('./script');
但它不起作用,所以有人能帮我吗?这是exec()工作方式的一个基本限制。exec()有点像。。。打开PuTTY,键入
cd mydir
,重新启动PuTTY,然后键入/script
。如果您做了所有这些,您就不会期望“/script”在“mydir”中运行。然而,exec()所做的几乎就是这样
在本例中,这不是phpseclib问题,而是SSH问题。SSH规范定义的exec()不支持这一点
更多信息:
我的建议是:要么使用绝对路径,要么使用read()/write()
祝你好运
cd /path/to/directory && your command
暂时解决我的问题 使用\n:
$ssh->exec("cd mydir\n./script");
或者创建一个文件script.sh
(示例)并以UNIX格式保存:
cd mydir
./script
并执行此脚本:
$script = file_get_contents("script.sh");
$ssh->exec($script);
可能您的Web服务器没有执行该脚本的权限。我使用的是xampp,那么我需要什么样的权限?好的,我尝试使用读写,它工作正常,但是当我尝试运行程序/脚本(./video sample/test)时,有一个问题,脚本工作了大约1秒钟,然后关闭。有soloution吗?日志可能会提供一些见解。。您可以通过执行
define('NET\u SSH2\u LOGGING',2)获得它们代码>在文件顶部,然后调用echo“”$ssh->getLog()代码>在末尾。一旦你得到了日志,发布它们,我们就可以看到我们看到了什么。好吧,我通过不终止进程来解决我的问题,所以这不是phpseclib的问题。无论如何,谢谢你的帮助。