2009-07-30 62 views
3

我有,我需要执行一个shell脚本“add_article.sh”读取参数文件,并将新闻文章内容搜索索引(狐猴/大狐猴PHP脚本)。EXEC()无法正常运行在PHP

执行它自己的“add_article.sh”脚本(从壳)的作品完美,但是从PHP脚本中运行它,我得到这个:

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

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

这将产生

阵列

这是在正确的目录,甚至绝对路径失败。我在同一个目录中执行另一个脚本的另一个函数中使用完全相同的格式,并且都很好。

任何想法?

+1

这有什么错呢? – RaYell 2009-07-30 12:43:34

+0

如果我运行从它输出5个或6行文本的外壳脚本,通过EXEC我什么也没得到,还,返回/退出值是255,任何人都知道这意味着什么? – gouwsmeister 2009-07-30 13:00:33

+0

这很可能意味着脚本试图执行`exit -1`或类似的操作。如果您在脚本中看到发生此事的地方,这可能会很有用。 – chaos 2009-07-30 13:22:17

回答

1

你检查你的shell脚本执行权限? Apache在大多数操作系统中以很少权限的用户身份运行,因此可能是原因。

1

$out应该是一个数组。您可能应该使用print_r()var_dump()来查看脚本返回的内容;它可能会告诉你发生了什么问题。

一般情况下,有可能是一些当PHP运行脚本未得到满足的环境依赖性。如果它是从Apache内部运行的,这是特别常见的。

1

尝试:

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

print_r($out); 
echo '<br />'; 
echo $ret_val . "<br />";