2015-06-04 188 views
0

我需要通過SSH在服務器B上使用PHP WebPage從服務器A啓動Perl腳本。使用PHP WebPage通過SSH在遠程服務器上執行Perl腳本

我的命令看起來像:

$cmd_string="ssh [email protected] 'perl path/to/script.pl param1 param2'"; 

我想內外PHP腳本,但沒有發生:

exec(sprintf("%s > %s 2>&1 & echo $! >> %s", $cmd_string, $outputfile, $pidfile)); 
exec($cmd_string, $output); 

通過終端運行此命令工作得很好。

感謝您的幫助

+0

那麼你得到什麼錯誤/返回值? – arkascha

+0

你能用php登錄到服務器嗎? – shivams

+0

SSH連接爲用戶「用戶」自動化爲服務器B. 但在error.log中,我得到: '無法創建目錄'/var/www/.ssh'。 主機密鑰驗證失敗.' 看起來好像進程是由'www-data'而不是'user'運行的? – Lorenzow

回答

1

我的建議 - 用phpseclib, a PHP SSH implementation

<?php 
include('Net/SSH2.php'); 

$ssh = new Net_SSH2('www.domain.tld'); 
if (!$ssh->login('username', 'password')) { 
    exit('Login Failed'); 
} 

echo $ssh->exec('perl path/to/script.pl param1 param2'); 
?> 

EXEC()往往是在出於安全原因關閉主機。

相關問題