0

ユーザーが基本的なphpページでオプションを選択し、送信をクリックできるようにする単純なWebページを作成しています。バックエンドPHPは、AppleScriptを実行するbashスクリプトを実行する必要があります。

ターミナルから bash スクリプトを実行すると、Applescript ファイルを正常に実行できますosascriptが、php から bash スクリプトを実行しようとすると、echo コマンドは実行されますが、osascript行は実行されません。これは権限の問題だと思いますが、すべてを完全な権限に変更しましたchmod 777(確かに最善のアイデアではありませんが、それは重要ではありません)

足りないものはありますか?osascriptラインを完全にスキップしているように見えるのは奇妙です。助言がありますか?前もって感謝します!

コード:

PHP

<?php
if (isset($_POST['submit'])) {
    $username =  $_POST['username'];
    if (strcasecmp($username, 'user1') == 0) {
        echo 'test1';
    } else if (strcasecmp($username, 'user2') == 0) {
        echo 'test2';
    } else if (strcasecmp($username, 'user3') == 0) {
        echo 'test3';
    } else if (strcasecmp($username, 'user4') == 0) {
        shell_exec('cd ~/Sites;./a.out');
    }
}
?>

バッシュ

#!/bin/bash
echo "test String"
cd /Users/Zimmerman/Library/Scripts
osascript /Users/Zimmerman/Library/Scripts/testscript.scpt
echo "test String"
4

1 に答える 1

0

あなたの apache $PATH 変数はおそらく 内を探していません/usr/bin/shell_exec('which osascript');PHP ファイル内でエコーする場合、何も表示されない場合がありますが、端末に結果が表示されます。

/usr/bin/osascriptWeb サーバーの $PATH 変数にパスを追加するか、スクリプトで実行可能ファイルへのフル パスを使用してみてください。

于 2012-10-22T18:43:31.357 に答える