web-dev-qa-db-ja.com

HTTP Postリクエストを介してシェルスクリプトを実行するには何が必要ですか?

HTTPPOSTリクエストでシェルスクリプトをトリガーするには何が必要か疑問に思いました。自宅のwifiにいるので、電話をかけたい http://ip.of.Host/req?run ホストでスクリプトをトリガーします。ホストでWebサーバーを実行する必要があると思います。しかし、さらに何が必要ですか?これはそのような質問をするのに適切な場所ですか?ありがとう!

2
tzippy

これは非常に幅広い質問です。 ApacheとPHPをサーバーにインストールすると、非常に単純なPHPスクリプトを使用して、スクリプトを実行できます。他に何も必要ありません。

Webルートディレクトリに、スクリプトとphpファイルを配置します。

script.sh

#!/bin/bash

echo "Hello World"

run_script.php

<?php
    $output = Shell_exec('./script.sh');
    echo $output;
?>

localhost/run_script.phpを使用してこれを実行します。

その後、任意のスクリプトを実行できます(Webルートに配置しないでください)。

これをHTTPPostリクエストでのみ実行する場合は、スクリプトを次のようにラップします。

if ($_SERVER['REQUEST_METHOD'] === 'POST') { ... }

そして、あなたは投稿パラメータをチェックすることができます

if ($_POST['parameter']) { ... }

:これには多くの注意点がありますが、個別の質問として扱う方が適切です。とにかく、これでうまくいくはずです。

3
zelanix