3

我有一个 PHP 脚本,我需要在其中执行一个 shell 脚本“add_article.sh”,它读取参数文件并将新闻文章内容添加到搜索索引(Lemur/Indri)。

自己(从shell)执行'add_article.sh'脚本工作得很好,但是从php脚本中运行它我得到了这个:

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

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

这产生

阵列
255

它位于正确的目录中,即使使用绝对路径也会失败。我在同一文件中的另一个函数中使用完全相同的格式,该文件在同一目录中执行另一个脚本,一切都很好。

有任何想法吗?

4

3 回答 3

1

您是否检查过您的 shell 脚本的执行权限?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 回答