1

MacOSXでシェルスクリプトを実行しようとしていますが、機能しません。私のreport.shファイルは、/ usr / local / binに格納されている別の.shファイル(Sweave.sh)を呼び出します。

<?php

shell_exec("./report.sh");
echo "Hello 123";

?>

ブラウザに「Hello123」と表示されますが、report.shはその機能を果たしていません。なぜそれが起こるのですか?これがreport.shです:

# !/bin/bash
Sweave.sh -ld test_sweave.Rnw

ターミナルから./report.shを呼び出すと、問題なく動作します...助けてくれてありがとう!

編集:ターミナルから./report.phpを呼び出すと、次のように表示されます。

./report.php: line 2: ?php: No such file or directory
./report.php: line 4: syntax error near unexpected token `"./report.sh"'
./report.php: line 4: `shell_exec("./report.sh");'
4

3 に答える 3

2

コマンドラインからスクリプトを実行する場合は、次のいずれかを行う必要があります。

a)この行でファイルを開始します

#!/path/to/php

b)次のように実行します。

php report.php

それが機能する場合は、Webサーバーがユーザーとは異なるユーザーで実行されているため、アクセス許可が原因である可能性があります。

于 2012-09-02T05:22:56.637 に答える
1

コメントありがとうございました、それは許可の問題でした。サーバーの「Documents」フォルダーのアクセス許可を変更することで解決しました(これが最も安全な方法ではないと確信していますが、とにかくテストしているだけです)。

rwアクセスを追加し、所有者になって、同封のアイテムに適用するだけです-それだけです!

于 2012-09-02T06:35:55.367 に答える
0

php -q report.phpシバンなしで動作します(#!/path/to/php

于 2013-07-19T11:19:56.543 に答える