Webページで、リモートコンピュータでPythonスクリプトを実行するボタンが欲しい。 PHPでこれを行う方法はありますか?具体的には、リモートシステムで次のシェルコマンドを実行したいと思います。
screen -d -m ./script.py
スクリプトを実行するためにrootアクセスが必要ないので、これはマイナーなものではないかもしれないと思いました。
答え1
これがいくつかのレベルで安全でないアプローチであることを指摘し始めます。と言った:
script.pyを実行するためにルートである必要がある場合、ウェブサイトのユーザーはsudoersを設定する必要があります。まず、ウェブサイトのユーザーが誰であるかを調べる必要があります。
次に、ユーザーがパスワードなしでscript.pyを実行できるようにsudo権限を設定します。例:
apache ALL=NOPASSWD: /full/path/to/your/script.py
次に、実行可能ビットをscript.pyに追加します。
chmod +x /full/path/to/your/script.py
おそらく、pyスクリプトのヘッダーを次のように変更する必要があります。
#! /usr/bin/python
その後、PHPでshell_execを使用してスクリプトを実行できます。たとえば、次のようになります。
$output = shell_exec('/full/path/to/your/script.py');
答え2
次のスニペットを使用して実行できますが、要求はセキュリティ上の問題のようです。リモートホストにHTTP経由でクエリできるAPIがある場合は、より良いでしょう。
<?php
$output = shell_exec('ssh user@remotehost script.py');
echo "<pre>$output</pre>";
?>