无法在php中使用exec()执行命令

时间:2014-03-11 13:48:02

标签: php linux ubuntu exec

我曾尝试寻找答案,但无法找到与我的案件有关的任何内容。

我想要执行的内容非常简单......它是对SPMF框架jar文件的调用。

这是代码 -

<?php

exec('java -jar spmf.jar run Apriori /opt/lampp/htdocs/rrugd/ip.txt /opt/lampp/htdocs/rrugd/output.txt %20');
?>

为什么这不执行? 它显然使用cli完美运行。 包含所有文件的文件夹(jar文件,ip.txt,output.txt)将权限设置为r / w给所有用户

我在Linux上 - Ubuntu 13.10

2 个答案:

答案 0 :(得分:1)

我找到了解决方案。

问题在于spmf zip文件的路径。

要么需要完整路径,要么与脚本位于同一文件夹中。

我把它放在与脚本相同的文件夹中解决了。(在我使用lampp的htdocs下)

此外,该文件夹需要具有其他权限才能设置为&#34;创建和删除&#34;使php能够访问并将输出写入文件夹。

答案 1 :(得分:0)

基本调试:如果exec()不起作用,那么你需要检查返回值:

exec('some command here', $output, $return_var);
var_dump($output, $return_var);

永远不要假设外部资源成功。始终检查返回值并输出错误消息。

很可能java不在PHP用于处理exec()调用的任何shell的路径中,这意味着您需要exec('/full/path/to/java ...')代替。