1

リモート コンピューター (localhost ではない) でシェル コマンドを実行することはできますか? たとえば、次のようなもの

$output = shell_exec("unzip filename.zip");

リモート マシンのユーザー アカウントのログイン資格情報と、リモート ルートのユーザー名、パスワード、および cpanel リモート アクセス キーを持っていると想定できます。

4

3 に答える 3

1

私はこの質問がかなり古いことを知っていますが、この質問の視聴者にとっては。

ssh2_execを使用することもできます。http://php.net/manual/en/function.ssh2-exec.php

<?php

$ip = 'ip_address'; 
$user = 'username'; 
$pass = 'password'; 

$connection = ssh2_connect($ip); 
ssh2_auth_password($connection,$user,$pass); 
$shell = ssh2_shell($connection,"bash");

?>
于 2013-02-23T15:25:37.450 に答える
1

「クライアント コンピューターではない」のように「リモート コンピューター」を意味する場合、答えは無条件の「はい」です。PHP のexec関数を介して実行されるコマンドは、Web サーバー上で実行されます。

「Web サーバーではない」という意味であれば、答えは少しあいまいな「はい」です。コマンドを直接実行できるのは、PHP を実行しているサーバー上のみです。ただし、これらのコマンドは、SSH などのメカニズムを介してリモート マシンで他のコマンドを実行できます。したがって、たとえば、Web サーバーがリモート マシンへのパスワードなしの ssh アクセスを持っている場合 (非常に悪い考えです)、これは機能します: exec('ssh otherhost someremotecommand');. どのソリューションが適しているかは、目的の使用法によって異なります。

于 2010-09-19T07:35:31.747 に答える
0

はい。そうするためにコードを変更する必要はありません。ただし、サーバーがPHPをセーフモードにすると(共有ホスティングプランが少ない場合が多い)、これを実行できない場合があります。

ヒント:この省略形を使用して、コマンドの出力を取得できます。

$output = `command here`
于 2010-09-19T07:01:03.153 に答える