3

パラメータ ファイルを読み取り、ニュース記事の内容を検索インデックス (Lemur/Indri) に追加するシェル スクリプト 'add_article.sh' を実行する必要がある PHP スクリプトがあります。

(シェルから)「add_article.sh」スクリプトを単独で実行すると完全に機能しますが、phpスクリプト内から実行すると、次のようになります。

$blah = exec("./add_article.sh", $out, $ret_val);

echo $out . "<BR />";
echo $ret_val . "<BR />";

これにより、

アレイ
255

正しいディレクトリにあり、絶対パスでも失敗します。同じディレクトリ内の別のスクリプトを実行する同じファイル内の別の関数でまったく同じ形式を使用していますが、すべて問題ありません。

何か案は?

4

3 に答える 3

1

シェルスクリプトの実行権限を確認しましたか? Apache は、ほとんどのオペレーティング システムで非常に少ない権限を持つユーザーとして実行されるため、それが原因である可能性があります。

于 2009-07-30T12:44:12.323 に答える
1

$out配列であるはずです。スクリプトから何が返されているかを確認するには、おそらくprint_r()またはそれを行う必要があります。var_dump()何が問題なのかを教えてくれるかもしれません。

一般に、PHP がスクリプトを実行しているときに満たされていない何らかの環境依存関係が存在する可能性があります。これは、Apache 内から実行されている場合に特に一般的です。

于 2009-07-30T12:45:31.200 に答える
1

試す:

$blah = exec("./add_article.sh", $out, $ret_val);

print_r($out);
echo '<br />';
echo $ret_val . "<br />";
于 2009-07-30T12:45:53.790 に答える