質問
パラメータファイルを読み取り、ニュース記事の内容を検索インデックス(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
これは正しいディレクトリにあり、絶対パスでも失敗します。同じファイルを同じディレクトリで別のスクリプトを実行する別の関数でまったく同じ形式を使用し、すべてが問題ありません。
アイデアはありますか
解決
シェルスクリプトの実行権限を確認しましたか? Apacheは、ほとんどのオペレーティングシステムでほとんど権限を持たないユーザーとして実行されるため、これが原因である可能性があります。
他のヒント
$ out
は配列になるはずです。おそらく print_r()
または var_dump()
を使用して、スクリプトから返される内容を確認する必要があります。何が悪いのか教えてくれるかもしれません。
一般に、PHPがスクリプトを実行しているときに満たされていない環境依存性がある可能性があります。これは、Apache内から実行される場合に特に一般的です。
試してください:
$blah = exec("./add_article.sh", $out, $ret_val);
print_r($out);
echo '<br />';
echo $ret_val . "<br />";
所属していません StackOverflow