我想使用phpseclib库更改PHP中的目录,但是它不起作用。
$ssh = new Net_SSH2('localhost');
if (!$ssh->login('root', 'pass')) {
exit('Failed to connect!');
}
$ssh->exec('cd /home/');
echo $ssh->exec('ls');
为什么这总是只输出根目录文件/文件夹...,而不将目录更改为home?
答案 0 :(得分:1)
如果您read the documentation指出:
如果在交互式shell上完成,则第一个密码的输出(取决于系统的设置)将与第二个密码的输出不同。但是,以上代码段将产生两条相同的行。
这样做的原因是,一旦exec()运行并且通道已删除,您对一次性shell所做的任何“状态更改”都将消失。
您可以在Linux上通过执行$ ssh-> exec('cd /; pwd')
来解决此问题。
因此,您需要将两个命令放在同一exec中:
$ssh->exec('cd /home/; ls');