0

ボタンのある Web サイトがあります。ボタンをクリックすると、ディレクトリをアンマウントすることを想定した bash スクリプトが起動します。ボタンは、次のfunctions.inc関数で php スクリプトを 呼び出します。

function sftmz_release_s3test_connections($bucket_name){
    if($bucket_name == 's3test'){
        drupal_set_message('Check mount status ! - released?');
        $cmd = '/var/www/html/company/sites/default/modules/rp_minisite/admin/script.sh';
        exec($cmd);
    }
}

私の問題は次のとおりです。シェルでコマンドを実行しているとき:

/var/www/html/company/sites/default/modules/rp_minisite/admin/script.sh  

それは正常に動作します。

ボタンをクリックすると、テストが表示されますが、スクリプトは実行されません。ログを表示するにはどうすればよいですか? ログをシェルに出力できますか? HTMLのボタンを使用してアクティブ化されているため、できませ
ん...これは許可の問題だと思いますか?

4

3 に答える 3

1

を呼び出したときに実際に何が起こるかについて、さらに情報を取得してみてくださいexec

exec($cmd, $return, $status);
echo '<pre>';
var_dump($return);//is an array, containing the commands output
echo '</pre>';
if ($status === 0)
{//normally, if a cmd exits with 0, all is well
    echo 'Command executed';
}

何かおかしいことが起こっている場合は、スクリプトが設定されている環境変数/エイリアスなどに依存しているかどうかを確認することをお勧めします。おそらく.profile、スクリプトを機能させるためにファイルをロードする必要があります。
ここで、これを行う方法を見ることができます

于 2012-12-31T12:14:15.880 に答える
0

関数の戻り値を確認しましたexec()か? 詳細については、ドキュメントを参照してください。

于 2012-12-31T12:09:28.127 に答える
0

execコマンドの他の引数を使用してみてください。

于 2012-12-31T12:09:35.930 に答える