我有一个PHP脚本,我需要执行一个shell脚本'add_article.sh',它读取参数文件并将新闻文章内容添加到搜索索引(Lemur / Indri)。
单独执行'add_article.sh'脚本(来自shell)可以很好地工作,但是从php脚本中运行它我得到了这个:
$blah = exec("./add_article.sh", $out, $ret_val);
echo $out . "<BR />";
echo $ret_val . "<BR />";
这会产生
阵列的
255 的
它位于正确的目录中,即使使用绝对路径也会失败。我在同一个目录中的另一个函数中使用完全相同的格式,在同一目录中执行另一个脚本,一切都很好。
有什么想法吗?
答案 0 :(得分:1)
您是否检查过shell脚本的执行权限?在大多数操作系统中,Apache作为用户运行的权限非常少,因此可能是原因。
答案 1 :(得分:1)
$out
应该是一个数组。您应该print_r()
或var_dump()
来查看脚本中的内容;它可能会告诉你出了什么问题。
通常,当PHP运行脚本时,可能存在一些不满足的环境依赖性。如果它是从Apache内部运行的话,这种情况尤为常见。
答案 2 :(得分:1)
尝试:
$blah = exec("./add_article.sh", $out, $ret_val);
print_r($out);
echo '<br />';
echo $ret_val . "<br />";