リモート コンピューター (localhost ではない) でシェル コマンドを実行することはできますか? たとえば、次のようなもの
$output = shell_exec("unzip filename.zip");
リモート マシンのユーザー アカウントのログイン資格情報と、リモート ルートのユーザー名、パスワード、および cpanel リモート アクセス キーを持っていると想定できます。
リモート コンピューター (localhost ではない) でシェル コマンドを実行することはできますか? たとえば、次のようなもの
$output = shell_exec("unzip filename.zip");
リモート マシンのユーザー アカウントのログイン資格情報と、リモート ルートのユーザー名、パスワード、および cpanel リモート アクセス キーを持っていると想定できます。
私はこの質問がかなり古いことを知っていますが、この質問の視聴者にとっては。
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");
?>
「クライアント コンピューターではない」のように「リモート コンピューター」を意味する場合、答えは無条件の「はい」です。PHP のexec
関数を介して実行されるコマンドは、Web サーバー上で実行されます。
「Web サーバーではない」という意味であれば、答えは少しあいまいな「はい」です。コマンドを直接実行できるのは、PHP を実行しているサーバー上のみです。ただし、これらのコマンドは、SSH などのメカニズムを介してリモート マシンで他のコマンドを実行できます。したがって、たとえば、Web サーバーがリモート マシンへのパスワードなしの ssh アクセスを持っている場合 (非常に悪い考えです)、これは機能します: exec('ssh otherhost someremotecommand');
. どのソリューションが適しているかは、目的の使用法によって異なります。
はい。そうするためにコードを変更する必要はありません。ただし、サーバーがPHPをセーフモードにすると(共有ホスティングプランが少ない場合が多い)、これを実行できない場合があります。
ヒント:この省略形を使用して、コマンドの出力を取得できます。
$output = `command here`