[英]Can't change directory using phpseclib library
我想使用 phpseclib 庫更改 PHP 中的目錄,但它不起作用。
$ssh = new Net_SSH2('localhost');
if (!$ssh->login('root', 'pass')) {
exit('Failed to connect!');
}
$ssh->exec('cd /home/');
echo $ssh->exec('ls');
為什么這總是 output 僅根目錄文件/文件夾......並且不將目錄更改為主目錄?
如果您閱讀文檔,它會指出:
如果在交互式 shell 上完成,那么您收到的第一個密碼 output 將(取決於您的系統設置方式)與第二個密碼的 Z78E6221F6393D1356681DB398F14CE6 不同。 然而,上面的代碼片段將產生兩行相同的行。
這樣做的原因是,一旦運行 exec() 並刪除了通道,您對一次性 shell 所做的任何“狀態更改”都會消失。
您可以通過 $ssh->exec('cd /; pwd') 在 Linux 上解決此問題
因此,您需要將兩個命令放在同一個 exec 中:
$ssh->exec('cd /home/; ls');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.