我有一個服務器上託管的Laravel 4.2項目(服務器A),我需要能夠從此應用程序上傳文件,並將文件傳輸到Windows服務器上相同的本地網絡(服務器B)。在Windows服務器上的Laravel SSH
我在Windows服務器上安裝了OpenSSH並啓動了服務。我可以確認這是工作的,因爲我可以在服務器上的終端成功連接A。
在Laravel項目中,我創建了app/config/remote.php文件中的連接。
但是當我嘗試使用下面的代碼在Laravel項目服務器一個上運行命令:
SSH::into('ServerB')->run(['IF EXIST folder (echo YES) ELSE (echo NO)'], function($line){
echo $line.PHP_EOL;
});
我得到以下錯誤:
unpack(): Type N: not enough input, need 4, have 1
我收到此錯誤,我嘗試在服務器上運行的每個命令B。奇怪的是,如果我嘗試使用相同的代碼,但將其指向Linux服務器,則代碼正常工作。這會導致我相信SSH服務器可能在服務器上設置不正確,但是我可以通過SSH連接到服務器B從服務器A在終端窗口的事實混淆了整個事情!
有沒有人知道我收到的錯誤的含義?
您的Laravel 4.2項目託管在哪個PHP版本上? – revo
我不知道Laravel非常好,但是我發現了一個類似的phpeclib問題報告,它在去年得到了修復:https://github.com/terrafrost/phpseclib/commit/684d6eed0e2fc3045c9169685ce135a14474abef – andrucz
發佈您的日誌'echo $ ssh-> getLog();'也檢查你的主機和防火牆 – Ghayel