シェルコマンドを実行してその出力を返すPHPスクリプトを作成したいと思います。サーバーには秘密鍵が必要です。phpスクリプトからシェルコマンドを実行するには
<?php
$command = "ls";
$output = shell_exec($command);
echo "<pre>$output</pre>";
?>
うまく働いたこと:私が最初にこれをテストすることを決めたとき、私はこれを作成しました。私は、私が本当に実行したいコマンドに$command
を変更したときしかし:
$command = "/etc/init.d/mycontrollerd status /etc/mycontrollerconfig";
をそれが私にこの出力を与えた:
You need root privileges to run this script
私の推測では、私はsudo
を使用する必要があります。もちろん、サーバーのどこかにpemファイルを置く必要があります。私がそれをしているとすれば、正確には何か$command
はなすべきですか? shell_exec()
、exec()
、system()
などを使用する必要がありますか?
ユーザーアカウントに権限が必要であることも重要ですが、それはPHP関数を使用する最良の選択肢ではありません。どちらがベストですか? –
@Kenneth Vogt 'exec'はシェルを不必要に関与せず、結果を直接出力する'パススルー 'を返しますが、元のコードをいくらか変更する必要があるためです。 – phihag